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



Капсульные сети - в этом блоге рассказывается об ограничениях сверточных нейронных сетей и о том, как капсульные нейронные сети решают эти ограничения.

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

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

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





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

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



Сверточные нейронные сети (CNN)

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

Сверточная нейронная сеть - капсульная нейронная сеть - Edureka

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Теперь позвольте мне рассказать вам, как работают Capsule Networks.

Java найти наибольшее значение в массиве

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

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

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

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

Давайте рассмотрим капсульную нейронную сеть, где ‘uя‘Является вектором активности капсулы‘я'в слое ниже.

Шаг - 1: Применение матрицы преобразованияВijк выходу капсулы uя предыдущего слоя. Например, с помощью матрицы размера m × k мы преобразуем k-Dтыя в м-ди ^j | i. ((m × k) × (k × 1) = m × 1).

Это предсказание ( голос ) из капсулы «i» на выходе из капсулы «j» выше. ‘Vj‘Является вектором активности капсулы‘j ’в слое выше

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

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

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

Шаг - 4. Вычислить показатель релевантности bij‘. Это будет скалярное произведение вектора активности и вектора прогноза. Коэффициенты связиcяjвычисляется как softmaxбяj:

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

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

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

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

После этого блога о Capsule Networks я собираюсь написать блог о реализации Capsule Neural Network с использованием TensorFlow.

Надеюсь, вам понравилось читать этот блог в капсульных сетях, ознакомьтесь с от Edureka, надежной компании по онлайн-обучению с сетью из более чем 250 000 довольных учащихся по всему миру. Курс Edureka Deep Learning with TensorFlow Certification Training помогает учащимся стать экспертами в обучении и оптимизации базовых и сверточных нейронных сетей, используя проекты и задания в реальном времени, а также такие концепции, как функция SoftMax, нейронные сети с автокодированием, ограниченная машина Больцмана (RBM).

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