Научный руководитель: Вильданов Алмаз Нафкатович
к.ф.-м.н., Уфимский университет науки и технологий, Нефтекамский филиал
Введение
Сверточные нейронные сети (Convolutional Neural Networks, CNN) — это класс глубоких нейронных сетей, специально разработанных для обработки структурированных данных с пространственной зависимостью, таких как изображения, видео и даже аудиосигналы. CNN стали основой современных компьютерных систем зрения, обеспечивая высокую точность в задачах классификации, детекции и сегментации изображений.
Если обычные нейросети анализируют данные «в лоб» (например, рассматривают изображение как просто набор чисел), то сверточные сети смотрят на картинку иначе. Они ищут в ней закономерности — сначала простые (линии, углы, пятна), а затем все более сложные (глаза, уши, очертания объектов).
Принцип работы CNN
1. Сверточные слои (Convolutional Layers)
Основная идея CNN — использование свертки (операции, при которой небольшой фильтр “скользит” по входному изображению, вычисляя скалярное произведение между своими весами и соответствующими участками изображения).
Фильтры (ядра свертки) — небольшие матрицы (например, 3×3 или 5×5), которые извлекают локальные признаки (например, границы, текстуры).
Карты признаков (Feature Maps) — результат применения фильтра к изображению.
2. Функции активации
После свертки применяется нелинейная функция активации (обычно ReLU), чтобы добавить модели способность обучаться сложным зависимостям.
3. Слои подвыборки (Pooling Layers)
Уменьшают размерность данных, сохраняя важные признаки:
Max Pooling — берется максимальное значение в окне (например, 2×2).
Average Pooling — усреднение значений в окне.
4. Полносвязные слои (Fully Connected Layers)
После нескольких сверточных и пулинговых слоев данные “разворачиваются” в вектор и подаются в классическую нейронную сеть для финальной классификации.
Что собой представляют сверточные нейронные сети
Сверточной называют вид нейронной сети, специализирующейся на обработке изображений и видео. Такие сети подходят для улавливания локального контекста, когда поток информации в пространстве не прерывается, т.е. ее носители находятся в непосредственной близости друг от друга.
Например, на изображении пиксели расположены рядом и содержат такие визуальные данные, как яркость и цвет. Если нейронная сеть видит кошку в одном пикселе на фотографии или рисунке, это означает, что она видит ее и в соседних пикселях.
Зачастую сверточные нейронные сети используются для решения двух задач: распознавания и классификации изображений. Так, они могут быть использованы на изображении кошки для определения ее цвета по большим фрагментам изображения или для определения оттенка ее глаз по маленьким фрагментам, а также для различения собак и кошек.
Популярные архитектуры CNN
LeNet-5 (1998)
Первая успешная CNN для распознавания цифр (Yann LeCun).
Состоит из двух сверточных слоев и трех полносвязных.
AlexNet (2012)
Победитель ImageNet, доказавший эффективность CNN в глубоком обучении.
Использует ReLU и Dropout для борьбы с переобучением.
VGG (2014)
Глубокая сеть с малыми фильтрами 3×3.
VGG16 и VGG19 — популярные варианты.
ResNet (2015)
Ввел остаточные связи (Residual Connections), позволяющие обучать очень глубокие сети (100+ слоев).
EfficientNet (2019)
Оптимизированная архитектура с масштабированием глубины, ширины и разрешения.
Где используются сверточные нейронные сети
В 2010-е годы искусственные сверточные нейронные сети имели широкое использование в медицине и государственных учреждениях при:
распознавании рукописного текста;
классификации документов, таких как СНИЛС или паспорт;
распознавании на снимках новообразований и иных патологий.
В настоящее время сверточные нейронные сети применяются в системах видеонаблюдения, видеоаналитики и беспилотных автомобилях. Например, камеры в комплексе с такими сетями помогают роботам компании «Яндекс» и беспилотным такси понимать, что происходит на дороге.
Другой популярной областью применения принципа работы сверточных нейронных сетей является генеративное искусство. Когда человек вводит запрос, нейронная сеть генерирует на его основе изображение. Преобразование текста является задачей различных алгоритмов, а генерация изображения – сверточных нейронных сетей. Наиболее распространенными моделями для генерации изображений являются такие сверточные нейронные сети, как Midjourney, Stable Diffusion, Dream, DALL-E 2 и ruDALL-E.
Задачи, не подвластные сверточным нейронным сетям:
Они не подходят для анализа глобальных контекстов, таких как смысл текста. В изображениях детали, анализируемые сетью, расположены близко друг к другу. А в тексте связи между элементами длинные, потому как начало и конец предложения могут отделять множество слов. Такие нейронные сети не подходят для табличных данных. Это связано с тем, что, в отличие от пикселей, табличные данные неоднородны (текст, дата, различные строчные и математические символы).
Сверточной нейронной сети нелегко дается работа по анализу разноразмерных изображений. Например, когда документов несколько и все они разного масштаба (A3, A4 и A5), но содержат один и тот же текст. И если не подогнать все документы под один размер, то нейросеть вряд ли поймет, что содержание текста у всех них одинаково.
Библиографический список
- LeCun, Y., Bengio, Y., & Hinton, G. (2015). Deep learning. Nature, 521(7553), 436-444.
- Zeiler, M. D., & Fergus, R. (2014). Visualizing and understanding convolutional networks. European conference on computer vision, 818-833.
- Krizhevsky, A., Sutskever, I., & Hinton, G. E. (2012). ImageNet classification with deep convolutional neural networks. Advances in neural information processing systems, 25.