Как стать автором
Обновить
69.67
Wunder Fund
Мы занимаемся высокочастотной торговлей на бирже

Трансформеры, группы преобразований и self-attention

Уровень сложностиСложный
Время на прочтение10 мин
Количество просмотров3.8K
Автор оригинала: Julian Hatzky

В подвижном мире развивающихся нейросетевых архитектур главную роль играет эффективность работы моделей. Тонкая настройка сетей под конкретные задачи предусматривает интеграцию в них априорных знаний. Делается это посредством стратегических корректировок архитектур сетей. Это — процедура, выходящая за рамки подстройки параметров. Речь идёт о внедрении в нейросеть информации, которая позволит сети понять то, что нужно её создателю. Один из способов это сделать заключается в использовании априорных знаний геометрического характера. Именно этому и посвящена данная статья.

Изображение собаки, повёрнутое на 90 градусов. В центре показано представление весов модели, эквивариантной к повороту изображения. А модель, находящаяся справа, таким свойством не обладает. ©J. Hatzky
Изображение собаки, повёрнутое на 90 градусов. В центре показано представление весов модели, эквивариантной к повороту изображения. А модель, находящаяся справа, таким свойством не обладает. ©J. Hatzky

Предварительные сведения

В предыдущем материале мы углубились в особенности функционирования механизмов внутреннего внимания при решении задач компьютерного зрения. А теперь, взяв за основу то, с чем разобрались тогда, расширим наши знания, обратившись к последним достижениям в области геометрического глубокого обучения.

Если вы пока с этой темой не знакомы — вот хороший цикл вводных статей о геометрическом глубоком обучении.

Сильные стороны моделей, эквивариантных к группам преобразований входных данных

Эквивариантные модели могут подгонять пространство поиска под решаемую задачу, благодаря чему уменьшается вероятность того, что модель увидит в данных то, чего в них, на самом деле, нет.

Раковые клетки, повёрнутые на 90 градусов. В центре показано представление весов модели, эквивариантной к повороту. Модель, находящаяся справа, таким свойством не обладает. ©J. Hatzky
Раковые клетки, повёрнутые на 90 градусов. В центре показано представление весов модели, эквивариантной к повороту. Модель, находящаяся справа, таким свойством не обладает. ©J. Hatzky

Например — взгляните на это изображение раковых клеток. Если мы сочтём модель эквивариантной к повороту, то представление изображения клеток, которое имеется у модели, будет лишь вращаться вместе с изображением, а структура представления при этом останется неизменной. Если же модель таким свойством не обладает, то имеющееся у неё представление при повороте изображения будет меняться практически произвольным образом. Поэтому то, что, в одном положении, выглядит как раковая клетка, при повороте изображения может выглядеть как что‑то совершенно другое. Очевидно — это не то, что нужно при решении задач обнаружения клеток определённых типов. Тут просто необходима эквивариантная модель, которая знает о том, что такое вращательная симметрия. Модель, на работу которой вращение изображений не влияет. Возможно, эта модель будет эквивариантна и к другим трансформациям входных данных.

Общий подход к проектированию геометрических моделей

При интеграции априорных геометрических знаний в архитектуры глубокого обучения обычно применяется стандартный подход, включающий в себя выполнение определённой последовательности шагов. Сначала слои сети расширяют так, чтобы привести их в соответствие с целевой геометрической группой трансформаций, такой, как вращение, что приводит к появлению того, что мы называем G‑эквивариантными слоями. Эта адаптация сети к задачи обеспечивает то, что сеть сможет захватывать и учитывать специфические геометрические характеристики, присущие входным данным.

В ходе этого процесса могут быть стратегически применены техники локального пулинга, позволяющие управлять сложностью сети и оптимизировать её. Особенно — когда уменьшение размерности изображений считается полезным. Применение операций пулинга помогает системе сосредоточиться на самых важных признаках изображения, сохраняя при этом возможность сети распознавать детали изображений.

В итоге получается, что архитектуру модели проектируют так, чтобы она демонстрировала бы инвариантность при применении к изображению неких трансформаций. Для того чтобы этого достичь, в самом конце выполняется глобальная операция пулинга, затрагивающая групповое измерение. Этот шаг обеспечивает то, что представление данных, изученное сетью, остаётся неизменным вне зависимости от применённых к изображению геометрических преобразований.

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

Пример геометрической архитектуры глубокого обучения. Комбинация эквивариантных слоёв, между которыми могут быть расположены слои локального пуллинга, с применением слоя глобального пуллинга для создания инвариантности к геометрическим манипуляциям с элементами. ©J.Hatzky
Пример геометрической архитектуры глубокого обучения. Комбинация эквивариантных слоёв, между которыми могут быть расположены слои локального пуллинга, с применением слоя глобального пуллинга для создания инвариантности к геометрическим манипуляциям с элементами. ©J.Hatzky

Свёрточные нейронные сети, эквивариантные к группам преобразований элементов (Group Equivariant Convolutional Neural Networks, G-CNN)

Дебют G‑CNN состоялся в 2016 году. Эти системы стали значительным шагом вперёд в сфере нейросетевых архитектур.

