Автор: Игорь Иткин Редактура: Герман Петров

Введение

Симметрия окружает нас повсюду с самых ранних лет жизни. Левая и правая рука, мяч, волчок, прямоугольный стол — мы понимаем, что все эти предметы симметричны, даже не задумываясь над значением слова “симметрия”. В некоторым смысле это знание встроено в наш мозг.

Симметричные предметы нам кажутся красивыми. Но красота — не единственная польза симметрии. Те, кто изучает математику, физику или химию, знают, что теория симметрии — это еще и очень мощный аппарат, который зачастую помогает сильно упростить вычисления. В качестве примера приведем [теорему Нётер](https://ru.wikipedia.org/wiki/Теорема_Нётер#:~:text=Теоре́ма Нётер или первая теорема,и опубликована в 1918 году.): все законы сохранения в физике являются следствиями определенных симметрий системы.

Возникает закономерный вопрос: если учет симметрии настолько эффективен в естественных науках, то, может быть, его можно “встроить” и в нейронные сети?

Ответ: да! То есть что-то симметрично, если существует набор преобразований, оставляющий систему неизменной.

Постановка задачи

Давайте разбираться на конкретном примере. Пусть у нас есть нейронная сеть, которую мы обучили определять животных на фотографии. А еще — картинка с котиком (рисунок 1).

Рисунок 1. Грустный котик, который не хочет, чтобы его поворачивали

Рисунок 1. Грустный котик, который не хочет, чтобы его поворачивали

Рисунок 2. Тот же котик, только повернутый

Рисунок 2. Тот же котик, только повернутый

Cетка, конечно определит, что это кот. Перевернем рисунок 1 — получим рисунок 2 и пропустим его через ту же сетку. Что мы получим теперь? Сложный вопрос. При обучении на обычных фотографиях сетка не видит перевернутых котов. Скорее всего, на выходе получится что-то непонятное 🙂

Аугментации здесь — наше все! Да, для “обычных” сеток типа YOLO или ResNet, с которыми мы имеем дело в отношении картинок, это будет верное утверждение. Но аугментации — только частичное решение проблемы. Почему?

  1. Симметрия все-таки сохраняется не полностью. В качестве примера приведем анимацию из статьи “Harmonic Networks: Deep Translation and Rotation Equivariance [источник], где наглядно видно изменение активаций:

Рисунок 3. Активационные карты обычной CNN, обученной с аугментациями

Рисунок 3. Активационные карты обычной CNN, обученной с аугментациями

Рисунок 4. Сравнение активационных карт. Крупный план

Рисунок 4. Сравнение активационных карт. Крупный план

Рисунок 5. Активационные карты сетки со “встроенными” симметриями (H-CNN)

Рисунок 5. Активационные карты сетки со “встроенными” симметриями (H-CNN)

  1. После длительных размышлений нашлась проблема, где даже “тяжелые” аугментации работают значительно хуже. Если тезисно — люди спроектировали MNIST и FashionMNIST на сферу и попытались обучить сетку распознавать и сегментировать такие “сферические” изображения (семантическая сегментация). С распознаванием обычная аугментированная CNN еще справилась, но в случае сегментации она проиграла сетке, учитывающей симметрию (хоть пример отчасти искусственный).
  2. Аугментации — это тяжело. Во-первых, нужно много примеров для сетки, следовательно, много памяти и времени на тренировку. А если картинки большие (например, спутниковые снимки) — требования сильно возрастают. Во-вторых, крупные размеры самой сетки, которой необходимо как-то все усвоить.
  3. При переходе от картинок к более сложным объектам требования к ресурсам растут. В качестве примера приведу случай моего коллеги, который занимается моделированием биохимии с помощью 3D конволюционных сеток. Его попытка аугментировать большую молекулу произвольными поворотами привела к тому, что 320 Гб видеопамяти в один момент неожиданно закончились (в статье Google обучал Alphafold 3 только на аугментациях, но это Google и их ресурсы 🙂).

Таким образом, аугментации хоть и работают, но свои минусы у них есть. А нам, конечно, хотелось бы сделать так, чтобы сетка увидела котика под любым углом и научилась самостоятельно распознавать его всегда и без дополнительных усилий (по построению).

Выход есть — теория групп, или универсальный язык симметрий.

Теория групп и их представлений

Есть специальный раздел математики, который позволяет говорить о любых симметриях — теория групп и их представлений (кстати, если вы знаете, почему его так назвали — напишите в комментариях 🙂). Следующие несколько параграфов — это очень краткое введение. Возможно, они покажутся несколько абстрактными, но надеюсь, что примеры помогут их лучше понять.