Капсульные сети | Набор вложенных нейронных слоев

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

Что такое капсульные сети? По сути, это сеть из набора вложенных нейронных слоев.

Я бы порекомендовал вам также просмотреть следующие блоги:

Я предполагаю, что вы, ребята, знаете сверточные нейронные сети (CNN). Здесь я дам вам небольшое введение в то же самое, чтобы я мог обсудить ограничения CNN.

Вы также можете посмотреть приведенное ниже видео о сверточной нейронной сети.

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

Convolutional-Neural-Network-Capsule-Neural-Network-Edureka.png

Сверточный слой: Когда мы используем нейронные сети с прямой связью (многослойный персептрон) для классификации изображений, возникает много проблем. Самая неприятная проблема заключается в том, что он вводит множество параметров, рассмотрим видеоурок на CNN.

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

Слой ReLU: Функция преобразования Rectified Linear Unit (ReLU) активирует узел только в том случае, если вход превышает определенную величину, а вход ниже нуля, выход равен нулю, но когда вход превышает определенный порог, он имеет линейную связь с зависимая переменная.

  • В этом слое мы удаляем все отрицательные значения из отфильтрованных изображений и заменяем их нулями.
  • Это сделано для того, чтобы значения не суммировались до нуля.

ReLU-Activation-Function-Capsule-Neural-Networks-Edureka.png

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

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

Примечание. Обучение этой модели выполняется обратным распространением, поэтому вы можете проверить этот отдельный блог по обратному распространению.

Таким образом, ConvNets преобразуют исходное изображение слой за слоем из исходных значений пикселей в окончательные оценки класса.

Это было очень краткое введение в сверточные нейронные сети, я бы порекомендовал вам посмотреть видео CNN, которое я вставил в этот пост.

В этом блоге о капсульных сетях я расскажу о некоторых ограничениях сверточных нейронных сетей.

Ограничения сверточных нейронных сетей:

Что ж, позвольте мне объяснить это с помощью аналогии.

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

Ограничения-конволюционных-нейронных-сетей-капсульных-сетей-Edureka.jpg

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

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

CNN-Capsule-Networks-Edureka-442x300.png

Ну, это ограничение связано со слоем Max Pooling.

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

Таким образом, изображение лица, показанное выше, будет классифицироваться как нормальное лицо. Слой пула также добавляет этот тип инвариантности.

Это никогда не было целью слоя объединения. Что объединение должно было сделать, так это ввести позиционную, ориентационную, пропорциональную инвариантность.

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

Посмотрим, какое решение предлагает Джеффри Хинтон

Как решить эту проблему?

Теперь представим, что каждый нейрон содержит как вероятность, так и свойства признаков. Например, он выводит вектор, содержащий [likelihood, orientation, size]. С помощью этой пространственной информации мы можем обнаружить несоответствие в ориентации и размере носа, глаз и ушей и, следовательно, получить гораздо более низкую активацию для обнаружения лица.

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

Позвольте мне немного рассказать о том, что такое Capsule Networks.

Что такое капсульные сети?

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

Вместо того, чтобы фиксировать функцию с конкретным вариантом, капсула обучается фиксировать вероятность функции и ее варианта. Таким образом, цель капсулы — не только обнаружить функцию, но и обучить модель изучению варианта.

Таким образом, одна и та же капсула может обнаруживать один и тот же класс объектов с разной ориентацией (например, вращаться по часовой стрелке):

Capsule-Neural-Network-Example-Capsule-Networks-Edureka-505x300.png

Можно сказать, что это работает на основе эквивариантности, а не инвариантности.

Инвариантность: является обнаружение признаков независимо от вариантов. Например, нейрон обнаружения носа обнаруживает нос независимо от ориентации.

Эквивариантность: это обнаружение объектов, которые могут трансформироваться друг в друга (например, обнаружение лиц с разной ориентацией). Интуитивно капсульная сеть обнаруживает, что лицо повернуто вправо на 31° (эквивариантность), а не понимает, что лицо соответствует варианту, повернутому на 31°. Заставляя модель изучать вариант функции в капсуле, мы можем более эффективно экстраполировать возможные варианты с меньшим количеством обучающих данных. Кроме того, мы можем более эффективно противостоять противникам.

Капсула выводит вектор, представляющий существование сущности. Ориентация вектора представляет свойства объекта.

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

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

После этого добавляется функция раздавливания. Это сделано для введения нелинейности. Эта функция сжатия применяется к выходному вектору каждой капсулы.

Позвольте мне рассказать вам, как работают капсульные сети.

Как работают капсульные сети?

Давайте сделаем шаг назад. В полносвязной сети выход каждого нейрона представляет собой взвешенную сумму входов.

Fully-Connected-Network-Capsule-Neural-Network-Edureka.png

Теперь давайте посмотрим, что происходит в Capsule Networks.

Капсульная нейронная сеть:

Давайте рассмотрим нейронную сеть капсулы, где «ui» — это вектор активности для капсулы «i» в слое ниже.

Шаг — 1: Примените матрицу преобразования Wij к выходному окну капсулы предыдущего слоя. Например, с матрицей m×k мы преобразуем kD ui в mD u^j|i. ((м×к)×(к×1) = м×1).

Capsule-Neural-Network-Input-Capsule-Neural-Network-Edureka-1-150x56.png

Prediction-Vector-Capsule-Neural-Network-Edureka.png Это предсказание( голосование ) от капсулы «i» на выходе капсулы «j» выше. ‘vj’ — вектор активности капсулы ‘j’ в слое выше

Шаг – 2: Вычислить взвешенную сумму sj с весами cij. cij – коэффициенты связи. Сумма этих коэффициентов равна единице. Это фактический параметр, который работает с отношениями группы капсул, о которых мы говорили ранее.

Взвешенная сумма-капсула-нейронные сети-Edureka-1-150x57.png

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

Squashing-Function-Capsule-Neural-Networks-Edureka-300x154.png

Squashing-Function-Condition-Capsule-Neural-Networks-Edureka-300x107.png

Prediction-Vector-Capsule-Neural-Network-Edureka.png

Это предсказание( голосование ) от капсулы «i» на выходе капсулы «j» выше. Если вектор активности имеет близкое сходство с вектором предсказания, мы заключаем, что капсула «i» тесно связана с капсулой «j». (Например, капсула носа тесно связана с капсулой лица.) Такое сходство измеряется с помощью скалярного произведения прогноза и вектора активности. Следовательно, сходство учитывает как вероятность, так и свойства признаков. (вместо просто вероятности в нейронах).

Шаг — 4: Вычислите показатель релевантности «bij». Это будет точечный продукт вектора активности и вектора предсказания. Коэффициенты связи cij вычисляются как softmax bij:

Relevance-Score-Capsule-Neural-Networks-Edureka-150x44.png

Коэффициент связи cij вычисляется как softmax bij.

Coupling-Coefficient-Capsuule-Neural-Networks-Edureka-150x73.png

Этот bij обновляется итеративно в несколько итераций.

Обновление-Актуальность-Капсула-Нейронные-Сети-Edureka-150x44.png

Это называется как Маршрутизация по соглашению.

На диаграмме ниже приведен один пример:

Capsule-Neural-Network-Architecture-Capsule-Networks-Edureka.png

Есть к нам вопрос? Пожалуйста, укажите это в разделе комментариев, и мы свяжемся с вами.

Похожие записи

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *