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

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

· Особенности извлечения сверточного слоя из выборки данных.

· ReLU (уровень нелинейности) преобразует данные в нелинейную форму, чтобы устранить проблему исчезающего градиентного спуска.

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

· Сглаживающий слой подготавливает данные к классической нейронной сети

· Полносвязный слой — это стандартная нейронная сеть, используемая для классификации

CNN использует стандартную нейронную сеть для классификации данных, но использует другие уровни для определения информации и идентификации некоторых функций.

Сверточный слой

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

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

Слой Re-LU

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

Объединение слоев

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

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

Этот процесс последовательной передачи данных через слой свертки и объединения повторяется в соответствии с конструкцией модели CNN. Для обучения этот процесс повторяется 2–4 раза.

Сглаживание слоя

Задача этого уровня — просто подготовить данные на входе последнего слоя, полносвязного уровня. В общем, нейронные сети принимают одномерный массив входных данных. Данные в этой нейронной сети представляют собой одномерную линейную версию матриц, поступающих из слоев Convolutional и Pooling.

Полносвязный слой

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