Идея, лежащая в основе G‑CNN, заключается в применении групп трансформаций в свёрточном ядре CNN. Делается это путём выполнения двух операций. Это — операция подъёма (lifting) свёртки и операция групповой (group) свёртки.

При выполнении подъёма свёртки берут изображение и «поднимают» его до размерности нужной группы преобразований. Разберём этот вопрос подробнее, используя пример группы трансформаций, предусматривающий поворот изображения на 90 градусов.

Представьте себе группу трансформаций, в которую входят операции вращения изображений. Нам нужно осуществить подъём ядра к размерности этой группы трансформаций. Мы достигаем этого, четыре раза поворачивая ядро, что соответствует четырём различным ориентациям изображения в группе трансформаций, в которую входит четыре операции вращения на 90 градусов.

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

Подъём свёртки. Мы создали поднятые версии свёрточного ядра. В данном случае они представляют вращения в группе трансформаций C4, в которую входят повороты изображения на 90 градусов. Затем мы обработали входное изображение с использованием каждого из ядер. ©J. Hatzky
Подъём свёртки. Мы создали поднятые версии свёрточного ядра. В данном случае они представляют вращения в группе трансформаций C4, в которую входят повороты изображения на 90 градусов. Затем мы обработали входное изображение с использованием каждого из ядер. ©J. Hatzky

После подъёма свёртки в нашем распоряжении оказывается группа из четырёх свёрнутых изображений. Если мы хотим применить дальнейшие операции свёртки, нам нужно обрабатывать не одно входное изображение, а все эти четыре варианта, представляющие четыре трансформации входных данных. Для этого мы используем слои групповой свёртки.

Групповая свёртка. Так же, как и при подъёме свёртки, тут мы создаём позиционные индексы, определённые на группе. Далее — мы находим сумму значений, что позволяет сохранить размерность. ©J. Hatzky
Групповая свёртка. Так же, как и при подъёме свёртки, тут мы создаём позиционные индексы, определённые на группе. Далее — мы находим сумму значений, что позволяет сохранить размерность. ©J. Hatzky

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

Трансформер, эквивариантный к группам преобразований входных данных

Помня о концепции свёртки, эквивариантной к группам преобразований входных данных, мы можем применить ту же идею для построения механизма внутреннего внимания, обладающего тем же свойством.

В наши дни у многих архитектур глубокого обучения уже есть «коллеги», обладающие свойством эквивариантности к группам преобразований объектов.

Сравнительно недавно это стало относиться и к трансформерным моделям, а конкретнее — к тем их частям, которые отвечают за реализацию механизмов внутреннего внимания.

Механизм внутреннего внимания, в его исходном виде, не учитывает позиционную информацию, имеющуюся во входных данных, демонстрируя эквивариантность к пермутациям. Если говорить простыми словами, то это означает, что входные данные, подвергнутые пермутации, вызывают соответствующие пермутации выходных данных. Это свойство, присущее трансформерам, делает их весьма универсальными системами. Благодаря этому они без особых усилий «понимают» такие изменения входных данных, как вращения, переносы, отражения, а так же — другие изменения, в ходе которых сохраняется симметрия. Эти изменения можно считать особыми случаями пермутаций. Но такая вот «широкая» эквивариантность, хотя и даёт трансформерам мощные возможности, часто, при решении многих задач, оказывается слишком общим механизмом. Особенно — когда очень важно, чтобы система тонко реагировала бы на небольшие изменения входных изображений, например — на изменение позиций элементов.

С этим ограничением обычно справляются, добавляя в модель позиционную информацию. Интересно отметить, что, когда в модель включают абсолютную позиционную информацию, она утрачивает свои эквивариантные свойства. Это происходит из‑за того, что каждый фрагмент входных данных, в каждой его позиции, становится чем‑то уникальным, что нарушает возможности трансформера по восприятию симметричных трансформаций. А вот если в систему внедряют относительные сведения о позиционировании элементов — это восстанавливает её эквивариантность к трансформации переноса, так как относительная ориентация объектов относительно друг друга остаётся неизменной при сдвиге их позиций.

Разновидности эквивариантности, присущие трансформерам, проявляющиеся при применении различных подходов к позиционному кодированию. ©J. Hatzky
Разновидности эквивариантности, присущие трансформерам, проявляющиеся при применении различных подходов к позиционному кодированию. ©J. Hatzky

Итак, нам хотелось бы, чтобы в трансформерах было бы что‑то такое, что учитывает некие сведения об определённых группах симметрии, вроде вращений. При этом нам надо, чтобы эти сведения были бы не слишком общими. Это — то, что называется эквивариантностью к уникальным группам трансформаций. И вы уже, наверное, догадываетесь, что достигнуть этого можно, используя групповые операции, по‑особому изменив позиционную информацию. Оказывается, если представить себе абсолютное позиционное кодирование в виде некоей двумерной сетки, у такой конструкции будет много общего с G‑CNN.

И мы, на самом деле, можем применить те же группы трансформаций, что применяли к двумерному свёрточному ядру, и к двумерной сетке с позиционной информацией.

