Капсульные сети: критика

1. Введение

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

Одним из основных недостатков CNN является использование максимального уровня пула. Максимальное
объединение состоит из перемещения окна фиксированного размера по карте активации предыдущего слоя и прохождения только максимальной активации. Джеффри Хинтон категорически против использования максимального пула и назвал его «большой ошибкой», а также заявил, что «тот факт, что он работает так хорошо, - это катастрофа» . Причина такого противостояния в том, что max pool теряет много информации. Из-за использования слоев максимального пула CNN инвариантны к сдвигу и небольшому вращению, но не эквивалентны ему. Нервная активность капсул меняется в зависимости от точки зрения. Это контрастирует с методами нормализации, такими как пространственные трансформаторные сети, которые исключают вариации точки зрения из действий.

Джеффри Хинтон категорически против использования максимального пула, назвал его «большой ошибкой», а также заявил, что «тот факт, что он так хорошо работает, - это катастрофа».

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

Капсульные сети, как и CNN, представляют информацию в иерархической форме. Они
основаны на концепции инверсной графики. Каждый объект состоит из нескольких более мелких объектов, определенным образом ориентированных в пространстве и помещенных в определенное место в пространстве. Авторы представляют новый алгоритм обучения под названием «Маршрутизация по соглашению» для обучения капсул. Капсулы с более низким уровнем пытаются спрогнозировать выход капсул с более высоким уровнем, и капсулы, которые имеют большее соответствие с капсулами с более высоким уровнем, еще больше соединяются с родительским элементом через петлю положительной обратной связи.

Поскольку здесь мы имеем дело с векторами, по сравнению с CNN, где мы имеем дело
со скалярными входами и скалярными выходами, мы не можем использовать традиционные функции активации, используемые с CNN. Следовательно, авторы использовали новую функцию активации формы -

Эта функция активации масштабирует длину всех векторов в диапазоне [0-1].
Каждая капсула в слое связана с капсулами в более высоком слое с помощью коэффициентов связи, которые являются скалярными весами. Коэффициенты связи представляют собой степень связи между конкретной капсулой и ее родительским элементом на следующем уровне и регулируются с помощью механизма согласования маршрутизации. Капсулы, имеющие более высокий уровень согласования с капсулой в следующем слое, будут иметь большее значение для коэффициента сцепления. Коэффициенты связи также представляют вероятность того, что выходные данные капсулы направляются к родительскому элементу в следующем слое, а их значения в сумме составляют 1. Веса W представляют матрицы преобразования, которые используются для представления аффинных преобразований в пространстве. По словам авторов, алгоритм сходится примерно за r = 3 итерации. Выполнение алгоритма для большего количества итераций приводит к переобучению.

Авторы используют следующую функцию потерь для обучения:

где m + = 0,9 и m− = 0,1 и Tk = 1, если присутствует цифра класса k.

Авторы представляют базовую архитектуру CapsNet, состоящую из двух сверточных слоев и одного полносвязного слоя. Авторы называют первые два сверточных слоя Convolutional Layer и PrimaryCaps Layer соответственно, а полностью связанный слой - слоем DigitCaps. Слой DigitCaps имеет одну капсулу 16D для каждого класса цифр, что означает, что он выводит вектор длиной 16 для каждого из 10 классов. Авторы также использовали подсеть трехслойной реконструкции, которая принимает в качестве входных данных вектор 16D из слоя DigitCaps и пытается восстановить исходное изображение. Это реконструированное изображение используется для добавления дополнительного члена «потери реконструкции» к функции потерь. Этот дополнительный член действует как регуляризатор. Эта архитектура в сочетании с механизмом маршрутизации по соглашению дает впечатляющие результаты.

Авторы протестировали CapsNet на наборе данных MNIST и достигли
коэффициента ошибок 0,25%. Авторы также обучили базовую CNN с 3 сверточными слоями и двумя полностью связанными слоями. Они использовали dropout и функцию стоимости кросс-энтропии для обучения сети. Эта CNN достигла коэффициента ошибок 0,39%. Базовая CNN содержала 35,4 млн параметров, в то время как CapsNet содержала только 8,2 млн параметров (включая подсеть реконструкции). Производительность, аналогичная CapsNet, была достигнута только с гораздо более глубокими сетями, и никогда с сетью такой мелкой, как CapsNet, даже несмотря на то, что авторы выполнили минимальное увеличение набора данных, при котором изображения были смещены до 2 пикселей в каждом направлении с нулевым заполнением.

Авторы также протестировали CapsNet на двух надуманных наборах данных, называемых MultiMNIST и affNIST. MultiMNIST был создан путем наложения цифры поверх другой цифры. При выполнении этой задачи CapsNet достигает аналогичных показателей (частота ошибок классификации 5%) по сравнению с предыдущей моделью последовательного внимания. Но модель последовательного внимания была протестирована на наборе данных, у которого цифры имели очень меньшее перекрытие (‹4%) по сравнению с MultiMNIST (перекрытие 80%). Используя набор данных MultiMNIST, авторы также демонстрируют способность CapsNet сегментировать две цифры на изображении. Авторы также тестируют CapsNet на наборе данных affNIST, чтобы проверить его устойчивость к небольшим аффинным преобразованиям. Этот набор данных содержит цифры MNIST со случайным малым аффинным преобразованием. CapsNet достигла 79% точности по этому набору данных, в то время как CNN с таким же количеством параметров, что и CapsNet, достигла точности только 66%. CapsNet и CNN не обучались работе с этим набором данных.

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

2. Недостатки

Эта работа хоть и впечатляет, но не идеальна. Авторы не указали в статье, как учатся веса W. Очень вероятно, что веса W узнаются с помощью стандартного алгоритма обратного распространения ошибки. Кроме того, алгоритм маршрутизации по соглашению вводит дополнительный гиперпараметр r (количество итераций для механизма маршрутизации по соглашению). Хотя алгоритм показывает впечатляющую производительность на наборе данных MNIST, он не работает так хорошо на наборе данных CIFAR-10, достигая ошибки 10,6%. Это намного выше, чем нынешний уровень развития техники (3,47%). Авторы объясняют это снижение производительности тем, что CapsNet пытается учесть все, что присутствует в изображении, а в изображениях CIFAR-10 фон слишком разнообразен, что CapsNet не может хорошо смоделировать.

3. Направления будущей работы

Необходимо проделать дополнительную работу, чтобы заставить CapsNets обобщаться на более сложные наборы данных, такие как CIFAR-10, которые содержат фоновый беспорядок. Кроме того, поскольку CapsNets извлекает информацию о позе из изображений, они могут быть очень эффективными при трехмерной реконструкции из изображений, и, следовательно, необходимо изучить применение CapsNet в этой области. Способность CapsNet извлекать позу также может быть весьма полезной в области робототехники для таких задач, как захват.