Введение
CNN (Convolutional Neural Network, свёрточная нейронная сеть) – архитектура нейронной сети, специализированная для обработки данных с сеточной структурой (изображения, видео, 1D-сигналы). Ключевая операция – свёртка: небольшое окно (ядро) последовательно сдвигается по входу и вычисляет скалярное произведение весов ядра и соответствующего фрагмента входа. Это позволяет автоматически извлекать пространственные признаки: края, текстуры, паттерны – не требуя ручного feature engineering.
История и контекст
Первая современная CNN – LeNet-5 (Лекун, 1989) для распознавания рукописных цифр. Переломный момент – AlexNet (Krizhevsky, Sutskever, Hinton, 2012): победа на ImageNet с отрывом 10,8% от второго места. AlexNet доказала превосходство глубоких CNN на GPU и запустила эпоху глубокого обучения. Последующие архитектуры последовательно улучшали качество: VGGNet (2014), Inception (2014), ResNet (2015, остаточные соединения), DenseNet (2017), EfficientNet (2019). Сегодня Vision Transformer (ViT, 2020) составляет конкуренцию CNN на крупных датасетах.
Как это работает
Стандартная CNN состоит из чередующихся слоёв:
- Convolutional layer – применяет набор ядер (фильтров) к входу, создавая feature maps. Ядро разделяет веса по всему пространству – это parameter sharing, радикально снижающий число параметров.
- Activation (ReLU) – нелинейность после каждой свёртки.
- Pooling layer – пространственное субдискретизирование (Max Pooling, Average Pooling): снижает разрешение feature maps, повышает инвариантность к малым сдвигам.
- Fully connected (Dense) layer – в конце сети: агрегирует признаки для финальной классификации.
Ключевые свойства CNN: локальная связность (нейрон смотрит на небольшой рецептивный фрагмент), параметрическое разделение (одни веса применяются по всему пространству), иерархичность (ранние слои – края, глубокие слои – сложные объекты).
Где применяется
- Классификация изображений – ImageNet, медицинские снимки, спутниковые данные.
- Детектирование объектов – YOLO, Faster R-CNN, SSD для задач безопасности, автопилота.
- Семантическая сегментация – разделение пикселей на классы (медицинские изображения, картография).
- NLP – 1D-свёртки для классификации текста и NER (применяются реже Transformer).
- Промышленный контроль качества – детектирование дефектов на конвейере в реальном времени.
Преимущества и ограничения
Преимущества: автоматическое извлечение признаков; parameter sharing снижает число параметров; инвариантность к сдвигам через pooling; высокая производительность на задачах с сеточными данными.
Ограничения: не моделирует дальние зависимости (ограниченный рецептивный фрагмент – решается через dilated convolutions или Transformer); требует больших обучающих датасетов; менее гибка чем Transformer для мультимодальных задач.
Связь с другими понятиями
Нейронная сеть – базовый строительный блок CNN. RNN – аналог для последовательных данных (текст, временные ряды). Transformer заменяет CNN в задачах с большими датасетами благодаря глобальному attention. Аугментация данных – стандартная практика при обучении CNN (flip, crop, color jitter). Компьютерное зрение – главная область применения CNN. Переобучение в CNN снижается через Dropout, Batch Normalization, аугментацию.