Нежное введение в управляемые нейронные сети (часть 1)
Изысканное введение в управляемые нейронные сети (часть 1)
Что такое управляемые нейронные сети и контекст
Введение
Геометрическое глубокое обучение, как ветвь глубокого обучения, стремится расширить традиционные фреймворки искусственного интеллекта, такие как сверточные нейронные сети, для обработки 3D или 2D геометрических объектов, представленных в виде графов, многообразий или облаков точек. Включая геометрические отношения и пространственные зависимости непосредственно в обучающий фреймворк, геометрическое глубокое обучение использует врожденные структурные свойства данных, чтобы устранить необходимость в техниках интенсивной памяти на основе аугментации данных. По всем этим причинам геометрическое глубокое обучение может рассматриваться как ценный инструмент для решения сложных сценариев данных в областях таких, как компьютерное зрение, обработка естественного языка и далее. Относительно типа задачи и типа преобразования было предложено множество новых архитектур сверточных нейронных сетей, таких как “сферические нейронные сети” (ссылка), “графовые нейронные сети” (сссылка) и “управляемые нейронные сети”.
Управляемые нейронные сети привлекли значительный интерес своей способностью расширить возможности обычных сверточных нейронных сетей (СНС). Эти сети можно рассматривать как эволюцию СНС, где ядро подчиняется определенным ограничениям. В то время как СНС отлично работают как эквариантные к переводу, управляемые нейронные сети идут еще дальше, предлагая улучшенную гибкость и захватывая более широкий спектр преобразований, таких как поворот.
Этот учебник представит введение в “управляемые нейронные сети” (S-CNN), пытаясь донести интуитивное понимание математических концепций, лежащих в их основе, и шаг за шагом объяснить, как проектировать эти сети. Учебник состоит из двух статей. Эта первая статья служит введением в управляемые нейронные сети (NN), объясняя их цель и более глубоко определяя понятия и формализм, лежащие в основе S-CNN. Вторая статья (здесь) обсуждает на высоком уровне проектирование управляемых фильтров и управляемых сетей в целом.
Цель данной работы состоит в заполнении пробела между текущей научной литературой и более широкой аудиторией специалистов по обработке данных. Он идеально подходит для технических специалистов, а также для исследователей в этой новой области машинного обучения.
- Приятное введение в управляемые нейронные сети (часть 2)
- Пионерская наблюдаемость данных данные, код, инфраструктура и ИИ
- Моя третья неделя #30DayMapChallenge
В качестве справочных точек были использованы следующие статьи:
[1] “3D управляемые СНС: изучение ротационно инвариантных особенностей в объемных данных”, Вайлиер и др., (ссылка);
[2] “Управляемые СНС”, Коэн и др. (( ссылка);
[3] “Изучение управляемых фильтров для ротационно инвариантных СНС”, Вайлиер и др., (ссылка)
[4] “Общие E(2)-эквивариантные управляемые СНС” Вайлиер и др., (ссылка)
[5] “Масштабируемые управляемые фильтры для локально инвариантной сверточной нейронной сети”, Гош и др. (ссылка)
[6] “Программа для создания E(n)-эквивариантных управляемых СНС.”, Чеза и др. (ссылка)
Что такое управляемые нейронные сети:
Управляемые нейронные сети получили свое название по особому типу фильтров, которые они используют. Такие фильтры называются g-управляемыми фильтрами и они были вдохновлены управляемыми фильтрами, которые получили популярность в области распознавания изображений для обнаружения границ или анализа ориентированных текстур в начале 90-х годов. Управляемая означает обычно управляемая, управляемая, способная быть управляемой или контролируемой. В соответствии с этой конвенцией ответ управляемого фильтра ориентируется и адаптируется к определенной ориентации ввода (например, изображению). Управляемость связана с другим очень важным свойством, называемым Эквивариантность. В эквивариантном фильтре, если ВХОД в фильтр преобразуется согласно определенному и хорошо определенному геометрическому преобразованию g (перевод, вращение, сдвиг), ВЫХОД (результат свертки ВХОДА с фильтром) преобразуется тем же преобразованием g. В общем случае эквивариантность не требует, чтобы преобразования (преобразование на входе и преобразование на выходе) были одинаковыми. Этот концепт будет более подробно рассмотрен в следующем абзаце, но на данный момент он позволяет нам дать первое определение управляемого фильтра и управляемой СНС.
Структурированный фильтр Steerable CNN может быть определен как фильтр, ядро которого является конкатенацией различных допускающих релятивность фильтров. Эти фильтры обладают эквивариантными свойствами по отношению к операции свертки относительно набора хорошо определенных геометрических преобразований.
Как будет видно позднее, условие эквивариантности при операции свертки приводит к наложению определенных ограничений на структуру ядра и весы. Из этого определения теперь можно определить, что такое стернираемые нейронные сети: Steerable Neural Networks – это нейронные сети, состоящие из серии странурующих фильтров.
Для чего используются S-CNN:
Сила обычной CNN заключается в эквивариантности к трансляции. Однако, стернираемые нейронные сети более гибкие и могут демонстрировать другие типы преобразований, такие как вращение. В проблеме с вращательной эквивариантностью, модифицированная CNN вынуждена учить повернутые версии одного и того же фильтра, что приводит к избыточной степени свободы и увеличивает риск переобучения. По этой причине сети стернируемых CNN могут превосходить классические CNN, непосредственно внедряя информацию о геометрических преобразованиях, действующих на вход. Это свойство делает S-CNN особенно полезными для решения нескольких сложных задач, где необходимо обрабатывать входы, имеющие геометрическое описание и представление, такие как изображения, многообразия или векторные поля.
Возможные практические применения, например:
- Трудная сегментация 2D-изображений: предсказание границ клеток на основе входного микроскопического изображения.
- Классификация 3D-моделей: классификация и распознавание 3D-объектов.
- Классификация 3D-химической структуры: предсказание 3D-химической структуры молекулы на основе ее химической структуры. Возможным примером является предсказывание пространственных предпочтений группы аминокислот на основе ее последовательности, как объясняется в разделе 5.4 статьи [2].
![Пример применения трехмерной стернируемой нейронной сети для распознавания трехмерных объектов. Входной объект (сверху) и представление двух разных скрытых слоев карты признаков. Взято из ссылки](https://ai.miximages.com/miro.medium.com/v2/resize:fit:640/format:webp/1*0GRDq8ALiM0vorSH7K7l_w.png)
Предварительные определе
где Π₀(g) : X → X’ и Π₁(g): Y→ Y’ – два линейных отображения (например, часто матрицы, применяемые умножением), определенные применением g к x. Визуальный пример приведен на рисунке ниже, взятого из статьи [2]. На изображении g – это поворот, точнее “поворот на -90°”; поэтому он называется r. Π₀(r) работает в области 𝛙 (=X), в то время как Π₁(r) работает в кодомене 𝛙 (=Y).
Если X=ℝ², 2-мерное декартово пространство, и r – это преобразование “поворот по часовой стрелке на 90°”, то матрица Π₀(r) будет равна 2×2 матрице Эйлера с θ=π/2.
Один должен заметить, что если 𝛙 совместим с G, применение трансформации и затем вычисление отображения дает тот же результат, что и вычисление отображения и затем применение трансформации, свойство, ранее известное как коммутация.
Также стоит упомянуть особый случай. Инвариантность, особый тип совместимости, где X=X’ и Y=Y’. Независимо от того, как входные данные преобразованы, результат всегда остается тем же. С точки зрения глубокого обучения, инвариантный фильтр может быть полезен, например, для распознавания объектов: несмотря на поворот входного изображения, результат фильтрации остается неизменным. Следует отметить, что пространства X и Y необязательно имеют одинаковую размерность, например, если мы пытаемся определить ориентацию (Y как 2-вектор) автомобиля на изображении (X как 2D-массив пикселей), то преобразования Π₁(g) и Π₀(g) будут отличаться, так как они применяются к разным пространствам, даже если они используют одинаковый g.
2. РУЛЮЩИЕ ФИЛЬТРЫ:
В отличие от управляемости автомобиля, рулевые фильтры сложнее понять интуитивно. Однако оба они имеют общую цель – достижение последовательного и предсказуемого ответа на определенный параметр, ответ, который тесно связан со внутренними преобразованиями самого фильтра.
Интуитивным примером может быть следующее: представьте себе ветровую стрелку на крыше, которая указывает направление ветра. Вместо установки отдельного датчика для каждого возможного направления ветра, что было бы не практично, у вас есть ветровая стрелка, которая поворачивается для выравнивания с текущим направлением ветра. Рулевой фильтр похож на ветровую стрелку. Он адаптируется к направлениям, закодированным во входных сигналах, не требуя уникального датчика для каждой возможности. Точно так же рулевые фильтры в обработке изображений адаптируются к различным особенностям или ориентациям в изображении без необходимости использования отдельного фильтра для каждой возможной ориентации входных данных. Этот подход предлагает интеллектуальный и эффективный метод моделирования систем. В контексте машинного обучения он позволяет нам сосредоточиться на создании ценных моделей, не беспокоясь о дополнении или включении дополнительных весов для обработки разных ориентаций.
В то время как рулевость может быть применена в общем случае к любому набору преобразований, мы здесь будем использовать повороты для введения идеи более формально. Пусть 𝛙: ℝᵈ →ℝᵈ¹ будет отображением свертки, чья ядро функция – k. Если x∈ℝⁿ, дан сигнал на входе, зависящий от x, f(x) ∈ ℝᵈ, и выходной сигнал, f ₁(x) ∈ ℝᵈ¹, мы можем записать: f ₁(x)= 𝛙( f(x)), что означает f ₁(x)= k(x) ∗ f(x).
Этот фильтр определен как рулевой относительно поворотов, если:
(1) его ядро свертки k(x) каждого выходного элемента может быть выражено в виде суммы базисных функций ψⱼ(x), j=1,..M.
(2) поворот фильтра на произвольный угол θ, g_θ, может быть выражен в терминах поворотов, применяемых к каждой отдельной базисной функции (это верно для каждого θ). В математических терминах это означает:
Благодаря этому свойству возможно уникально ориентировать ответ фильтра на вход, изменяя значения wⱼ. Предоставим пример. Простейшая иллюстрация одного управляемого фильтра в двухмерном пространстве – это фильтр, чей ядро является направленной производной двумерной гауссианы. В этом случае k: ℝ² →ℝ и x = (x₁,x₂) ∈ ℝ²:
В следующих строках мы покажем, что этот фильтр является управляемым в вышеуказанном смысле. Из теории мы знаем, что, учитывая, что кодомен k равен ℝ, мы можем записать повернутый фильтр как Eq.3 (для более подробной информации смотрите Eq.3 в следующем разделе).
Разрабатывая это уравнение, мы можем показать управляемость:
В данном случае мы применили преобразование g_θ: ℝ²→ℝ², которое представляется 2D-матрицей Эйлера (см. далее полученное представление). Если мы вычислим k(g_θ ⁻¹(x₁,x₂)), мы можем увидеть, после некоторой алгебры, что обобщенная повернутая версия этого импульсивного фильтра может быть выражена как линейная комбинация двух базисных функций ѱ₁(x₁,x₂) и ѱ₂(x₁,x₂) с коэффициентом, параметризованным θ.
Как видно из приведенного ниже уравнения (Eq.6), учитывая линейность свертки, всегда возможно выразить свертку входной функции f с θ-повернутым импульсным откликом g_θ(k(x,y))=k_θ как линейную комбинацию сверток f с единичным базисом ѱ₁,ѱ₂ из k.
Эта формула подчеркивает мощь управляемых фильтров в нейронной сети. Используя эти фильтры, у нас есть возможность создать управляемое ядро, которое “управляет” своими ответами в соответствии с ориентацией входных данных. Каждая базисная функция действует как универсальный инструмент, позволяя сети эффективно смешивать эти функции, используя изученные веса “w₁” и “w₂”, чтобы точно отвечать на изменяющиеся ориентации. Например, когда сеть сталкивается с данными с разными ориентациями, такими как повернутый объект на изображении, она настраивает эти веса, чтобы согласовать ответы ядра с ориентацией входных данных. Эта адаптивность повышает эффективность и эффективность, приводя к тем же или лучшим результатам с меньшим количеством параметров. Поэтому этот подход может быть использован в качестве основы для более мощной сверточной нейронной сети, использующей управляемые свойства для обработки разнообразных ориентаций входных данных. В следующей статье мы более подробно рассмотрим это и увидим, как мы можем использовать концепцию управляемого фильтра для создания эквивариантных фильтров.
Однако, перед тем как мы погрузимся в эту тему, некоторые определения в этом контексте обеспечат ясность и помогут в нашем обсуждении. По этой причине в следующем абзаце мы вводим некоторую формализацию вокруг свертки.
3. ФОРМАЛИЗМ:
В этой части мы пытаемся дать читателю схематическое объяснение всех элементов, рассматриваемых в анализе. Этот формализм позволит нам формальнее определить CNN и геометрические преобразования, которые происходят на уровне входных данных. Это позволит нам в следующей статье понять, как работают строительные CNN.
Элементы:
- Пространство S: Пространство, в котором происходит анализ. Хотя S может иметь произвольное число измерений, его проще визуализировать для двух или трех пространственных измерений. Если, например, мы рассматриваем изображение, исходное пространство является двумерным и соответствует координатной плоскости пикселей (ℤ²). Если вместо этого рассматривается “3D объект”, пространство S является трехмерным, ℤ³. Точка x∈S, следовательно, идентифицирует позицию.
- Функция ввода f: Функция f: S → F₀ = ℝ ͨ, описывающая ввод по нашему геометрическому пространству (она может быть многообразием или векторным полем). Это можно рассматривать как функцию от пространства S к ℝ ͨ, где каждой позиции x соответствует “особенность” f(x), также называемая волокном f в точке x. Давайте рассмотрим несколько примеров; серое изображение можно рассматривать как функцию f: ℝ² → ℝ, где S = ℝ² и c = 1. Если мы рассматриваем раскрашенное 3D-многообразие, функция будет f: ℝ³→ ℝ³, где каждой позиции будет назначен цвет RGB, S=ℝ³, c=3. Практически функция f обычно представляется в виде упакованной структуры волокон по некоторому сэмплированному пространству; для изображения в стандартном формате волокна будут равномерно распределены горизонтально и вертикально (т.е. пиксели). Функция f составляет входной слой нейронной сети (см. Фигуру 2А, Фигуру 2В). Отныне этот стартовый слой будет называться F₀.
- Набор преобразований G: После того, как объекты анализа были достаточно определены, мы можем определить набор преобразований, к которым сеть должна быть эквивариантна. Одно преобразование g∈G всегда можно описать как функцию относительно математического пространства, на котором оно применяется. Учитывая вводную функцию f:S→ℝ ͨ, можно характеризовать π(g): ℝ ͨ → ℝ ͨ как “индуцированное преобразование g в ℝ ͨ”. Функция f существует в ℝ ͨ, но преобразование g действует в пространстве S. π(g) описывает, как f (в ℝ ͨ) преобразуется под воздействием g (в S). Рассмотрев g как ротацию-трансляцию, состоящую из двух компонент r (поворот) и t (перенос), в общем случае функция ввода f(x) преобразуется под действием преобразования g, как описано в Eq.7. На рисунке ниже, если f – векторное поле, π(g) является матрицей размерности cxc, тогда как , если f – скалярное поле (f: ℝ² → ℝ), π(r) = 1. Группа G рассматриваемых преобразований обычно является поворотами (в этом случае мы будем говорить о сетях SO(2)) или даже поворотами + трансляциями (в этом случае мы будем говорить о сетях SE(2)). Аналогично, в трехмерном пространстве рассматриваются трехмерные жесткие движения ( SO(3) или SE(3)).
- Карты признаков: Следуя определению f, данному во втором пункте, выходы каждого слоя нейронной сети можно рассматривать как результат применения функции f ₙ к начальному пространству S. Формально это может быть представлено как функция от S к области значений Fₙ, ( f : S → Fₙ), где Fₙ=ℝ ͨ ʿⁿ ʾ и cⁿ – число признаков для слоя n. Например, если взять рис. 2B в качестве примера, то начальный сигнал (вход) можно рассматривать как функцию f : S= ℝ² → F₀= ℝ³, в то время как f₁: S= ℝ² → F₁= ℝ².
- Фильтры НС φn: Фильтр можно определить как отображение между двумя смежными слоями следующим образом: φ:Fₙ→ Fₙ₊₁. Применение такого фильтра к слою подразумевает свертку с соответствующим ядром k. То, как определена свертка в этом случае, важно для понимания управляемых НС. По этой причине мы посвятили ниже пункт.
Фильтр НС и свертка
В этом случае ядро может быть рассмотрено как функция k: S → ℝ ͨ ʿⁿ ʾ ˟ ͨ ʿⁿ⁺ ¹ ʾ, где каждая позиция в S связана с матрицей размерности cʿⁿ ʾ ˟ cʿⁿ⁺ ¹ ʾ. Для ясности, cⁿ и cⁿ ⁺ ¹ соответственно являются размерностью (количеством признаков) Fₙ и Fₙ₊₁.
Мы можем определить свертку следующим образом:
Верхнее уравнение Eq.8 представляет функцию, которая связывает слой n и n+1; нижнее уравнение представляет определение свертки в n-мерном пространстве S. Функция σ(x) представляет собой нелинейную функцию, применяемую к выходу свертки. На рис. 2B можно видеть, как в дискретной области вычисляется свертка между ядром и входным слоем. Давайте проиллюстрируем это на примере серого изображения, обозначенного как f₀: ℝ² -> ℝ. Мы можем применить фильтр, рассмотренный в разделе 2, который является управляемым фильтром с функцией k(x₁, x₂), являющейся двумерным гауссовским фильтром, определенным как k: ℝ² -> ℝ¹˟¹=ℝ.В этом случае применение фильтра k к f₀ представляет классическую двумерную свертку и может быть записано следующим образом:
Однако, на рис. 2B вы можете видеть другой пример, где f₀: ℝ² -> ℝ³ (например, RGB-изображение), f₁: ℝ² -> ℝ² и k₀: ℝ² -> ℝ³ ˟ ².
Объединяя все точки, которые мы обсудили до сих пор, можно визуализировать нейронную сеть в этой формализации. Каждая отдельная карта признаков может быть интерпретирована как функция f: S → Fₙ, где Fₙ= ℝʿⁿ ʾ и f₀(x) представляет вход нейронной сети. Применение фильтра включает свертку с его ядром, определенным в уравнении 8. Следует отметить, что основное нововведение заключается в геометрическом представлении функции f как функции, действующей в пространстве положений S, и определении свертки в этом пространстве.
Ниже мы предоставляем представление того, как выглядит нейронная сеть в этом контексте:
Мы узнаем в следующей статье, как определение такой формализации поможет нам в разработке регулируемого фильтра CNN.
Выводы
В этом начальном сегменте нашего обучающего материала по регулируемым нейронным сетям мы установили фундаментальные концепции регулируемых нейронных сетей, эквивариантности и регулируемых фильтров. Также была представлена математическая основа для понимания этих концепций. Эквивариантность сохраняет поведение при преобразованиях, а регулируемые фильтры интеллектуально адаптируются к ориентациям ввода. Эта основа открывает путь для проектирования эквивариантных фильтров CNN, улучшающих обнаружение границ и ориентационное распознавание. Следующая статья будет использовать эти концепции для более глубокого погружения в механизмы регулируемых фильтров CNN и завершения нашего путешествия в эту мощную парадигму нейронных сетей.
✍️ 📄. Об авторах:
1️⃣ Маттео Чиприан, Инженер/Исследователь Машинного обучения
- Магистр телекоммуникационной инженерии в Университете Падуи. В настоящее время работает в области слияния датчиков, обработки сигналов и прикладного искусственного интеллекта. Опыт в проектах, связанных с применением искусственного интеллекта в электронном здравоохранении и носимых технологиях (академическое и корпоративное исследование). Специализируется на разработке алгоритмов обнаружения аномалий, а также развитии методов глубокого обучения и слияния датчиков. Увлечен философией. Создатель контента на Youtube. 🔗 Ссылки: 💼 Linkedin 📹 Youtube 👨💻Instagram
2️⃣ Роберт Шунмейкер, Исследователь по обработке сигналов и машинному обучению
- PhD по физике конденсированного состояния из Даремского университета. Специализируется в области прикладного машинного обучения и нелинейной статистики, в настоящее время исследует возможности использования методов вычисления на GPU в синтетической апертурной радарной и подобных системах. Опыт включает разработку симметричных методов машинного обучения для использования в методах слияния датчиков и позиционирования.🔗 Ссылки: 💼 Linkedin