Подъём слоя внутреннего внимания с использованием абсолютных позиционных эмбеддингов. Так же, как и в случае с G-CNN, мы применяем группы преобразований к индексам позиционных эмбеддингов механизма внутреннего внимания для получения трансформаций, поднятых к нужным размерностям. ©J. Hatzky
Подъём слоя внутреннего внимания с использованием абсолютных позиционных эмбеддингов. Так же, как и в случае с G-CNN, мы применяем группы преобразований к индексам позиционных эмбеддингов механизма внутреннего внимания для получения трансформаций, поднятых к нужным размерностям. ©J. Hatzky

Вместо создания изменённых версий ядра, как это было в случае с G‑CNN, мы создаём изменённые версии двухмерной сетки для индексов абсолютного позиционирования. Мы называем эту операцию «подъёмом слоя внутреннего внимания».

Затем мы применяем четыре отдельных операции множественного внутреннего внимания, что даёт нам четыре уникальных представления одного и того же входного изображения.

Теперь, хочется надеяться, вам понятно то, как всё это похоже на групповую свёртку. И здесь мы действуем похожим образом. Мы определяем операцию, которую называем групповым внутренним вниманием. Эта операция напрямую воздействует на поднятые версии индексов.

Групповое внутреннее внимание с абсолютными позиционными эмбеддингами. Здесь, по аналогии с G-CNN, мы применяем группы преобразований к индексам позиционных эмбеддингов внутреннего внимания, что позволяет получить поднятую трансформацию. ©J. Hatzky
Групповое внутреннее внимание с абсолютными позиционными эмбеддингами. Здесь, по аналогии с G-CNN, мы применяем группы преобразований к индексам позиционных эмбеддингов внутреннего внимания, что позволяет получить поднятую трансформацию. ©J. Hatzky

Обратите внимание на то, что применение группового механизма внутреннего внимания вызывает вращение ядер на 90 градусов, а так же — циклическую пермутацию вдоль групповой оси.

После прохождения данных через нескольких подобных слоёв мы выполняем операцию пулинга — например — такого, в ходе которого объединяются средние значения. Таким образом мы наделяем сеть инвариантностью к группам преобразований входных данных.

Мы создали механизм внутреннего внимания, который инвариантен к поворотам входных данных на 90 градусов. Отлично!

Исследуем свойства эквивариантности в контексте поднятия механизмов внутреннего внимания и групповых механизмов внутреннего внимания. Для того чтобы это сделать, мы подаём на вход сети изображение вместе с его копией, повёрнутой на 90 градусов. Далее — мы наблюдаем за тем, как в сети, после применения операций подъёма и операций по работе с группами, эволюционирует представление этих данных.

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

Поведение представлений признаков при подъёме слоёв внутреннего внимания и при выполнении над ними групповых операций. Вращение входного изображения вызывает в промежуточном представлении признаков вращение, дополненное циклической пермутацией. ©J. Hatzky
Поведение представлений признаков при подъёме слоёв внутреннего внимания и при выполнении над ними групповых операций. Вращение входного изображения вызывает в промежуточном представлении признаков вращение, дополненное циклической пермутацией. ©J. Hatzky

Обратите внимание на то, что представления, формируемые сетью, остаются инвариантными к поворотам изображения на 90 градусов и к циклической пермутации. Такая устойчивая и согласованная реакция модели на изменения входных данных подчёркивает обретённое ей свойство эквивариантности. Это подтверждает возможность модели сохранять важнейшие признаки и паттерны, имеющиеся в данных, при применении к ним групп преобразований.

Итоги

То, что нам удалось выяснить, говорит о многообещающих возможностях подходов к работе с моделями, в ходе реализации которых в модели внедряют априорные геометрические знания, добиваясь от них эквивариантности к группам трансформаций входных данных. Продемонстрированная здесь возможность моделей поддерживать единообразные представления входных данных при применении к ним специфических преобразований, даёт нам ценные способы улучшения эффективности сетей и их возможностей по обобщению входных данных. Появление сетевых архитектур, эквивариантных к группам преобразований входных данных, открывает перспективы улучшения стабильности нейросетевых систем. Всё это делает нейросети интересным инструментом для решения задач, в которых может оказаться полезным выявление в данных геометрических закономерностей.

О, а приходите к нам работать? 🤗 💰

Мы в wunderfund.io занимаемся высокочастотной алготорговлей с 2014 года. Высокочастотная торговля — это непрерывное соревнование лучших программистов и математиков всего мира. Присоединившись к нам, вы станете частью этой увлекательной схватки.

Мы предлагаем интересные и сложные задачи по анализу данных и low latency разработке для увлеченных исследователей и программистов. Гибкий график и никакой бюрократии, решения быстро принимаются и воплощаются в жизнь.

Сейчас мы ищем плюсовиков, питонистов, дата-инженеров и мл-рисерчеров.

Присоединяйтесь к нашей команде

Теги:
Хабы:
Всего голосов 14: ↑14 и ↓0+14
Комментарии0

Публикации

Информация

Сайт
wunderfund.io
Дата регистрации
Дата основания
Численность
11–30 человек
Местоположение
Россия
Представитель
xopxe