Краткий обзор сверточной нейронной сети и ее основных компонентов.

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

Базовая структура состоит из следующих блоков:

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

Сверточный слой
Этот слой обычно состоит из нескольких фильтров определенного пространственного размера и карт активации продукта. Теперь одиночный фильтр — это просто сетка весов, которую мы узнаем во время обратного распространения, и выполняем скалярное произведение с входным тензором. Например, фильтр размером 5*5*3 будет свернут во всех пространственных размерах входного слоя (в том числе и по глубине). Несколько фильтров такого размера будут последовательно выполнять одно и то же скалярное произведение на входном слое и в целом создавать карту активации, состоящую из множества матриц скалярного произведения. Затем следующий набор сверточных фильтров будет выполняться на этой карте активации (скажем, размером 28 * 28 * 6) вместо входного слоя.

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

Уровень активации
На этом уровне функция активации, в основном RELU, выполняется на предыдущем уровне конв. Функция этой функции активации здесь не рассматривается, но, по сути, она берет каждую запись матрицы из карты активации и выполняет на ней функцию активации.

Объединяющий слой
Функция этого слоя заключается в выполнении субдискретизации входного пространства. Это необходимо, поскольку мы хотим, чтобы признаки сходились для выполнения точной классификации. Типы слоев объединения в основном представляют собой Max Pooling или Average Pooling. В Max Pooling мы делим входную матрицу на несколько секций (указанного размера) и берем наибольшее значение пикселя в качестве выходных данных каждой секции. Таким образом, это уменьшает пространственный размер и приводит к выходным данным с потерями. Средний пул, как следует из названия, берет среднее значение пикселей.

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

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

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