Операции свёртки (Convolution Operations)
Математическая операция, применяемая в свёрточных нейронных сетях (CNN) для извлечения признаков из входных данных (обычно изображений), посредством наложения фильтра (ядра свёртки) на локальные области данных.
Суть операции свёртки в контексте нейросетей можно представить через аналогию с работой художника‑реставратора, который внимательно изучает картину через увеличительное стекло. Он не рассматривает полотно целиком, а фокусируется на небольших фрагментах — изучает текстуру краски, штрихи кисти, цветовые переходы.
Точно так же свёртка «проходит» по изображению небольшими «окнами», выделяя локальные паттерны: края, углы, текстуры. Фильтр (ядро свёртки) — это как увеличительное стекло с особым «эффектом»: оно усиливает или подавляет определённые признаки в зависимости от своих весов.
Исторически свёрточные сети восходят к концепции неокогнитрона (1980, Кунихико Фукусима), который моделировал иерархическую обработку визуальной информации в мозге. Однако настоящий прорыв случился в 2012 году с появлением AlexNet (А. Крижевский, И. Сацкевич, Дж. Хинтон), выигравшей конкурс ImageNet. Именно тогда стало ясно, что свёртка — ключ к эффективному извлечению признаков из изображений. Сегодня свёртка — основа большинства архитектур компьютерного зрения.
Чем отличается от смежных понятий
- Полносвязный слой (dense layer). В полносвязном слое каждый нейрон соединён со всеми входами, что приводит к огромному числу параметров. Свёртка же использует разделяемые веса (одно и то же ядро применяется ко всем позициям изображения) и локальное восприятие (фильтр «смотрит» только на небольшую область), что резко сокращает число параметров и делает обучение возможным.
- Пулинг (pooling). Пулинг тоже работает с локальными областями, но не имеет обучаемых параметров. Его задача — уменьшить размерность карты признаков (например, взять максимум из 2×2 пикселей). Свёртка же извлекает новые признаки через обучаемые фильтры.
Примеры использования
- Классификации изображений (ResNet, VGG, Inception) — свёртка выделяет края, текстуры, затем более сложные паттерны (глаза, колёса, окна).
- Сегментация изображений (U‑Net) — свёртка помогает точно определить границы объектов на пиксельном уровне.
- Обнаружение объектов (YOLO, SSD) — свёртка находит «якоря» (anchor boxes), где могут находиться объекты.
- Генеративные модели (DCGAN) — свёртка (в транспонированном варианте) используется для постепенного «разворачивания» шума в изображение.
Популярные реализации ядер свёртки
- 3×3 — стандартный размер, баланс между локальностью и охватом.
- 1×1 — «точечная» свёртка, часто используется для изменения числа каналов (bottleneck‑слои в ResNet).
- Атриосная свёртка (atrous convolution) — с «дырками» между элементами ядра, чтобы увеличить рецептивное поле без роста параметров (применяется в DeepLab для сегментации).
