Динамическая маршрутизация: Как CapsNet заменяет нейроны векторами

Yannic Kilcher 10,9 тыс. 42 мин 4 мин 04.09.2019
Главное

Янник Килчер разбирает одну из самых резонансных работ в области глубокого обучения — «Dynamic Routing Between Capsules» от команды Google Brain. Несмотря на сложность и некоторую «туманность» изложения, статья Сары Сабур, Николаса Фроста и Джеффри Хинтона предложила радикально новый подход к архитектуре нейросетей, заменяющий традиционные скалярные активации векторными структурами.

💊 Что такое капсулы: переход от скаляров к векторам 0:00

Традиционные нейронные сети оперируют скалярными значениями активации нейронов. В отличие от них, капсульная сеть (CapsNet) состоит из «капсул» — групп нейронов, активность которых представлена в виде вектора . По определению авторов, этот вектор представляет параметры экземпляра (instantiation parameters) конкретного типа сущности: объекта или его части.

Янник Килчер поясняет работу капсул на примере визуального распознавания:

Ведущий приводит наглядную аналогию с капсулой «Крыша». Если сеть видит крышу, она выдает длинный вектор. Если этот вектор направлен в одну сторону, это может означать пологую крышу красного цвета; если в другую — крутую крышу зеленого цвета . При этом, если вероятность присутствия объекта мала, вектор будет коротким, даже если он сохраняет правильное направление для данных характеристик .

🏗️ Иерархия сущностей: от частей к целому 6:09

Капсулы организованы в слои, где высшие слои отвечают за более сложные, композитные сущности. Нижний слой может обнаруживать простые части (двери, стены, окна), а верхний — объединять их в целые объекты (дом, национальный парк) .

Процесс передачи информации выглядит следующим образом:

  1. Капсула нижнего слоя (например, «Дверь») передает данные всем капсулам верхнего слоя .
  2. Каждая капсула верхнего слоя интегрирует входящие векторы.
  3. На последнем слое количество капсул соответствует количеству классов (например, в задаче MNIST — десять капсул для цифр от 0 до 9) .

По мнению Килчера, это имитирует человеческую зрительную систему, где мы воспринимаем мир как иерархию объектов и их составляющих .

🔄 Динамическая маршрутизация: «Голосование» за правильный объект 15:06

Главная инновация статьи — механизм динамической маршрутизации (Dynamic Routing). В классических сетях данные передаются на следующий слой через фиксированные веса. В CapsNet капсулы нижнего слоя сами «решают», в какую капсулу верхнего слоя отправить свой выход .

Этот процесс Килчер называет «маршрутизацией по согласию» (routing by agreement) . Алгоритм работает итеративно:

📐 Архитектура CapsNet и функция потерь 11:41

Для демонстрации концепции авторы использовали архитектуру на наборе данных MNIST:

  1. Слой свертки (Convolutional layer): 256 каналов, фильтры 9x9, извлекает базовые признаки .
  2. Primary Capsules: Слой «первичных» капсул, где каждая капсула выдает 8-мерный вектор .
  3. Digit Capsules: Итоговые 10 капсул (по одной на цифру) с 16-мерными векторами .

Янник Килчер выделяет два критических компонента обучения:

Килчер полагает, что использование реконструкции — это способ заставить капсулы действительно кодировать физические свойства объекта (толщину линий, поворот), а не просто классифицировать их .

📊 Эксперименты: MNIST, MultiMNIST и провал на CIFAR-10 33:23

В экспериментах CapsNet показала выдающиеся результаты в разделении перекрывающихся объектов. В тесте MultiMNIST две разные цифры накладывались друг на друга с сильным перекрытием .

Результаты экспериментов:

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

💬 Цитаты

«Капсула — это группа нейронов, чей вектор активности представляет параметры экземпляра конкретного типа сущности.»

Янник Килчер 00:42

«Капсульные сети склонны к избыточному объяснению: они хотят найти капсулу для всего, что происходит на изображении.»

Янник Килчер 40:37
👥 Спикер
🔗 Упомянутые сайты и проекты
📖 Термины
Капсула
Группа нейронов, выдающая вектор, длина которого означает вероятность наличия объекта, а направление — его параметры.
Динамическая маршрутизация
Механизм, при котором капсулы нижнего слоя передают информацию в те капсулы верхнего слоя, с которыми они наиболее согласованы.
MNIST
Классический набор данных, состоящий из рукописных цифр, используемый для тестирования алгоритмов распознавания образов.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект CapsNet Geoffrey Hinton Dynamic Routing MNIST Янник Кильхер