Капсульные нейронные сети | ML

Опубликовано: 23 Июля, 2021

Капсульные нейронные сети (Capsnets) - это тип ANN (искусственная нейронная сеть), основная цель которой - лучше воспроизвести биологическую нейронную сеть для лучшей сегментации и распознавания. Слово капсула здесь представляет собой вложенный слой внутри слоя капсульных сетей. Капсулы определяют параметры функций объекта. В процессе идентификации лица капсулы не только определяют наличие или отсутствие черт лица, но также учитывают соответствующие параметры, по которым организованы черты лица. Это означает, что система обнаружит лицо только в том случае, если черты, обнаруженные капсулами, присутствуют в правильном порядке.

Задача капсул - выполнять обратный рендеринг изображения, что означает, что мы получаем параметры экземпляра, такие как угол объекта, масштаб и положение, анализируя объект в соответствии с заданными образцами объекта в его обучающем наборе.

Работа капсул -

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

Что такое динамическая маршрутизация?

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

Динамическую маршрутизацию можно даже объяснить на следующем примере:

Предположим, мы предоставляем изображение системе, чтобы она могла его распознать и заявить, что это такое?
На картинке изображен дом в четырех разных типах точек обзора, CNN может очень легко распознать вид дома спереди, чему учили во время обучения, но у него возникнут серьезные проблемы с определением изображения дома сверху, поэтому здесь капсулы вступают в игру.
Капсулы очень легко обнаруживают крышу и стены, но не всякая крыша может быть домом, поэтому они анализируют постоянную часть изображения, то есть координатную рамку капсулы дома по отношению как к крыше, так и к стенам. Прогнозирование выполняется как по крыше, так и по стенам, чтобы решить, является ли объект домом или нет. Эти прогнозы затем отправляются в капсулу среднего уровня. Если прогноз крыши и стен совпадает только тогда, когда объект называется домом, этот процесс называется маршрутизацией по соглашению .

Общая архитектура Капсульных сетей -

Кодировщик - принимает входное изображение и отображает изображение в виде вектора, который содержит все параметры создания экземпляра, необходимые для рендеринга изображения. Кодер дополнительно инкапсулирует:

  1. Сверточный слой - определяет основные особенности изображения.
  2. Слой PrimaryCaps - они создают комбинации на основе основных функций, обнаруженных сверточным слоем.
  3. Слой DigitCaps - это капсульный слой самого высокого уровня, который содержит все параметры создания экземпляра.

Декодер - его задача - декодировать 16-мерный вектор из DigitCap в изображение. Он воссоздает выходное изображение без потери пикселей. Они заставляют капсулы изучать особенности, которые полезны для восстановления изображения. Декодеры также имеют три полностью связанных (плотных) слоя.

CNN и Capsnets -

Основная идея внедрения Capsnets заключалась в том, чтобы уменьшить размер обучающей выборки i, e обычно очень большой в случае CNN (сверточной нейронной сети). CNN также является типом нейронной сети, но в этой сети вывод зависит от объема обучающего набора. В случае CNN размер набора для обучения и тестирования может составлять от 60 до 10 M. CNN имеет серьезный недостаток, заключающийся в том, что они не могут приспособиться к точке обзора.

Если конкретное изображение инвертировано, CNN не сможет идентифицировать изображение. Capsnet здесь использует тот факт, что изменения точки обзора имеют нелинейный эффект на уровне пикселей и линейный эффект на уровне объекта. Capsnets могут приспосабливаться к изменениям точки обзора, когда они изучают линейное многообразие между объектом и его представлением в виде матрицы весов.
Здесь линейное многообразие относится к линейной связи между различными векторами объектов в евклидовом пространстве, имеющими n измерений.

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

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