Автор: Игорь Иткин Редактура: Герман Петров
Симметрия окружает нас повсюду с самых ранних лет жизни. Левая и правая рука, мяч, волчок, прямоугольный стол — мы понимаем, что все эти предметы симметричны, даже не задумываясь над значением слова “симметрия”. В некоторым смысле это знание встроено в наш мозг.
Симметричные предметы нам кажутся красивыми. Но красота — не единственная польза симметрии. Те, кто изучает математику, физику или химию, знают, что теория симметрии — это еще и очень мощный аппарат, который зачастую помогает сильно упростить вычисления. В качестве примера приведем [теорему Нётер](https://ru.wikipedia.org/wiki/Теорема_Нётер#:~:text=Теоре́ма Нётер или первая теорема,и опубликована в 1918 году.): все законы сохранения в физике являются следствиями определенных симметрий системы.
Возникает закономерный вопрос: если учет симметрии настолько эффективен в естественных науках, то, может быть, его можно “встроить” и в нейронные сети?
Ответ: да! То есть что-то симметрично, если существует набор преобразований, оставляющий систему неизменной.
Давайте разбираться на конкретном примере. Пусть у нас есть нейронная сеть, которую мы обучили определять животных на фотографии. А еще — картинка с котиком (рисунок 1).
Рисунок 1. Грустный котик, который не хочет, чтобы его поворачивали
Рисунок 2. Тот же котик, только повернутый
Cетка, конечно определит, что это кот. Перевернем рисунок 1 — получим рисунок 2 и пропустим его через ту же сетку. Что мы получим теперь? Сложный вопрос. При обучении на обычных фотографиях сетка не видит перевернутых котов. Скорее всего, на выходе получится что-то непонятное 🙂
Аугментации здесь — наше все! Да, для “обычных” сеток типа YOLO или ResNet, с которыми мы имеем дело в отношении картинок, это будет верное утверждение. Но аугментации — только частичное решение проблемы. Почему?
Рисунок 3. Активационные карты обычной CNN, обученной с аугментациями
Рисунок 4. Сравнение активационных карт. Крупный план
Рисунок 5. Активационные карты сетки со “встроенными” симметриями (H-CNN)
Таким образом, аугментации хоть и работают, но свои минусы у них есть. А нам, конечно, хотелось бы сделать так, чтобы сетка увидела котика под любым углом и научилась самостоятельно распознавать его всегда и без дополнительных усилий (по построению).
Выход есть — теория групп, или универсальный язык симметрий.
Есть специальный раздел математики, который позволяет говорить о любых симметриях — теория групп и их представлений (кстати, если вы знаете, почему его так назвали — напишите в комментариях 🙂). Следующие несколько параграфов — это очень краткое введение. Возможно, они покажутся несколько абстрактными, но надеюсь, что примеры помогут их лучше понять.