Что такое CNN

CNN по определению Википедии

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

Чтобы понять CNN, читатель должен быть знаком с Deep Neural Network. Ниже приведены ссылки на то же самое.





CNN-Обзор

Давайте возьмем пример классификации изображений, чтобы понять, как работает CNN.

Изображение можно разбить на пиксели. Каждый пиксель можно численно представить с помощью вектора. Перейдите по ссылке ниже, чтобы найти другую цветовую модель, например оттенки серого, RGB, HSV, CMYK и т. Д.



При использовании модели в градациях серого пиксель может иметь значение от 0 до 1. В модели RGB цвет пикселя представлен тремя числами. В основном используется модель RGB.

Возьмем для примера изображение размером 28X28 пикселей. После преобразования в вектор с использованием модели RGB это будет вектор 28X28X3

Свертка

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

Давайте возьмем пример изображения выше - это вектор 4 X 4 X 3. Мы можем определить вектор свертки 2 X 2. Возьмем очень простой случай с padding = 0 и stride = 1. В этом может произойти следующее

  1. Входное изображение - 4 X 4 X 3. Вектор свертки равен 2 X 2. На выходе будет 3 X 3.

2. Фильтр свертки (т.е. вектор) перемещается по изображению. Таким образом, вычисления будут похожи на

A1 X F6 + B1 X G6 + A2 X F7 + B2 X G7 = 1X1 +2X1+4X0+3X9=30

Теперь, когда шаг равен 1, переместите фильтр свертки на 1, т.е. B1 будет начальной ячейкой.

B1 X F6 + C1 X G6 + B2 X F7 + C2 X G7 = 2X1 +5X1+3X0+5X9=52

Теперь переместите фильтр свертки на 1, то есть C1 будет начальной ячейкой

C1 X F6 + D1 X G6 + C2 X F7 + D2 X G7 = 5X1 +1X1+5X0+1X9=15

Его нельзя сдвинуть дальше вправо. Так что переместитесь в левую сторону, в следующий ряд.

A2 X F6 + B2 X G6 + A3 X F7 + B3 X G7 = 4X1 +3X1+5X0+3X9=34

Таким образом, после перехода к КРАСНОМУ вектор на выходе будет вектор 3 х 3. Подобный такой вектор будет создан с помощью зеленого и синего вектора.

Три вектора будут добавлены для создания комбинированного вектора 3 X 3.

P5 = K1 + K7 + K14, P6 = K2 + K8 + K15 и т. Д.

Изображение выше описывает: Исходное изображение 4X4X3 (3 в масштабе RGB), свертку 2X2, эффект свертки на каждом канале (R, G, B) и окончательный результат после свертки (вектор 3X3).

Обнаружение функций с помощью сверток

Преобразование с использованием свертки используется для обнаружения особенностей изображения. В основном изображение обрабатывается с использованием множественной свертки. Каждая свертка идентифицирует определенные особенности изображения, и затем результат объединяется.

В приведенном выше примере изображение 4X4X3 привело к вектору 3X3 с использованием одного фильтра свертки.

Допустим, к входному изображению применено 5 таких фильтров свертки. Каждая из этих операций приведет к вектору 3x3. Таким образом, окончательный вектор будет 3X3X5.

Пример обнаружения функции

Ниже приведен упрощенный пример обнаружения функции.

Некоторые распространенные фильтры свертки

Объединение

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

После преобразования слоя свертки изображения мы имеем вектор 4X4. Предполагая, что в свертке использовалось 2 таких фильтра, выходной вектор будет вектором 4X4X2.

Применение пула к этому (с использованием фильтра пула 2X2 Max)

Фильтр 2X2 Max используется на каждом слое, как показано выше.

макс (A1, A2, B1, B2) = F1

макс (C1, D1, C2, D2) = G1

макс (A3, A4, B3, B4) = F2

макс (C3, D3, C4, D4) = G2

Таким образом, максимальное объединение уменьшает размер вывода свертки (полученного путем применения фильтра свертки к изображению). Он НЕ объединяет вывод нескольких фильтров свертки.

Максимальное объединение и Среднее объединение - наиболее распространенные функции объединения.

Функция уровня пула

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

Изменения размеров после свертки и объединения

Пример: у нас есть изображение 16X16 в масштабе RGB.

1. Итак, входной вектор был 16X16X3.

2. Применяем к нему свертку 3X3. Это приведет к вектору 14X14

3. Если у нас есть 5 таких сверточных фильтров, выходной вектор будет 14X14X5.

4. Применение максимального пула, если 2X2, уменьшит его до 7X7X5.

Полностью подключенный уровень (уровень FC)

Этот слой похож на любую другую глубокую нейронную сеть.

После объединения слоя вектор выравнивается. В приведенном выше примере это будет 7X7X5 = 245. Таким образом, полностью связанный слой будет иметь 245 узлов во входном слое.

Этот шаг имеет

  • Входной слой
  • Полностью связанный слой
  • Выходной слой

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

Обратитесь к шпаргалке ниже для краткого обзора