Capsule Neural Network ( CapsNet ) представляет собой систему машинного обучения , которая является одним из видов искусственной нейронной сети (ИНС) , которые могут быть использованы для более модели иерархических отношений. Подход представляет собой попытку более точно имитировать биологическую нейронную организацию. [1]
Идея состоит в том, чтобы добавить структуры, называемые «капсулами», в сверточную нейронную сеть (CNN) и повторно использовать выходные данные нескольких из этих капсул для формирования более стабильных (по отношению к различным возмущениям) представлений для более высоких капсул. [2] Результатом является вектор, состоящий из вероятности наблюдения и позы для этого наблюдения . Этот вектор аналогичен тому, что делается, например, при классификации с локализацией в CNN.
Среди других преимуществ capsnet решает «проблему Пикассо» в распознавании изображений: изображения, которые имеют все правильные части, но не находятся в правильном пространственном соотношении (например, на «лице» положение рта и одного глаза меняется ). Для распознавания изображений capsnets используют тот факт, что, хотя изменения точки обзора имеют нелинейные эффекты на уровне пикселей, они имеют линейные эффекты на уровне детали / объекта. [3] Это можно сравнить с инвертированием визуализации объекта, состоящего из нескольких частей. [4]
История
В 2000 году Джеффри Хинтон и др. описал систему визуализации, которая объединяет сегментацию и распознавание в единый процесс вывода с использованием деревьев синтаксического анализа . Так называемые сети достоверности описывают совместное распределение по скрытым переменным и по возможным деревьям синтаксического анализа. Эта система оказалась полезной в базе данных рукописных цифр MNIST . [4]
Механизм динамической маршрутизации для капсульных сетей был представлен Хинтоном и его командой в 2017 году. Было заявлено, что этот подход призван снизить количество ошибок в MNIST и уменьшить размеры обучающих наборов. Утверждалось, что результаты значительно лучше, чем у CNN по сильно перекрывающимся цифрам. [1]
В первоначальной идее Хинтона одна мини-колонка представляла и обнаруживала одну многомерную сущность. [5] [примечание 1]
Трансформации
Инвариант является свойством объекта , которое не изменяется в результате некоторого преобразования. Например, площадь круга не изменится, если круг сдвинуть влево.
Неформально эквивариантность - это свойство, которое предсказуемо изменяется при преобразовании. Например, при смещении центр круга перемещается на ту же величину, что и круг. [6]
Неэквивариантность - это свойство, значение которого не изменяется предсказуемо при преобразовании. Например, преобразование круга в эллипс означает, что его периметр больше не может быть вычислен как π, умноженное на диаметр.
В компьютерном зрении ожидается, что класс объекта будет инвариантом для многих преобразований. То есть кошка остается кошкой, если ее сдвинуть, перевернуть вверх ногами или уменьшить в размерах. Однако многие другие свойства вместо этого эквивалентны. Объем кота меняется при масштабировании.
Эквивариантные свойства , такие как пространственная взаимосвязь фиксируются в позе , данные, описывающий объект перевод , вращение , масштаб и отражение. Перевод - это изменение местоположения в одном или нескольких измерениях. Вращение - это изменение ориентации. Масштаб - это изменение размера. Отражение - это зеркальное отображение. [1]
Неконтролируемые сети изучают глобальное линейное многообразие между объектом и его позицией в виде матрицы весов. Другими словами, capsnets могут идентифицировать объект независимо от его позы, вместо того, чтобы учиться распознавать объект, включая его пространственные отношения как часть объекта. В сетке поза может включать свойства, отличные от пространственных отношений, например цвет (кошки могут быть разных цветов).
Умножение объекта на многообразие создает объект (для объекта в пространстве). [7]
Объединение
Capsnets отвергают стратегию уровня объединения обычных CNN, которая уменьшает количество деталей, которые должны обрабатываться на следующем более высоком уровне. Объединение в пул обеспечивает определенную степень трансляционной инвариантности (он может распознавать один и тот же объект в несколько другом месте) и позволяет представлять большее количество типов функций. Сторонники Capsnet утверждают, что объединение: [1]
- нарушает восприятие биологической формы, поскольку не имеет собственной системы координат;
- обеспечивает инвариантность (отбрасывание позиционной информации) вместо эквивалентности (распутывание этой информации);
- игнорирует линейное многообразие, лежащее в основе многих вариаций изображений;
- направляет статически вместо того, чтобы сообщать потенциальную «находку» функции, которая может ее оценить;
- повреждает расположенные поблизости детекторы объектов, удаляя информацию, на которую они полагаются.
Капсулы
Капсула - это набор нейронов, которые индивидуально активируются для различных свойств типа объекта, таких как положение, размер и оттенок. Формально капсула - это набор нейронов, которые вместе создают вектор активности с одним элементом для каждого нейрона, чтобы удерживать значение экземпляра этого нейрона (например, оттенок). [1] Графические программы используют значение создания экземпляра для рисования объекта. Capsnets пытается извлечь их из своих входных данных. Вероятность присутствия объекта на конкретном входе - это длина вектора, а ориентация вектора количественно определяет свойства капсулы. [1] [3]
Искусственные нейроны традиционно выводят скалярную активацию с действительным знаком, которая в общих чертах представляет вероятность наблюдения. Capsnets заменяют детекторы функций скалярного вывода капсулами с векторным выводом, а max-pooling - маршрутизацией по соглашению. [1]
Поскольку капсулы независимы, когда несколько капсул совпадают, вероятность правильного обнаружения намного выше. Минимальный кластер из двух капсул с учетом шестимерного объекта согласуется с точностью до 10% случайно только один раз из миллиона испытаний. По мере увеличения количества измерений вероятность случайного совпадения в более крупном кластере с более высокими измерениями экспоненциально уменьшается. [1]
Капсулы на более высоких уровнях принимают выходные данные от капсул на более низких уровнях и принимают те, выходы которых группируются. Кластер заставляет высшую капсулу выводить высокую вероятность наблюдения присутствия сущности, а также выводить позу большого размера (20-50 +). [1]
Капсулы более высокого уровня игнорируют выбросы, концентрируясь на кластерах. Это похоже на преобразование Хафа , RHT и RANSAC из классической обработки цифровых изображений . [1]
Маршрутизация по договоренности
Выходы из одной капсулы (дочернего) направляются в капсулы на следующем уровне (родительском) в соответствии со способностью ребенка предсказывать выходные данные родителей. В течение нескольких итераций выходные данные каждого из родителей могут совпадать с предсказаниями одних детей и отличаться от прогнозов других, что означает, что этот родитель присутствует или отсутствует на сцене. [1]
Для каждого возможного родителя каждый дочерний элемент вычисляет вектор предсказания, умножая его выходные данные на матрицу весов (обученную методом обратного распространения ошибки ). [3] Затем выходные данные родителя вычисляются как скалярное произведение прогноза с коэффициентом, представляющим вероятность того, что этот дочерний элемент принадлежит этому родителю. Потомок, чьи прогнозы относительно близки к результирующему результату, последовательно увеличивает коэффициент между этим родителем и потомком и уменьшает его для родителей, которым он соответствует менее хорошо. Это увеличивает вклад, который этот дочерний элемент вносит в этого родителя, тем самым увеличивая скалярное произведение предсказания капсулы с выходом родителя. После нескольких итераций коэффициенты прочно связывают родительский элемент с его наиболее вероятными дочерними элементами, указывая на то, что присутствие дочерних элементов подразумевает присутствие родителя в сцене. [1] Чем больше детей, чьи прогнозы близки к выходным данным родителя, тем быстрее растут коэффициенты, что способствует сходимости. Поза родителя (отраженная в его выводе) постепенно становится совместимой с позой его детей. [3]
Начальные логиты коэффициентов - это предварительные логарифмические вероятности того, что ребенок принадлежит родителю. Приоры можно обучать различительно вместе с весами. Априорные значения зависят от расположения и типа дочерней и родительской капсул, но не от текущего ввода. На каждой итерации коэффициенты корректируются с помощью softmax «маршрутизации», так что они продолжают суммировать до 1 (чтобы выразить вероятность того, что данная капсула является родителем данного дочернего элемента). Softmax усиливает большие значения и уменьшает меньшие значения сверх их доля от общей суммы. Точно так же вероятность того, что функция присутствует во входных данных, преувеличена нелинейной функцией «сжатия», которая уменьшает значения (меньшие значения резко и большие, так что они меньше единицы). [3]
Этот механизм динамической маршрутизации обеспечивает необходимый отказ от альтернатив («объяснение прочь»), который необходим для сегментации перекрывающихся объектов.
Эта изученная маршрутизация сигналов не имеет четкого биологического эквивалента. Некоторые операции можно найти в корковых слоях, но они, похоже, не связаны с этой техникой.
Математика / код
Вектор позы вращается и перемещается матрицей в вектор который прогнозирует выход родительской капсулы.
Капсулы на следующий более высокий уровень подается сумма прогнозов от всех капсул в нижнем слое, каждая с коэффициентом связи
Процедура softmax
Коэффициенты связи от капсулы в слое ко всем капсулам в слое сумма к единице, и определяются " softmax маршрутизации ". Начальные логиты - априорные вероятности журнала для маршрутизации. Это априорная вероятность того, что капсула в слое должен подключиться к капсуле в слое . Нормализация коэффициентов связи: [1]
Чтобы эта процедура была оптимальной, необходимо запомнить несколько значений и сбрасывать эти значения на каждой итерации. Это если векторизменяется, то необходимо обновить запомненные значения. Не показано, как это делать. Также не показано запоминание делителя. [1]
Процедура сквоша
Поскольку длина векторов представляет вероятности, они должны быть от нуля (0) до единицы (1), и для этого применяется функция сжатия: [1]
Вектор, сжатый до нуля, имеет исчезающий градиент.
Маршрутизация процедуры
Один из подходов к маршрутизации следующий [1]
В строке 8 функцию softmax можно заменить любым типом сети, в которой победитель получает все . Биологически это чем-то напоминает люстры , но они также могут быть задействованы в расчете коэффициентов связи (строка 9) или в расчете договоренностей (строка 11).
В строке 9 показаны весовая матрица для коэффициентов связи и скрытая матрица прогнозирования. Структура в слоях I и II в некоторой степени похожа на структуру коры головного мозга, если предполагается, что звездчатые клетки участвуют в перемещении входных векторов. Неясно, имеют ли оба типа звездчатых клеток одну и ту же функцию, поскольку слой I имеет возбуждающие шиповатые клетки, а слой II - ингибирующие аспиновые клетки. Последнее указывает на совсем другую сеть.
В строке 10 функция сжатия может быть заменена другими функциями и топологиями сети, которые сохраняют направление вектора.
Процедура проводит итераций, обычно 4–5, с индекс для исходного слоя капсулы или первичного слоя, в котором маршрутизация идет от , и капсулы слой следующий более высокий слой.
Обучение
Обучение контролируется . [3] Сеть обучается путем минимизации евклидова расстояния между изображением и выходом CNN, которая восстанавливает входные данные из выходных данных терминальных капсул. [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]
Однако копирование полученных знаний остается ценным. Для этого нижние слои капсети являются сверточными , включая скрытые слои капсул. Таким образом, более высокие слои покрывают более крупные области, сохраняя при этом информацию о точном положении каждого объекта в пределах области. Для капсул низкого уровня информация о местоположении «кодируется местами» в зависимости от того, какая капсула активна. Выше все больше и больше позиционной информации закодировано в выходном векторе капсулы. Этот переход от кодирования места к кодированию скорости в сочетании с тем фактом, что капсулы более высокого уровня представляют более сложные объекты с большим количеством степеней свободы, предполагает, что размерность капсулы увеличивается с уровнем. [1]
Человеческое зрение
Человеческое зрение исследует последовательность фокусных точек (направляемых саккадами ), обрабатывая только часть сцены с максимальным разрешением. Capsnets основаны на вдохе из кортикальных миниколонок (также называемых корковыми микроколонками) в коре головного мозга . Миниколонка - это структура, содержащая 80–120 нейронов диаметром около 28–40 мкм, охватывающая все слои коры головного мозга. Все нейроны в больших мини-столбцах имеют одинаковое рецептивное поле , и они выводят свои активации в виде потенциалов действия или пиков. [1] Нейроны внутри микроколонки получают общие входы, имеют общие выходы, взаимосвязаны и могут составлять фундаментальную вычислительную единицу коры головного мозга . [8]
Capsnets исследуют интуицию, согласно которой зрительная система человека создает древовидную структуру для каждой точки фокусировки и координирует эти деревья для распознавания объектов. Однако с помощью Capsnets каждое дерево «вырезано» из фиксированной сети (путем настройки коэффициентов), а не собирается на лету. [1]
Альтернативы
Утверждается, что CapsNets имеют четыре основных концептуальных преимущества перед сверточными нейронными сетями (CNN):
- Инвариантность точки обзора: использование матриц поз позволяет капсульным сетям распознавать объекты независимо от перспективы, с которой они просматриваются.
- Меньше параметров: поскольку капсулы группируют нейроны, связи между слоями требуют меньшего количества параметров.
- Лучшее обобщение для новых точек зрения: CNN, обученные понимать повороты, часто узнают, что объект можно рассматривать одинаково с нескольких разных вращений. Однако капсульные сети лучше подходят для новых точек зрения, потому что матрицы поз могут фиксировать эти характеристики как линейные преобразования.
- Защита от состязательных атак методом белого ящика: метод Fast Gradient Sign Method (FGSM) является типичным методом атаки на CNN. Он оценивает градиент каждого пикселя относительно потери сети и изменяет каждый пиксель максимум на эпсилон (член ошибки), чтобы максимизировать потери. Хотя этот метод может резко снизить точность CNN (например, до уровня ниже 20%), капсульные сети поддерживают точность выше 70%.
Чисто сверточные сети не могут быть обобщены на неизученные точки зрения (кроме перевода). Для других аффинных преобразований либо детекторы признаков должны повторяться в сетке, которая экспоненциально растет с числом измерений преобразования, либо размер помеченного обучающего набора должен (экспоненциально) расширяться, чтобы охватить эти точки обзора. Эти экспоненциальные взрывы делают их непригодными для решения больших задач. [1]
Матрицы преобразования Capsnet изучают (независимые от точки зрения) пространственные отношения между частью и целым, что позволяет распознать последнее на основе таких отношений. Однако capsnets предполагают, что каждое место отображает не более одного экземпляра объекта капсулы. Это предположение позволяет капсуле использовать распределенное представление (вектор активности) объекта для представления этого объекта в этом месте. [1]
Capsnets используют нейронные активности, которые меняются в зависимости от точки зрения. Они не должны нормализовать объекты (как в сетях пространственных преобразователей ) и даже могут распознавать многократно преобразованные объекты. Capsnets также может обрабатывать сегментированные объекты. [1]
Смотрите также
- Сверточная нейронная сеть
- Джеффри Хинтон
- База данных MNIST
Заметки
- ^ По словам самого Хинтона, это «дикие спекуляции».
Рекомендации
- ^ a b c d e f g h i j k l m n o p q r s t u v w x y z aa ab ac ad ae af ag Сабур, Сара; Фросст, Николай; Хинтон, Джеффри Э. (26.10.2017). «Динамическая маршрутизация между капсулами». arXiv : 1710.09829 [ cs.CV ].
- ^ Хинтон, Джеффри Э .; Крижевский, Алексей; Ван, Сида Д. (14.06.2011). Преобразование автокодировщиков . Искусственные нейронные сети и машинное обучение - ICANN 2011 . Конспект лекций по информатике. 6791 . Шпрингер, Берлин, Гейдельберг. С. 44–51. CiteSeerX 10.1.1.220.5099 . DOI : 10.1007 / 978-3-642-21735-7_6 . ISBN 9783642217340.
- ^ Б с д е е г Шрихари, Саргур. "Капсульные сети" (PDF) . Университет Буффало . Проверено 7 декабря 2017 .
- ^ а б Хинтон, Джеффри Э; Гахрамани, Зубин; Тех, Йи Уай (2000). Solla, SA; Лин, ТЗ; Мюллер, К. (ред.). Достижения в системах обработки нейронной информации 12 (PDF) . MIT Press. С. 463–469.
- ^ Мехер Вамси (15.11.2017), Теория капсул Джеффри Хинтона , получено 06.12.2017.
- ^ «Понимание матричных капсул с EM-маршрутизацией (на основе капсульных сетей Хинтона)» . jhui.github.io . Проверено 31 декабря 2017 .
- ^ Тан, Кендрик (10 ноября 2017 г.). «Объяснение капсульных сетей» . kndrck.co . Проверено 26 декабря 2017 .
- ^ «Микроколонки в мозге» . www.physics.drexel.edu . Проверено 31 декабря 2017 .
Внешние ссылки
- Код Pytorch: Capsule Routing via Variational Bayes , февраль 2020 г. , получено 23 октября 2020 г.
- Реализация PyTorch документа NIPS 2017 «Динамическая маршрутизация между капсулами » , Gram.AI, 08 декабря 2017 г. , получено 8 декабря 2017 г.
- Что не так со сверточными нейронными сетями на YouTube
- «Глубокое обучение» . www.cedar.buffalo.edu . Проверено 7 декабря 2017 .
- Бурдакос, Ник (12 февраля 2018 г.). «Понимание капсульных сетей - заманчивая новая архитектура ИИ» . freeCodeCamp.org . Проверено 23 апреля 2019 .
- Дай, Цзифэн; Ци, Хаочжи; Xiong, Yuwen; Ли, Йи; Чжан, Годун; Ху, Хань; Вэй, Ичэн (2017-03-17). «Деформируемые сверточные сети». arXiv : 1703.06211 [ cs.CV ].
- Де Брабандере, Берт; Цзя, Сюй; Туйтелаарс, Тинне; Ван Гул, Люк (31.05.2016). «Сети динамического фильтра». arXiv : 1605.09673 [ cs.LG ].
- Гуо, Сифэн (2017-12-08), CapsNet-Keras: реализация Keras CapsNet в документе NIPS2017 «Динамическая маршрутизация между капсулами». Теперь погрешность теста 0,34%. , дата обращения 08.12.2017
- Хинтон, Джеффри; Сабур, Сара; Фросст, Николас (ноябрь 2017 г.). «МАТРИЧНЫЕ КАПСУЛЫ С ЭМ-МАРШРУТОМ» .
- Хинтон и Google Brain - Капсульные сети на YouTube
- Ляо, Хуадун (2017-12-08), CapsNet-Tensorflow: реализация Tensorflow CapsNet (Capsules Net) в статье Хинтона Dynamic Routing Between Capsules , получено 8 декабря 2017 г.
- Цай, Фанюй (18 декабря 2020 г.). « « Мы можем это сделать »- Джеффри Хинтон и команда UBC, UT, Google и UVic предлагают неконтролируемую капсулу…» . Средний . Проверено 18 января 20 .
- Солнце, Вэйвэй; Тальясакки, Андреа; Дэн, Боян; Сабур, Сара; Яздани, Соруш; Хинтон, Джеффри; Йи, Кван Му (2020-12-08). «Канонические капсулы: неконтролируемые капсулы в канонической позе». arXiv : 2012.04718 [ cs.CV ].