Капсульные сети — Новый ИИ


Поразительный успех сверточных нейронных сетей стал началом нового толчка в создании ИИ. Теперь Джеффри Хинтон, Сара Сабур и Николас Фросст, члены команды Google Brain Team в Торонто, опубликовали результаты, которые показывают, что может быть еще лучшей архитектурой — Capsule Net.

Нейронные сети существуют уже давно, но мы не могли заставить их работать, потому что у нас просто не было вычислительной мощности, и, поскольку они, казалось, не работали, не было особого энтузиазма по созданию своего рода вычислительная мощность, в которой они нуждались. Успех глубоких сетей во многом объясняется тем, что такие люди, как Хинтон, пытались найти способы заставить их работать.
Если у вас есть алгоритм обучения для многоуровневой сети — обратное распространение — возникает вопрос, как вы должны организовать слои, чтобы все работало. Самая большая проблема — это получение сетей, учитывающих инвариантность данных. Например, если вы можете распознать кошку в середине изображения, вы можете узнать кошку, которая двигалась влево, вправо или вверх и вниз. Нейронная сеть должна учитывать трансляционную инвариантность изображений. В этом и заключается суть «сверточной» части нейронной сети. Он применяет одну и ту же небольшую группу нейронов с одинаковой структурой по всему изображению. Конечно, сверточная группа чувствительна не к кошкам, а к особенностям более низкого уровня, таким как линии и края. Нейроны в следующем слое формируют из них функции более высокого уровня, и в конечном итоге мы получаем нейрон, чувствительный к кошке.
Сверточные нейронные сети автоматически нечувствительны к переводам, и поэтому вам нужно только обучить их изображению кошки по центру изображения, чтобы они могли распознать кошку в любом месте изображения. Однако сверточные сети не обрабатывают автоматически повороты и другие искажения, возникающие в результате смещения вашей точки обзора. Если вы хотите, чтобы нейронная сеть распознавала кошку, повернутую под углом, вам придется заново обучать ее на изображениях кошек под этим углом.
Конечно, если вы научитесь распознавать новый объект, вы сможете распознать его повернутым, масштабированным или с разных точек обзора. Вам не нужно показывать тысячи его изображений в разных ракурсах и под разными углами.
Очевидно, здесь происходит нечто большее, чем сверточная нейронная сеть, и Хинтон заметил, что нам нужна новая идея. На самом деле, некоторое время назад у него возникла новая идея, но только недавно появилась возможность опробовать ее.
Понятно, что нейронные сети — это всего лишь компонент более крупной архитектуры. Человеческий мозг — это не отдельная нейронная сеть, это набор сетей, каждая из которых выполняет что-то особенное. В ближайшие годы мы, вероятно, оглянемся на эту эру ИИ, когда мы обнаружили базовый компонент и начали собирать систему, используя его.
Проблема сверточных сетей в том, что они отбрасывают слишком много информации. Они распознают лицо как совокупность двух глаз, рта и носа, но не сохраняют взаимосвязь между частями. Капсульная сеть предназначена для построения дерева синтаксического анализа сцены, которое сохраняет отношения между различными частями. Это позволяет ему распознавать объект, который был подвергнут преобразованию. Архитектура сложная и использует много нейронов, но имеет только два сверточных слоя и один полностью связанный слой.

Слой Conv1 имеет 256 ядер свертки 9×9. Первичный слой капсулы состоит из 32 капсул, каждая из которых содержит 8 сверточных единиц с ядром 9×9. Большая разница в том, что капсулы принимают входные данные от Conv1 как вектор и выводят вектор на следующий уровень. Это обобщает простой искусственный нейрон на набор нейронов, которые делают гораздо больше — это нейрон на основе супер-вектора. Это как если бы набор транзисторов был собран вместе, чтобы образовать логический вентиль.
В статье есть много других мелких деталей, над которыми стоит задуматься, но следующий вопрос — насколько хорошо это работает?
Честно говоря, это не так хорошо, как лучшая сверточная нейронная сеть. Он не хуже первого в своем роде и, что более важно, лучше работает с преобразованными изображениями. Тестовый набор представлял собой набор рукописных цифр MNIST, а коэффициент ошибок составлял 0,25%, что хорошо для трехуровневой сети. Однако, когда сеть была протестирована на наборе данных MNIST с применением небольших случайных аффинных преобразований, CapsNet достигла точности 79%, тогда как традиционная нейронная сеть достигла только 66%.
Опять хорошо, но не обязательно достаточно хорошо. Есть всевозможные вопросы, которые необходимо рассмотреть, и в документе очень четко сказано:
«Есть много возможных способов реализовать общую идею капсул. Цель этой статьи — не исследовать все это пространство, а просто показать, что одна довольно простая реализация работает хорошо и помогает динамическая маршрутизация».
Это история, за которой стоит следить.
«Исследования капсул сейчас находятся на той же стадии, что и исследования рекуррентных нейронных сетей для распознавания речи в начале этого столетия. Есть фундаментальные репрезентативные причины полагать, что это лучший подход, но для этого, вероятно, потребуется гораздо больше небольших идей, прежде чем может превзойти высокоразвитую технологию. Тот факт, что простая система капсул уже дает беспрецедентную производительность при сегментировании перекрывающихся цифр, является ранним признаком того, что капсулы — это направление, которое стоит изучить ».


Добавить комментарий