Свёрточные нейронные сети
Материал из MachineLearning.
| | Статья написана с использованием LLM Claude Sonnet 5 и проверена участником Daria Makeeva 20:11, 16 июля 2026 (MSD) |
|
Свёрточная нейронная сеть (англ. convolutional neural network, CNN) — класс архитектур искусственных нейронных сетей, в которых хотя бы часть слоёв вычисляет выход не через полное матричное умножение, а через операцию свёртки — локальное, разделяемое по всему изображению (или другому сигналу) скользящее преобразование. CNN стали основным инструментом компьютерного зрения и одной из ключевых архитектур глубокого обучения в целом благодаря способности эффективно извлекать пространственно-локальные признаки при небольшом числе обучаемых параметров.
Зачем нужна свёртка вместо полносвязного слоя
Если подавать изображение целиком на полносвязный слой (каждый пиксель связан с каждым нейроном), число параметров растёт как произведение размера входа на число нейронов слоя. Для изображения 224×224×3 пикселей и слоя из 1000 нейронов это уже больше 150 миллионов весов — сеть переобучается, требует огромных вычислительных ресурсов и не использует главное свойство изображений: локальную структуру и повторяемость паттернов независимо от их положения в кадре.
Свёрточный слой решает эту проблему тремя идеями, ставшими каноническими для CNN:
- Локальные связи — каждый нейрон смотрит не на всё изображение, а на небольшую область (окно, называемое ядром или фильтром), что отражает тот факт, что близкие пиксели статистически более связаны, чем далёкие.
- Разделяемые веса (weight sharing) — одно и то же ядро применяется по всем позициям изображения, поэтому признак вроде «вертикальный край» ищется одинаково во всех частях кадра, а не заучивается заново для каждой позиции.
- Инвариантность к сдвигу (translation invariance/equivariance) — благодаря разделяемым весам обнаружение объекта не зависит от того, в каком месте кадра он находится.
Эти идеи биологически мотивированы: они восходят к работам Хьюбела и Визеля о простых и сложных клетках зрительной коры млекопитающих, реагирующих на локальные ориентированные стимулы независимо от их положения в поле зрения[1].
Рецептивное поле и интуиция глубины
Рецептивное поле (receptive field) нейрона — это область входного изображения, которая влияет на его значение. У первого свёрточного слоя рецептивное поле равно размеру ядра (например, 3×3 пикселя), но при переходе к более глубоким слоям рецептивные поля соседних нейронов накладываются друг на друга и растут: нейрон второго слоя с ядром 3×3, «смотрящий» на выходы первого слоя, фактически охватывает уже 5×5 пикселей исходного изображения, третий слой — ещё больше, и так далее.
Именно поэтому глубокие CNN эффективнее одного широкого слоя: ранние слои улавливают простые локальные признаки — края, градиенты, текстуры, — а по мере роста рецептивного поля более глубокие слои комбинируют их во всё более абстрактные и глобальные представления — части объектов, целые объекты, сцены. Этот принцип иерархического построения признаков — центральная идея всей архитектуры CNN и главная причина её эффективности по сравнению с полносвязными сетями при той же вычислительной стоимости.
Формальное определение свёртки
Дискретная двумерная свёртка
Для входного тензора признаков размера
(высота, ширина, число входных каналов) и ядра
размера
выход одного канала в позиции
определяется как
где — смещение (bias). Строго говоря, в машинном обучении эта операция является кросс-корреляцией, а не свёрткой в математическом смысле (без разворота ядра на 180°), но в литературе по нейросетям термин «свёртка» закрепился именно за ней.
Выходной слой обычно состоит из различных ядер, каждое из которых даёт свою карту признаков (feature map), так что итоговый выход имеет размер
.
Ключевые параметры
Точный размер выхода определяется тремя параметрами:
- Шаг (stride,
) — насколько сдвигается ядро при переходе к следующей позиции. Шаг больше 1 уменьшает разрешение выходной карты, выполняя роль дискретизации без отдельного слоя пулинга.
- Дополнение (padding,
) — добавление нулевых (или иных) значений по краям входа, чтобы контролировать размер выхода и не «терять» информацию о границах изображения.
- Дилатация (dilation,
) — расстояние между элементами ядра во входном тензоре; при
ядро применяется к соседним пикселям, при
между ними появляются «дырки», за счёт чего рецептивное поле растёт без увеличения числа параметров.
Итоговая формула размера одной пространственной оси выхода:
и аналогично для ширины .
Разновидности свёрточных операций
| Тип свёртки | Идея | Основной эффект |
|---|---|---|
| Стандартная свёртка | Ядро связывает все входные каналы сразу | Полное смешение каналов и пространства, но много параметров |
| Дилатированная свёртка (dilated / atrous) | Расширение шага между весами ядра | Увеличение рецептивного поля без роста параметров и без потери разрешения[1] |
| Глубинная свёртка (depthwise convolution) | Каждый входной канал обрабатывается своим отдельным 2D-ядром независимо | Резкое снижение вычислительной сложности за счёт разделения пространственной обработки от смешения каналов[1] |
| Разделяемая свёртка (depthwise separable convolution) | Комбинация depthwise-свёртки и последующей 1×1 (pointwise) свёртки, смешивающей каналы | Компромисс между качеством и эффективностью — основа лёгких архитектур (MobileNet, Xception)[1] |
| Групповая свёртка (grouped convolution) | Каналы делятся на группы, свёртка выполняется отдельно внутри каждой группы | Промежуточный вариант между стандартной и depthwise-свёрткой |
Depthwise separable свёртка особенно важна для мобильных и встраиваемых систем: она позволяет сократить число операций и параметров при сохранении приемлемой точности классификации, что подтверждено экспериментами архитектуры MobileNet[1]. Дилатированные свёртки, в свою очередь, широко используются в задачах, требующих учёта широкого контекста без потери разрешения — например, при диагностике по медицинским изображениям и в семантической сегментации[1].
Типичная архитектура сети
Классическая CNN строится из повторяющихся блоков:
- Свёрточный слой — извлекает локальные признаки через набор обучаемых ядер, как описано выше.
- Функция активации (обычно ReLU) — вносит нелинейность, без которой глубина сети не давала бы прироста выразительности.
- Слой подвыборки (pooling) — снижает пространственное разрешение карты признаков (max-pooling или average-pooling), делая представление более устойчивым к небольшим сдвигам и уменьшая вычислительную нагрузку.
- Полносвязные слои в конце сети — объединяют глобальные признаки для финальной классификации или регрессии.
Обучение сети выполняется методом обратного распространения ошибки (backpropagation) и стохастического градиентного спуска, при этом благодаря разделяемым весам свёрточных ядер число обучаемых параметров остаётся сравнительно небольшим даже для глубоких сетей.
История развития
Биологические предпосылки и первые архитектуры
Идея иерархической, локально организованной обработки визуальной информации восходит к нейрофизиологическим работам Хьюбела и Визеля о простых и сложных клетках зрительной коры. На этой основе Кунихико Фукусима в 1979—1980 годах предложил неокогнитрон (Neocognitron) — многослойную сеть с чередующимися слоями свёртки и подвыборки, обучаемую без учителя; это первая архитектура, реализовавшая ключевой принцип CNN — локальные разделяемые связи, устойчивые к сдвигу объекта в кадре[1].
LeNet и обучение через обратное распространение
В 1989 году Ян Лекун (Yann LeCun) и соавторы впервые применили сеть с свёрточными слоями, обученную методом обратного распространения ошибки, для практической задачи — распознавания рукописных почтовых индексов США; сеть достигла ошибки около 1% с уровнем отказа около 9%[1]. Развитие этой линии привело к архитектуре LeNet-5, ставшей эталонной для распознавания рукописных цифр и одной из первых по-настоящему промышленно применённых нейросетей[1].
AlexNet и начало «глубокой революции» (2012)
Прорыв произошёл в 2012 году, когда сеть AlexNet (Алекс Крижевский, Илья Суцкевер, Джеффри Хинтон) выиграла конкурс ILSVRC (ImageNet Large Scale Visual Recognition Challenge), показав top-5 ошибку 15,3% против 26,2% у второго места — рекордный отрыв, который считается точкой отсчёта современной эры глубокого обучения[1]. Архитектура ввела в широкую практику функцию активации ReLU, регуляризацию Dropout, обучение на GPU и агрессивную аугментацию данных.
VGGNet и GoogLeNet (2014)
В 2014 году сеть VGGNet (Оксфордский университет) показала, что простое увеличение глубины сети при использовании только маленьких ядер 3×3 значительно улучшает качество: 19-слойная модель достигла top-5 ошибки 7,3% на тестовом наборе ILSVRC[1]. В том же году GoogLeNet (Inception) с более сложной модульной структурой заняла первое место на конкурсе ILSVRC 2014 (статья с описанием архитектуры опубликована в трудах CVPR в 2015 году), показав, что архитектурная сложность (параллельные ветви с разными размерами ядер) может давать выигрыш при меньшем числе параметров, чем у VGG[1].
ResNet и решение проблемы деградации (2015)
Ключевой концептуальный сдвиг произошёл в 2015 году с появлением ResNet (Residual Network, Каймин Хе и соавторы, Microsoft Research). Авторы показали, что простое увеличение глубины плоских сетей приводит к деградации качества обучения, и предложили остаточные связи (skip connections вида ), которые позволяют градиенту беспрепятственно проходить через сотни слоёв. 152-слойная ResNet достигла top-5 ошибки 4,49% на валидации, а ансамбль моделей — 3,57% на тесте, что впервые превзошло человеческий уровень ошибки (~5,1%) на ImageNet и обеспечило победу на ILSVRC 2015[1].
EfficientNet и масштабирование архитектур (2019)
В 2019 году в работе EfficientNet (Мингксинг Тан, Куок Ле, Google) был предложен систематический подход к масштабированию сетей — одновременное и сбалансированное увеличение глубины, ширины и разрешения входа через единый коэффициент масштабирования (compound scaling), а не произвольное увеличение одного из этих параметров. Крупнейшая модель семейства, EfficientNet-B7, достигла top-1 точности 84,3% на ImageNet при значительно меньшем числе параметров и вычислений по сравнению с предыдущими сопоставимыми по качеству сетями[1].
| Архитектура | Год | Автор(ы) | Показатель на ImageNet | Ключевая идея |
|---|---|---|---|---|
| LeNet-5 | 1989—1998 | Я. Лекун и др. | ~1% ошибки на распознавании цифр[1] | Обучаемая свёртка + обратное распространение ошибки |
| AlexNet | 2012 | А. Крижевский, И. Суцкевер, Дж. Хинтон | top-5 15,3%[1] | ReLU, Dropout, обучение на GPU |
| VGGNet | 2014 | К. Симонян, А. Зиссерман | top-5 7,3%[1] | Глубина + маленькие ядра 3×3 |
| GoogLeNet | 2014 (ст. 2015) | К. Сегеди и др. | top-5 6,7%[1] | Модули Inception, параллельные ветви |
| ResNet-152 | 2015 | К. Хе и др. | top-5 3,57% (ансамбль)[1] | Остаточные связи, глубина 152+ слоёв |
| EfficientNet-B7 | 2019 | М. Тан, К. Ле | top-1 84,3%[1] | Сбалансированное масштабирование глубины/ширины/разрешения |
Применения
Свёрточные сети остаются базовой архитектурой для классификации изображений, детекции объектов, семантической сегментации, распознавания лиц и медицинской визуализации, а их модификации с дилатированными и разделяемыми свёртками используются в задачах анализа временных рядов, звука и медицинской диагностики, где важен широкий контекст при ограниченных вычислительных ресурсах[1][1].
См. также
- Рекуррентная нейронная сеть
- Трансформер (модель)
- Обратное распространение ошибки
- Компьютерное зрение
- Пулинг
- Глубокое обучение
Примечания
Литература
- Fukushima K. Neocognitron: A self-organizing neural network model for a mechanism of pattern recognition unaffected by shift in position // Biological Cybernetics. — 1980. — Т. 36. — № 4. — С. 193–202.
- LeCun Y., Boser B., Denker J.S., Henderson D., Howard R.E., Hubbard W., Jackel L.D. Backpropagation Applied to Handwritten Zip Code Recognition // Neural Computation. — 1989. — Т. 1. — № 4. — С. 541–551.
- LeCun Y., Bottou L., Bengio Y., Haffner P. Gradient-Based Learning Applied to Document Recognition // Proceedings of the IEEE. — 1998. — Т. 86. — № 11. — С. 2278–2324.
- Krizhevsky A., Sutskever I., Hinton G.E. ImageNet Classification with Deep Convolutional Neural Networks // Advances in Neural Information Processing Systems (NeurIPS). — 2012. — Т. 25. — С. 1097–1105.
- Simonyan K., Zisserman A. Very Deep Convolutional Networks for Large-Scale Image Recognition // arXiv preprint. — 2014. — № arXiv:1409.1556.
- Szegedy C., Liu W., Jia Y., Sermanet P., Reed S., Anguelov D., Erhan D., Vanhoucke V., Rabinovich A. Going Deeper with Convolutions // Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR). — 2015. — С. 1–9.
- He K., Zhang X., Ren S., Sun J. Deep Residual Learning for Image Recognition // Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR). — 2016. — С. 770–778.
- Tan M., Le Q.V. EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks // Proceedings of the 36th International Conference on Machine Learning (ICML). — 2019. — № arXiv:1905.11946.
- Howard A.G., Zhu M., Chen B., Kalenichenko D., Wang W., Weyand T., Andreetto M., Adam H. MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications // arXiv preprint. — 2017. — № arXiv:1704.04861.
- Li X., Zhai M., Sun J. DDCNNC: Dilated and depthwise separable convolutional neural network for diagnosis COVID-19 via chest X-ray images // International Journal of Cognitive Computing in Engineering. — 2021. — Т. 2. — С. 71–82.

