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

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

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

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

Обивка

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