Капсульная нейронная сеть ( CapsNet ) — это система машинного обучения, которая является типом искусственной нейронной сети (ИНС), которая может быть использована для лучшего моделирования иерархических отношений. Подход представляет собой попытку более точно имитировать биологическую нейронную организацию. [1]
Идея состоит в том, чтобы добавить структуры, называемые «капсулами», в сверточную нейронную сеть (CNN) и повторно использовать выходные данные из нескольких таких капсул для формирования более стабильных (по отношению к различным возмущениям) представлений для более высоких капсул. [2] Выходные данные представляют собой вектор, состоящий из вероятности наблюдения и позы для этого наблюдения . Этот вектор аналогичен тому, что делается, например, при выполнении классификации с локализацией в CNN.
Среди прочих преимуществ, capsnets решает «проблему Пикассо» в распознавании изображений: изображения, которые имеют все правильные части, но не находятся в правильном пространственном соотношении (например, в «лице» положение рта и одного глаза поменяны местами). Для распознавания изображений capsnets используют тот факт, что хотя изменения точки обзора имеют нелинейные эффекты на уровне пикселей, они имеют линейные эффекты на уровне частей/объектов. [3] Это можно сравнить с инвертированием рендеринга объекта из нескольких частей. [4]
В 2000 году Джеффри Хинтон и др. описали систему визуализации, которая объединила сегментацию и распознавание в единый процесс вывода с использованием деревьев разбора . Так называемые сети достоверности описывали совместное распределение по скрытым переменным и по возможным деревьям разбора. Эта система оказалась полезной в базе данных рукописных цифр MNIST . [4]
Механизм динамической маршрутизации для капсульных сетей был представлен Хинтоном и его командой в 2017 году. Было заявлено, что этот подход снижает частоту ошибок в MNIST и уменьшает размеры обучающего набора. Было заявлено, что результаты значительно лучше, чем у CNN на сильно перекрывающихся цифрах. [1]
В первоначальной идее Хинтона один мини-столбец представлял бы и обнаруживал одну многомерную сущность. [5] [примечание 1]
Инвариант — свойство объекта, которое не изменяется в результате некоторого преобразования. Например, площадь круга не изменится , если круг сместить влево.
Неформально, эквивариант — это свойство, которое предсказуемо изменяется при преобразовании. Например, центр круга перемещается на ту же величину, что и круг при сдвиге. [6]
Неэквивариант — это свойство, значение которого не меняется предсказуемым образом при преобразовании. Например, преобразование круга в эллипс означает, что его периметр больше не может быть вычислен как π, умноженное на диаметр.
В компьютерном зрении класс объекта, как ожидается, будет инвариантом относительно многих преобразований. То есть, кошка все еще остается кошкой, если ее сдвинуть, перевернуть или уменьшить в размере. Однако многие другие свойства вместо этого являются эквивариантными. Объем кошки изменяется при ее масштабировании.
Эквивариантные свойства, такие как пространственные отношения, фиксируются в позе , данные, описывающие перемещение объекта , вращение , масштаб и отражение. Перемещение — это изменение местоположения в одном или нескольких измерениях. Вращение — это изменение ориентации. Масштаб — это изменение размера. Отражение — это зеркальное отображение. [1]
Неконтролируемые capsnets изучают глобальное линейное многообразие между объектом и его позой как матрицу весов. Другими словами, capsnets могут идентифицировать объект независимо от его позы, вместо того, чтобы учиться распознавать объект, включая его пространственные отношения как часть объекта. В capsnets поза может включать свойства, отличные от пространственных отношений, например, цвет (кошки могут быть разных цветов).
Умножение объекта на многообразие помещает объект (для объекта в пространстве). [7]
Capsnets отвергают стратегию слоя объединения обычных CNN, которая уменьшает количество деталей, обрабатываемых на следующем более высоком уровне. Объединение допускает определенную степень трансляционной инвариантности (оно может распознавать тот же объект в несколько ином месте) и позволяет представлять большее количество типов признаков. Сторонники Capsnet утверждают, что объединение: [1]
Капсула — это набор нейронов, которые индивидуально активируются для различных свойств типа объекта, таких как положение, размер и оттенок. Формально капсула — это набор нейронов, которые совместно производят вектор активности с одним элементом для каждого нейрона, чтобы хранить значение экземпляра этого нейрона (например, оттенок). [1] Графические программы используют значение экземпляра для рисования объекта. Capsnets пытаются вывести их из своих входных данных. Вероятность присутствия сущности в определенных входных данных — это длина вектора, в то время как ориентация вектора количественно определяет свойства капсулы. [1] [3]
Искусственные нейроны традиционно выводят скалярную, вещественную активацию, которая приблизительно представляет вероятность наблюдения. Capsnets заменяют детекторы признаков скалярного выхода на капсулы векторного выхода, а max-pooling на routing-by-agreement. [1]
Поскольку капсулы независимы, когда несколько капсул согласуются, вероятность правильного обнаружения намного выше. Минимальный кластер из двух капсул, рассматривающий шестимерную сущность, согласуется в пределах 10% случайно только один раз из миллиона попыток. По мере увеличения числа измерений вероятность случайного согласия в большем кластере с более высокими измерениями уменьшается экспоненциально. [1]
Капсулы в более высоких слоях принимают выходные данные от капсул в более низких слоях и принимают те, чьи выходные данные кластеризуются. Кластер заставляет более высокую капсулу выводить высокую вероятность наблюдения того, что сущность присутствует, а также выводить высокоразмерную (20-50+) позу. [1]
Капсулы более высокого уровня игнорируют выбросы, концентрируясь на кластерах. Это похоже на преобразование Хафа , RHT и RANSAC из классической цифровой обработки изображений . [1]
Выходы из одной капсулы (дочерней) направляются в капсулы в следующем слое (родительской) в соответствии со способностью дочерней предсказывать выходные данные родителей. В течение нескольких итераций выходные данные каждого родителя могут совпадать с прогнозами некоторых дочерних элементов и расходиться с прогнозами других, что означает, что этот родитель присутствует или отсутствует на сцене. [1]
Для каждого возможного родителя каждый потомок вычисляет вектор прогноза, умножая свой выход на матрицу весов (обученную методом обратного распространения ). [3] Затем выход родителя вычисляется как скалярное произведение прогноза с коэффициентом, представляющим вероятность того, что этот потомок принадлежит этому родителю. Потомок, чьи прогнозы относительно близки к результирующему выходу, последовательно увеличивает коэффициент между этим родителем и потомком и уменьшает его для родителей, которым он соответствует хуже. Это увеличивает вклад, который этот потомок вносит в этого родителя, тем самым увеличивая скалярное произведение прогноза капсулы с выходом родителя. После нескольких итераций коэффициенты прочно связывают родителя с его наиболее вероятными потомками, указывая на то, что присутствие потомков подразумевает присутствие родителя в сцене. [1] Чем больше потомков, чьи прогнозы близки к выходу родителя, тем быстрее растут коэффициенты, что обеспечивает сходимость. Поза родителя (отраженная в его выходе) постепенно становится совместимой с позой его потомков. [3]
Начальные логиты коэффициентов являются логарифмическими априорными вероятностями того, что ребенок принадлежит родителю. Априорные вероятности могут быть обучены дискриминационно вместе с весами. Априорные вероятности зависят от местоположения и типа капсул ребенка и родителя, но не от текущего ввода. На каждой итерации коэффициенты корректируются с помощью «маршрутизирующего» softmax так, чтобы они продолжали суммироваться до 1 (чтобы выразить вероятность того, что данная капсула является родителем данного ребенка). Softmax усиливает большие значения и уменьшает меньшие значения сверх их доли в общем количестве. Аналогично, вероятность того, что признак присутствует во входных данных, преувеличена нелинейной функцией «сдавливания», которая уменьшает значения (меньшие значения радикально, а большие так, что они меньше 1). [3]
Этот механизм динамической маршрутизации обеспечивает необходимое исключение альтернатив («объяснение»), которое необходимо для сегментации перекрывающихся объектов.
Эта изученная маршрутизация сигналов не имеет четкого биологического эквивалента. Некоторые операции можно обнаружить в корковых слоях, но они, похоже, не связаны с этой техникой.
Вектор позы поворачивается и преобразуется с помощью матрицы в вектор , который предсказывает выход родительской капсулы.
Капсулы на следующем более высоком уровне получают сумму предсказаний от всех капсул на нижнем уровне, каждая из которых имеет коэффициент связи.
Коэффициенты связи от капсулы в слое ко всем капсулам в слое в сумме дают единицу и определяются " мягким максимумом маршрутизации ". Начальные логиты являются априорными логарифмическими вероятностями для маршрутизации. Это априорная вероятность того, что капсула в слое должна соединиться с капсулой в слое . Нормализация коэффициентов связи: [1]
Чтобы эта процедура была оптимальной, ей пришлось бы запомнить несколько значений и сбрасывать эти значения на каждой итерации. То есть, если вектор изменяется, то запомненные значения должны обновляться. Не показано, как это должно быть сделано. Также не показано запоминание делителя. [1]
Поскольку длина векторов представляет вероятности, они должны быть в диапазоне от нуля до единицы, и для этого применяется функция сжатия: [1]
Вектор, сжатый до нуля, имеет исчезающий градиент.
Один из подходов к маршрутизации следующий [1]
В строке 8 функция softmax может быть заменена любым типом сети победитель-забирает-все . Биологически это несколько напоминает клетки люстры , но они также могут быть задействованы в расчете коэффициентов связи (строка 9) или расчете соглашений (строка 11).
В строке 9 показаны весовая матрица для коэффициентов связи и скрытая матрица предсказания. Структура в слоях I и II несколько похожа на кору головного мозга, если предположить, что звездчатые клетки участвуют в транспонировании входных векторов. Неясно, выполняют ли оба типа звездчатых клеток одну и ту же функцию, поскольку в слое I есть возбуждающие шиповатые клетки, а в слое II — тормозные шиповатые клетки. Последнее указывает на совершенно иную сеть.
В строке 10 функцию сплющивания можно заменить другими функциями и топологиями сети, которые сохраняют направление вектора.
Процедура выполняет итерации, обычно 4–5, с индексом для исходного слоя капсулы или первичного слоя, откуда идет маршрутизация , и слоя капсулы следующего более высокого слоя.
Обучение контролируется . [3] Сеть обучается путем минимизации евклидова расстояния между изображением и выходом сверточной нейронной сети, которая реконструирует входные данные из выходных данных терминальных капсул. [1]
Сеть обучается избирательно, используя итеративную маршрутизацию по соглашению. [1]
Векторы активности всех, кроме правильного родителя, замаскированы. [1]
Длина вектора инстанцирования представляет вероятность того, что сущность капсулы присутствует в сцене. Капсула верхнего уровня имеет длинный вектор тогда и только тогда, когда присутствует связанная с ней сущность. Чтобы учесть наличие нескольких сущностей, для каждой капсулы вычисляется отдельная потеря маржи . Уменьшение веса потери для отсутствующих сущностей останавливает обучение от сокращения длин векторов активности для всех сущностей. Общая потеря является суммой потерь всех сущностей. [1] В примере Хинтона функция потерь имеет вид: [1]
Этот тип функции потерь распространен в ИНС. Параметры и устанавливаются так, чтобы длина не достигала максимума или не разрушалась, и . Уменьшение веса начальных весов для отсутствующих классов контролируется , с как разумный выбор. [1]
Дополнительные потери реконструкции побуждают сущности кодировать параметры инстанцирования своих входов. Окончательный вектор активности затем используется для реконструкции входного изображения с помощью декодера CNN, состоящего из 3 полностью связанных слоев. Реконструкция минимизирует сумму квадратов разностей между выходами логистических единиц и интенсивностями пикселей. Эти потери реконструкции уменьшаются на 0,0005, чтобы они не доминировали над потерями маржи во время обучения. [1]
Первые сверточные слои выполняют извлечение признаков. Для теста изображения MNIST размером 28x28 пикселей начальные 256 сверточных ядер размером 9x9 пикселей (использующие шаг 1 и активацию выпрямленного линейного блока (ReLU), определяющие рецептивные поля размером 20x20 ) преобразуют входные пиксели в активации признаков 1D и вызывают нелинейность. [1]
Первичный (самый нижний) слой капсулы делит 256 ядер на 32 капсулы по 8 ядер 9x9 в каждой (используя шаг 2, определяя рецептивные поля 6x6). Активации капсул эффективно инвертируют процесс графического рендеринга, переходя от пикселей к признакам. Каждая капсула использует одну весовую матрицу для всех рецептивных полей. Каждая первичная капсула видит все выходы нижнего слоя, поля которых перекрываются с центром поля в первичном слое. Каждый выход первичной капсулы (для определенного поля) является 8-мерным вектором. [1] [3]
Второй, цифровой слой капсулы имеет одну 16-мерную капсулу для каждой цифры (0-9). Динамическая маршрутизация соединяет (только) первичные и цифровые слои капсулы. Матрица веса [32x6x6] x 10 управляет отображением между слоями. [1]
Capsnets являются иерархическими, в том смысле, что каждая капсула более низкого уровня вносит значительный вклад только в одну капсулу более высокого уровня. [1]
Однако репликация изученных знаний остается ценной. Чтобы достичь этого, нижние слои capsnet являются сверточными , включая скрытые слои капсул. Таким образом, более высокие слои охватывают более крупные регионы, сохраняя информацию о точном положении каждого объекта в регионе. Для капсул низкого уровня информация о местоположении «кодируется по месту» в соответствии с тем, какая капсула активна. Выше все больше и больше позиционной информации кодируется по скорости в выходном векторе капсулы. Этот переход от кодирования по месту к кодированию по скорости в сочетании с тем фактом, что капсулы более высокого уровня представляют более сложные объекты с большим количеством степеней свободы, предполагает, что размерность капсулы увеличивается с уровнем. [1]
Человеческое зрение исследует последовательность фокусных точек (направленных саккадами ), обрабатывая только часть сцены с наивысшим разрешением. Capsnets основаны на вдохновении от кортикальных миниколонок (также называемых кортикальными микроколонками) в коре головного мозга . Миниколонка представляет собой структуру, содержащую 80-120 нейронов, диаметром около 28-40 мкм, охватывающую все слои в коре головного мозга. Все нейроны в более крупных миниколонках имеют одинаковое рецептивное поле , и они выводят свои активации в виде потенциалов действия или спайков. [1] Нейроны внутри микроколонки получают общие входы, имеют общие выходы, взаимосвязаны и могут составлять фундаментальную вычислительную единицу коры головного мозга . [8]
Capsnets исследует интуицию, что человеческая зрительная система создает древовидную структуру для каждой фокальной точки и координирует эти деревья для распознавания объектов. Однако с capsnets каждое дерево «вырезается» из фиксированной сети (путем корректировки коэффициентов), а не собирается на лету. [1]
Утверждается, что CapsNets имеет четыре основных концептуальных преимущества по сравнению со сверточными нейронными сетями (CNN):
Чисто сверточные сети не могут обобщаться на неизученные точки зрения (кроме перевода). Для других аффинных преобразований либо детекторы признаков должны повторяться на сетке, которая растет экспоненциально с числом измерений преобразования, либо размер маркированного обучающего набора должен (экспоненциально) расширяться, чтобы охватить эти точки зрения. Эти экспоненциальные взрывы делают их непригодными для более крупных задач. [1]
Матрицы преобразования Capsnet изучают (независимые от точки зрения) пространственные отношения между частью и целым, позволяя распознавать последнее на основе таких отношений. Однако capsnets предполагают, что каждое местоположение отображает не более одного экземпляра объекта капсулы. Это предположение позволяет капсуле использовать распределенное представление (вектор ее активности) объекта для представления этого объекта в этом местоположении. [1]
Capsnets используют нейронную активность, которая меняется в зависимости от точки зрения. Им не нужно нормализовать объекты (как в сетях пространственных преобразователей), и они даже могут распознавать многократно преобразованные объекты. Capsnets также могут обрабатывать сегментированные объекты. [1]