Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

Capsule Networks (CapsNet)

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

Капсульные сети (CapsNets) — это нейронные сети, состоящие из капсул: небольших групп нейронов, выходом которых служит вектор, а не одно число. Длина вектора капсулы отражает вероятность наличия объекта, например цифры, глаза или колеса, а направление кодирует параметры его конкретного воплощения: положение, размер, ориентацию, толщину штриха и другие свойства позы и деформации. Джеффри Хинтон, Алекс Крижевски и Сида Ван представили капсулы в статье о преобразующих автоэнкодерах 2011 года, а Сара Сабур, Николас Фрост и Хинтон превратили эту идею в работающий классификатор в статье «Динамическая маршрутизация между капсулами», представленной на NIPS 2017. В ней капсулы последовательных слоев соединяются итеративным алгоритмом, называемым маршрутизацией по согласованию.

Почему капсулы заменяют максимальный пулинг#

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

Ultralytics YOLO26 сохраняет положение объектов без капсул: пять сверток с шагом 2 уменьшают входное изображение до разрешения 1/32, а единственный блок максимального пулинга, SPPF, трижды подряд применяет пулинг с шагом 1 и окном 5 x 5, расширяя рецептивное поле, но не уменьшая сетку, по которой предсказывает голова детекции.

Как работает динамическая маршрутизация#

Каждая капсула нижнего слоя умножает свой выход на обучаемую матрицу весов, чтобы предсказать выход каждой капсулы следующего слоя. Затем маршрутизация определяет, какая доля выхода каждой дочерней капсулы поступит каждому родителю. Применение softmax к логитам маршрутизации, изначально равным нулю, дает коэффициенты связей, распределяющие выход каждой дочерней капсулы между родителями. Каждый родитель суммирует взвешенные этими коэффициентами предсказания и применяет функцию сжатия, которая сохраняет направление вектора и преобразует его длину в диапазон от 0 до 1. Скалярное произведение каждого предсказания с новым выходом родителя прибавляется к логиту, поэтому дочерние капсулы направляют больше своего выхода родителям, состояние которых они предсказали:

import torch

torch.manual_seed(0)

# 6 дочерних капсул каждая предсказывает 8D-позу для 2 родительских капсул
predictions = 0.2 * torch.randn(6, 2, 8)
pose = 0.5 * torch.randn(8)
predictions[:4, 0] = pose + 0.05 * torch.randn(4, 8)  # дочерние капсулы 0–3 согласуются с родителем 0

logits = torch.zeros(6, 2)
for _ in range(3):  # маршрутизация по согласованию, 3 итерации, как в статье
    coupling = logits.softmax(dim=1)  # каждая дочерняя капсула распределяет свой голос между родителями
    s = (coupling.unsqueeze(-1) * predictions).sum(dim=0)
    squared = s.square().sum(dim=-1, keepdim=True)
    parents = squared / (1 + squared) * s / squared.sqrt()  # сжатие: длина в диапазоне [0, 1)
    logits = logits + (predictions * parents).sum(dim=-1)  # согласование увеличивает логит

print(coupling[:, 0].round(decimals=2))
print(parents.norm(dim=-1).round(decimals=2))

Выводятся tensor([0.9700, 0.9700, 0.9700, 0.9700, 0.5700, 0.4700]) и tensor([0.9800, 0.1500]). После трех итераций четыре согласованные дочерние капсулы направляют родителю 0 97% своего выхода, а две остальные делят его почти поровну; длина вектора родителя 0 достигает 0,98, тогда как у родителя 1, получившего лишь разрозненные голоса, она составляет 0,15. Маршрутизация напоминает механизм внимания трансформера, работающий в обратном направлении: softmax применяется к родителям, которым может передать выход дочерняя капсула, поэтому родители конкурируют за выход каждой дочерней капсулы.

CapsNet 2017 года и его результаты#

Исходная сеть неглубокая: свёрточный слой с 256 ядрами размером 9 x 9 передаёт данные в PrimaryCaps — свёрточный капсульный слой, который преобразует цифру размером 28 x 28 в 32 x 6 x 6 = 1 152 восьмимерные капсулы, а маршрутизация связывает их с DigitCaps, где каждому классу соответствует одна 16-мерная капсула. При обучении функцию потерь с отступом по длинам капсул — она стремится поднять длину выше 0,9 для присутствующих цифр и опустить её ниже 0,1 для остальных — сочетают с декодером, который восстанавливает изображение по капсуле правильной цифры, и членом автоэнкодерной регуляризации, умноженным на 0,0005. Изменение одной из 16 размерностей с последующим декодированием результата меняет одно свойство, например масштаб, толщину штриха, наклон или ширину, благодаря чему выходы капсул проще анализировать, чем активации CNN, что также соответствует цели объяснимого AI.

Имея 8,2 миллиона параметров против 35,4 миллиона у базовой CNN, CapsNet достигла тестовой ошибки 0,25% на MNIST по сравнению с 0,39% у базовой модели, а на MultiMNIST — 5,2% против 8,1%. MultiMNIST содержит пары цифр, ограничивающие рамки которых в среднем перекрываются на 80%. Обученная только на цифрах MNIST со сдвигом до 2 пикселей, модель показала точность 79% на affNIST, где те же цифры подвергнуты случайным аффинным преобразованиям; CNN с похожим числом параметров показала 66%. На CIFAR-10 ансамбль из семи CapsNet достиг ошибки 10,6% — примерно такого же результата, какого достигали CNN при первом применении к этому набору данных. Авторы связали отставание с тем, что капсулы пытались учитывать загроможденный фон.

Ограничения и более поздние модели капсульных сетей#

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

В матричных капсулах с маршрутизацией EM, представленных Хинтоном, Сабуром и Фростом на ICLR 2018, векторы позы заменили матрицами позы 4 x 4, а маршрутизацию выполняли с помощью алгоритма ожидания — максимизации. На бенчмарке smallNORB с игрушечными объектами, снятыми с разных точек зрения, количество ошибок на тесте сократилось на 45% относительно предыдущего лучшего результата, а устойчивость к атакам методом белого ящика оказалась выше, чем у базовой CNN. В 2019 году появились составные капсульные автоэнкодеры, способные обучаться без меток, а в предложенной Хинтоном в 2021 году модели GLOM те же иерархии «часть — целое» представлены островками согласованных векторов эмбеддингов без динамической маршрутизации.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

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

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

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

Компьютерное зрение в робототехнике

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

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ повышает безопасность дорожного движения, улучшает помощь водителю и автоматизацию автомобилей, делая дороги умнее.
Подробнее
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения