Геометрическое глубокое обучение - это очень захватывающая новая область, но его математика постепенно уходит в область алгебраической топологии и теоретической физики. Это особенно верно для статьи Cohen et. al. (https://arxiv.org/abs/1902.04615), который я хочу изучить в этой статье. В статье используется язык калибровочной теории, которая лежит в основе всего, что в физике любит использовать вместе слова квант и поле. Он обещает дать интуитивное понимание основ калибровочной теории, и я должен сказать, что он дает и, вероятно, является самым хорошим введением, которое я когда-либо видел. Но это все еще остается сложной темой.

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

Далее я предполагаю, что вы знаете, как работают сверточные нейронные сети (CNN), но не знаете, какое отношение они имеют к многообразиям. Итак, начнем!

Коллекторы

Коллектор - вещь простая. Каждую двумерную поверхность, которую вы видите, можно рассматривать как многообразие. Поверхность сферы, поверхность куба, все многообразия. Но это не ограничивается 2-D, черт возьми, это даже не ограничивается вещами, которые можно вообразить. Кривая - это многообразие. 4-мерное пространство-время - это многообразие. Он довольно общий и описывает пространство. Но давайте сосредоточимся на двухмерных поверхностях. Самая простая поверхность - это плоскость, например экран компьютера. И когда мы делаем свертку с CNN, мы обычно делаем это на этих плоских изображениях.

Скажем, мы хотим предсказывать погоду с помощью CNN. Для отдельной страны это довольно просто: используйте местные данные о погоде в качестве входных данных и keras-keras-boom, у вас есть обученная модель. Что, если мы хотим классифицировать погоду для всей планеты? Как уместить это на одном изображении? Возможно:

Но есть проблема. На самом деле левый и правый край - это одно и то же место. Кроме того, весь верхний край соответствует одной точке, как и нижний край. Все это искажено. Вы когда-нибудь пробовали разгладить мяч для пинг-понга? Да, не ладится. Когда мы пытаемся применить свертку, мы получим странные результаты. По краям могут происходить нефизические вещи. Он мог бы предсказать сильный восточный ветер в дальнем правом углу изображения, но ничего не в левой части изображения, даже если они представляют одно и то же место. CNN просто не понимает, что Земля вертится вокруг.

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

Поехали в Сингапур!

А пока забудем на секунду о погоде и возьмем компас. Допустим, вы в Сингапуре. Направляйтесь на север, мимо Таиланда, через Китай, Монголию до северного полюса. И, не меняя направления, продолжайте идти вперед. Вы будете проезжать через Канаду, США, пока не окажетесь где-нибудь в Центральной Америке. Остановитесь прямо здесь и начните плавать боком через Тихий океан, не меняя направления! После нескольких миллионов ударов вы должны снова оказаться в Сингапуре. Но ждать. Вы никогда не меняли направление, почему вы смотрите на юг?

Давайте повторим это, но на этот раз мы пойдем боком влево, как только достигнем северного полюса. Мы окажемся возле Нигеры и начнем идти назад, снова не меняя направления. Вернувшись в Сингапур, на этот раз смотрим на запад? Странно ... Не верите? Попробуйте сами, возьмите компас и начните плавать ...

Эта проблема возникает из-за кривизны сферы, и мы называем «перемещение без изменения направления» параллельным перемещением. Вы видели, что параллельный транспорт очень зависит от пути, пройденного по сфере. Однако в двумерном плане это не имеет значения. Вы можете пройти каждый путь, не меняя направления, и вернуться в прежнее направление. Таким образом, мы говорим, что плоскость параллельна (ваш вектор направления остается параллельным после того, как вы вернетесь), а сфера - нет.

Как видите, это проблема нашего CNN на сфере. Если мы перемещаем наш CNN по-разному на всех наших картах, кажется, что направление меняется. Нам нужно найти способ убедиться, что эта странность не повлияет на наш результат! Или, по крайней мере, мы должны знать, как с этим бороться.

Волосатые, волосатые шарики

Прежде чем мы найдем решение, мы должны познакомить вас с математическими концепциями. Стрелку компаса можно рассматривать как вектор на плоскости, указывающий в каком-то направлении, в основном на север. Эта плоскость, в которой вращается стрелка, является касательной к поверхности земли, и мы будем называть ее касательным пространством в этой точке. Несмотря на то, что Земля круглая, касательное пространство совершенно плоское. Он действует как местная система координат, где север и восток являются ее векторами координат. И, поскольку мы можем вынуть компас из любой точки на земле, каждая точка имеет собственное касательное пространство. Но мы также можем определить 40 ° и 130 ° в качестве наших координатных векторов. Север и другие направления здесь ничего особенного и выбор произвольный.

Теперь давайте выберем любое направление в нашем касательном пространстве и сделаем шаг вперед по нему. Мы выбираем кратчайший путь (геодезический) и попадаем в новую точку. Вы можете назвать это «продвижением вперед», но, чтобы сбить с толку всех, мы назовем этот процесс экспоненциальной картой (что происходит из-за того, что все эти крошечные шаги волшебным образом напоминают разложение в ряд экспоненциальной функции. … Но сейчас это не важно).

Давайте еще раз посмотрим на стрелку компаса. Тот факт, что компас назначает вектор «каждой» точке на Земле, называется (касательным) векторным полем. Ветер также можно рассматривать как векторное поле, поскольку он задает направление каждой точке. Я специально заключил «каждый» в кавычки, поскольку что-то не так со стрелкой компаса, когда вы стоите прямо на магнитном севере или магнитном юге. На самом деле, это неверно для любого ненулевого непрерывного векторного поля на сфере. Мы должны иметь полюса в нашем магнитном поле на сфере. Этот феномен называется теоремой о волосатом шарике, поскольку он сродни невозможности расчесывать волосатый шарик без создания завихрений:

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

(Особым типом поля является скалярное поле. Оно имеет только одно измерение, а температуру можно рассматривать как такое скалярное поле)

Измерять

Температура везде измеряется по-разному. Здесь, в Германии, мы используем градусы Цельсия. В США используют градусы Фаренгейта. Этот выбор называется датчиком. И да, это слово происходит от измерительного прибора. Теперь, когда я читаю прогноз погоды в США, мне нужно вычислить, что означает температура по Фаренгейту в Цельсиях. У нас разные рамки референции. Этот расчет называется калибровочным преобразованием. Обратите внимание, что фактическая температура не изменилась, только значение, которое мы используем для ее понимания, и преобразование представляет собой простую линейную функцию.

Если мы посмотрим на векторные поля, такие как направление ветра, все станет сложнее. Чтобы довести это до крайности, давайте представим, что есть какая-то страна, Гаугеланд, которая на самом деле не заботится о севере и юге и имеет свою собственную систему направлений, основанную на звездных созвездиях или направлении, в котором бежит еж, когда ему страшно. Когда эти люди описывают ветер, мы должны выполнить преобразование шкалы, чтобы понять, о каком направлении они говорят. Теперь калибровочное преобразование превращается в умножение на обратимую матрицу (очевидно, оно должно идти в обоих направлениях). Эта группа матриц называется общей линейной группой или GL.

Для теоретической плоской Земли выбор шкалы ветра может быть глобальным. Но на сфере мы сталкиваемся с проблемами. Мы не можем определить один глобальный датчик, вместо этого мы должны полагаться на несколько датчиков и карт. Из нашей проблемы распараллеливания на сфере и теоремы о волосатом шаре мы должны иметь некоторую интуицию, почему это должно быть так.

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

Назад к глубокому обучению

Мы вернулись к нашей исходной задаче и хотим выполнить свертку векторного поля направлений ветра. Здесь ветер представляет входные объекты. Скажем, мы хотим найти направления торнадо в качестве выходных данных. Мы можем выполнить свертку на «маленьких участках», чтобы извлечь эти выходные характеристики по направлениям ветра. (Примечание: я понятия не имею, имеет ли это метеорологический смысл ... входные векторы в выходные векторы ... это все, что нам нужно знать)

Но «маленькие пятна» - очень расплывчатое описание. В 2-D плоскости это просто, мы можем просто взять все, что находится внутри какого-то шара вокруг центра пятна. Это в некоторой степени работает и на идеальной сфере. Но на произвольном многообразии? Все становится непросто. Взгляните на это модное многообразие:

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

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

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

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

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

Калибровочная эквивалентность

Свертка, которую мы определили до сих пор, кажется разумной. Мы применяем наши ядра к данным о ветре и получаем хороший результат: торнадо движется на восток. Но почему-то мы все равно получаем другие результаты по сравнению с Gaugeland? Они предсказали, что смерчи движутся ежиком влево?

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

Что случилось? Мы забыли сделать нашу свертку калибровочной эквивариантной. Короче говоря, результат ядра должен зависеть от выбранной калибровки и эквивариантно преобразовываться. В противном случае мы просто получаем странные результаты, которые невозможно сопоставить или сравнить друг с другом.

Но выходной вектор может быть другого измерения или иметь иную интерпретацию, чем входной, как мы соотносим калибровочные преобразования входных данных с эквивариантными «калибровочными преобразованиями» выходных данных? Так как структурная группа действует только на входные данные, идея состоит в том, чтобы найти представление той же самой группы, которая действует на выходные векторы. Например, преобразование двумерного входного вектора с группой вращения в качестве его структурной группы может быть представлено трехмерным выходным вектором, вращающимся вокруг одной оси. Когда двумерный вектор вращается, трехмерный вывод также вращается вокруг фиксированной оси. Как правило, может быть много представлений, например, может быть много разных осей вращения в 3-D. Дело в том, что он делает что-то, что представляет собой то же действие.

Имея идею представления, мы можем сделать калибровочную свертку эквивариантной. Нам просто нужно убедиться, что калибровочное преобразование входного вектора приводит к эквивариантному преобразованию (то есть к тому же преобразованию, но в соответствующем представлении) выходного вектора.

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

Икосаэдр?

В основном мы рассмотрели Раздел 2 статьи. Теперь авторы переходят к икосаэдрам, которые топологически очень похожи на сферы, но лучше. Они лучше в том смысле, что их гораздо легче разделить, чем сфера.

Так же, как когда мы покрыли землю несколькими картами, давайте накроем Икосаэдр 5 перекрывающимися картами (перекрытие обозначено крошечными полностью белыми треугольниками):

Красиво, карты даже такого размера. Неудивительно, что они выбрали именно этот коллектор. Мы также можем рассматривать это как график. Обратите внимание, что каждый узел, то есть каждое пересечение, является точкой на коллекторе с входным вектором признаков (не виден на изображении выше). Каждый маленький треугольник имеет 3 угла, каждый из которых является одним из этих узлов. Это то, что нас интересует.

Итак, займемся сверткой!

Во-первых, нам нужно посмотреть, как выглядит наша экспоненциальная карта. Что ж, на нашем дискретном многообразии это легко. Мы просто начинаем с узла и делаем один шаг в любом направлении. Направления видны на изображении выше в виде линий, соединяющих узлы. Итак, у большинства узлов есть 6 соседей, за исключением тех, которые находятся в углах Икосаэдра, у которых 5 соседей.

Далее нам понадобится функция ядра. Но мы ленивы и не хотим изобретать велосипед. Итак, мы просто воспользуемся фильтрами 3 x 3 из стандартной двухмерной свертки. Эти фильтры 3 x 3 имеют центральную точку и 8 соседей. Это больше, чем нам нужно. Итак, давайте просто проигнорируем верхний правый и нижний левый соседей в сетке 3 x 3, установив для них значение 0, и представим, что у него когда-либо было только 6 соседей.

Все, что осталось, - это сделать эту штуку калибровочно-эквивариантной. Что ж, давайте посмотрим на структурную группу нашего Икосаэдра. Мы уже отметили, что мы можем идти только в 6 разных направлениях. Если бы мы описали ветер на этой структуре, у нас было бы только 6 различных систем отсчета, каждая из которых повернута на 60 °. Это также можно сформулировать как имеющую циклическую группу порядка 6 или C6 в качестве ее структурной группы.

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

Заключение

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

Я надеюсь, что мое нематематическое объяснение помогло понять идеи, изложенные в статье. Если вы находите такие вещи интересными и хотите усердно разбираться в математике, обязательно посмотрите книгу Накахары «Геометрия, топология и физика».