Свёрточные нейросети (CNN)

Кратко

Свёрточная нейронная сеть (convolutional neural network, CNN) — нейросеть для данных с пространственной структурой, прежде всего изображений. Вместо того чтобы соединять каждый пиксель с каждым нейроном, CNN скользит по изображению небольшими обучаемыми фильтрами — это резко сокращает число параметров и делает сеть устойчивой к сдвигам объектов в кадре. На свёрточных сетях построено современное компьютерное зрение.

Для чего используется

  • классификация изображений: что изображено в кадре;
  • детекция и сегментация объектов — базовые задачи зрения роботов и БПЛА;
  • обработка видео и аудио;
  • распознавание документов — с этой задачи (LeNet, 1998) начиналось практическое применение.

Как работает

Свёртка — линейная операция: ядро (фильтр) — небольшой тензор весов — скалярно умножается на последовательные окна изображения. Каждый фильтр даёт карту активаций: где на изображении встретился «его» узор. Аналогия — трафарет: маленький шаблон прикладывают к каждому участку фотографии и записывают, насколько участок на него похож.

Два свойства делают свёртки удачными именно для изображений:

  • Локальность. Узоры на изображении локальны: край, угол, пятно видны в небольшом окне — нет смысла связывать каждый пиксель со всеми.
  • Инвариантность к сдвигу. Один и тот же фильтр применяется по всему полю (общие веса, parameter sharing): объект распознаётся независимо от положения в кадре. Параметров получается k×k×Cin×Cout вместо H×W×Cin×Cout у полносвязного слоя — на порядки меньше.

Пулинг (субдискретизация) уменьшает разрешение карт признаков: типичен max pooling окном 2×2 с шагом 2 — из каждого окна берётся максимум. Это снижает объём вычислений и расширяет поле обзора (receptive field) следующих слоёв. Global average pooling усредняет карту целиком и позволяет подавать на сеть изображения произвольного размера.

Типичная архитектура: INPUT → [CONV → RELU → POOL]×N → [FC → RELU]×M → FC — чередование свёрток с активациями и пулингом, а в конце полносвязные слои-классификаторы.

Основные компоненты

  • свёрточные слои (CONV) — обучаемые фильтры, карты активаций;
  • функции активации — обычно ReLU;
  • пулинг (POOL) — max или average;
  • полносвязные слои (FC) — финальная классификация.

Примеры

Вехи архитектур:

  • LeNet (1998) — первая успешная CNN, распознавание рукописных цифр MNIST;
  • AlexNet (2012) — пять свёрточных слоёв с max-pooling и два полносвязных, 60 млн параметров; ошибка top-5 18,9 % на тесте ImageNet (LSVRC-2010) против прежнего state-of-the-art, победитель соревнования ImageNet 2012; ReLU, GPU-обучение и dropout — начало бума глубокого обучения;
  • VGG (2014) — большие свёртки разложены в последовательности 3×3;
  • ResNet (2015) — остаточные связи (skip connections), сети до 152 слоёв.

Связанные темы

Источники

Обновлено: 2026-07-10