Сверточные нейронные сети для начинающих

Основы обучения сверточных нейронных сетей

Основы сверточных нейронных сетей

Изображение от unsplash.com

Я написал этот пост как часть подготовки к одной из лекций, которые я читал на Interview Kickstart, чтобы подготовить специалистов к поиску работы в топовых технологических компаниях. Если вы находитесь в процессе подготовки к собеседованиям или просто хотите укрепить свои знания, этот пост может помочь и вам.

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

Давайте начнем.

Сверточные нейронные сети (CNN) состоят из нескольких “сверточных слоев”. Эти слои выполняют операцию свертки. Свертка является основной операцией в обработке сигналов и изображений. Давайте сначала рассмотрим, что это за операция.

Что такое операция свертки?

Свертка – это математическая операция между ядром (фильтром) и входным картой признаков.

Фильтр обычно представляет собой небольшую матрицу, например 3×3 или 5×5. Вход всегда представляет собой карту признаков с высотой, шириной и каналами. Операция свертки работает так, что фильтр скользит по входу и вычисляет скалярное произведение между фильтром и локальными областями входа. Умножение и суммирование скалярных произведений дают одно значение в выходной карте признаков.

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

Операция свертки — изображение от автора

Затем мы перемещаем фильтр вправо по другой локальной области входной карты, и это создает еще одну запись в выходной карте:

Операция свертки — изображение от автора