Свёрточная нейронная сеть
Свёрточная нейронная сеть (ConvNet, CNN) — это класс искусственных нейронных сетей, архитектура которых специально спроектирована для эффективной обработки данных, имеющих сетчатую (решётчатую) топологию, наиболее часто — двумерных изображений. Основной принцип работы свёрточных сетей заключается в применении операции математической свёртки к входным данным, что позволяет извлекать локальные пространственные признаки (например, края, текстуры, формы) с сохранением пространственной структуры. Благодаря использованию разделяемых весов (ядер свёртки) и операций подвыборки (пулинга), CNN требуют значительно меньше параметров по сравнению с полносвязными сетями аналогичной глубины, что делает их устойчивыми к переобучению и эффективными для задач компьютерного зрения, анализа видео, обработки естественного языка и многих других областей.
История
Развитие свёрточных нейронных сетей началось в 1980-х годах с работ японского учёного Кунихико Фукусимы, который в 1980 году предложил архитектуру неокогнитрон — одну из первых моделей, вдохновлённую биологической организацией зрительной коры млекопитающих. Неокогнитрон использовал иерархию простых и сложных клеток, способных реагировать на локальные паттерны, однако не применял алгоритм обратного распространения ошибки.
В 1989 году Ян ЛеКун, работая в Bell Labs, впервые применил алгоритм обратного распространения ошибки к свёрточным сетям для задачи распознавания рукописных цифр. В 1998 году ЛеКун и его коллеги представили архитектуру LeNet-5, которая успешно распознавала почтовые индексы и банковские чеки. LeNet-5 состояла из семи слоёв (три свёрточных, два подвыборочных и два полносвязных) и стала первой практически применимой свёрточной сетью.
Долгое время CNN не получали широкого распространения из-за ограниченной вычислительной мощности и небольших объёмов доступных данных. Перелом произошёл в 2012 году, когда команда Джеффри Хинтона (Алекс Крижевский, Илья Суцкевер) представила сеть AlexNet на конкурсе ImageNet Large Scale Visual Recognition Challenge (ILSVRC). AlexNet значительно превзошла традиционные методы машинного зрения (ошибка топ-5 составила 15,3 % против 26,2 % у ближайшего конкурента). Успех AlexNet был обусловлен использованием графических процессоров (GPU) для обучения, применением функции активации ReLU, дропаутом для борьбы с переобучением и большим набором данных ImageNet.
После 2012 года начался бурный рост исследований в области CNN. Были предложены архитектуры, последовательно улучшавшие точность: VGGNet (2014) — с глубокими однородными свёрточными слоями; GoogLeNet (Inception, 2014) — с модулями, выполняющими свёртки разных размеров параллельно; ResNet (2015) — с остаточными связями, позволившими обучать сети глубиной более 100 слоёв. В 2017 году появились архитектуры DenseNet и SENet, а в 2019 году — EfficientNet, оптимизированная по соотношению точности и вычислительных затрат.
Архитектура и принцип работы
Основными строительными блоками свёрточной нейронной сети являются три типа слоёв: свёрточный слой (convolutional layer), слой подвыборки (pooling layer) и полносвязный слой (fully connected layer). Типичная CNN состоит из повторяющихся блоков «свёртка + активация + подвыборка», за которыми следуют один или несколько полносвязных слоёв, выполняющих классификацию или регрессию.
Свёрточный слой
Свёрточный слой является ключевым элементом CNN. Он применяет к входному тензору (например, изображению размером H×W×C, где H — высота, W — ширина, C — число каналов) набор обучаемых фильтров (ядер свёртки) размером k×k×C. Каждый фильтр скользит по входному тензору с определённым шагом (stride) и вычисляет скалярное произведение своих весов с соответствующим локальным участком входа. Результатом является карта признаков (feature map), которая активируется при обнаружении определённого локального паттерна (например, вертикальной грани, угла, текстуры). Количество фильтров определяет глубину выходного тензора. После свёртки обычно применяется нелинейная функция активации, чаще всего ReLU (Rectified Linear Unit, f(x)=max(0,x)), которая вносит нелинейность и ускоряет обучение.
Слой подвыборки
Слой подвыборки (пулинг) уменьшает пространственные размеры карт признаков, снижая количество параметров и вычислительную сложность, а также обеспечивая инвариантность к небольшим смещениям и деформациям входа. Наиболее распространённый вид — максимальный пулинг (max pooling), при котором из каждой области размером p×p (обычно 2×2) выбирается максимальное значение. Альтернативы — средний пулинг (average pooling) и глобальный пулинг (global pooling), который усредняет всю карту признаков до одного числа.
Полносвязный слой
После нескольких блоков свёртки и пулинга полученное многомерное представление признаков «распрямляется» (flatten) в одномерный вектор и подаётся на один или несколько полносвязных слоёв. Эти слои работают как классический перцептрон: каждый нейрон соединён со всеми нейронами предыдущего слоя. Полносвязные слои выполняют высокоуровневую интерпретацию извлечённых признаков и выдают итоговый результат, например, вероятности принадлежности к каждому классу через функцию softmax.
Классификация архитектур
Свёрточные нейронные сети можно классифицировать по различным признакам:
- По глубине: мелкие (до 10 слоёв, например LeNet-5), средние (10–50 слоёв, VGG-16), глубокие (50–200 слоёв, ResNet-152) и сверхглубокие (более 200 слоёв, ResNeXt).
- По типу соединений: последовательные (VGG), с остаточными связями (ResNet), с плотными связями (DenseNet), с параллельными модулями (Inception).
- По области применения: для классификации изображений (AlexNet, ResNet), для сегментации (U-Net, Mask R-CNN), для обнаружения объектов (YOLO, Faster R-CNN), для генерации изображений (DCGAN, Pix2Pix).
- По эффективности: стандартные (VGG), лёгкие (MobileNet, ShuffleNet) для мобильных устройств, масштабируемые (EfficientNet).
Применение
Свёрточные нейронные сети нашли широкое применение в самых разных областях:
- Компьютерное зрение: классификация изображений, обнаружение и распознавание объектов, семантическая сегментация, анализ медицинских снимков (рентген, МРТ, КТ), распознавание лиц, анализ дорожной обстановки для беспилотных автомобилей.
- Обработка видео: анализ видеопотоков в реальном времени, распознавание действий, трекинг объектов, видеонаблюдение.
- Обработка естественного языка: анализ текстов с использованием одномерных свёрток (ConvNets для текста), классификация документов, выявление тональности.
- Генеративные модели: генерация реалистичных изображений (GAN с CNN-генераторами), стилизация изображений (Neural Style Transfer), суперразрешение, раскрашивание чёрно-белых фото.
- Геоинформационные системы: анализ спутниковых снимков, распознавание типов землепользования, обнаружение изменений.
- Научные исследования: анализ кристаллографических данных, предсказание свойств молекул, обработка сигналов в астрономии.
Преимущества и ограничения
Преимущества
- Локальная связность и разделение весов — резкое сокращение числа параметров по сравнению с полносвязными сетями.
- Инвариантность к сдвигам — благодаря пулингу и свёртке сеть способна распознавать объекты независимо от их положения в кадре.
- Иерархическое извлечение признаков — первые слои учат простые признаки (края, цвета), последующие — более сложные (формы, объекты).
- Высокая точность на задачах, где пространственная структура данных имеет решающее значение.
Ограничения
- Высокая вычислительная нагрузка — обучение глубоких CNN требует мощных GPU и больших объёмов оперативной памяти.
- Необходимость больших размеченных наборов данных — для достижения высокой точности требуются десятки и сотни тысяч примеров.
- Чувствительность к поворотам и масштабу — стандартные CNN не обладают врождённой инвариантностью к вращению, что требует аугментации данных или специальных архитектур.
- Интерпретируемость — внутренние представления сети сложны для понимания человеком, хотя существуют методы визуализации карт активации.
Интересные факты
- Свёрточные нейронные сети вдохновлены организацией зрительной коры мозга, где нейроны реагируют на стимулы в ограниченных областях поля зрения (рецептивные поля).
- Архитектура AlexNet, победившая в 2012 году, содержала 60 миллионов параметров и обучалась на двух GPU в течение 5–6 дней.
- ResNet (2015) позволила обучать сети глубиной до 152 слоёв благодаря остаточным связям, которые решают проблему затухания градиентов.
- В 2018 году сеть EfficientNet достигла точности 84,4 % топ-1 на ImageNet при значительно меньшем числе параметров, чем предшественники.
- Свёрточные сети активно используются в системах распознавания лиц (например, Face ID от Apple) и в камерах смартфонов для улучшения качества фотографий.
Источники
- LeCun, Y., Bengio, Y., & Hinton, G. (2015). Deep learning. Nature, 521(7553), 436–444.
- Krizhevsky, A., Sutskever, I., & Hinton, G. E. (2012). ImageNet classification with deep convolutional neural networks. Advances in Neural Information Processing Systems, 25.
- He, K., Zhang, X., Ren, S., & Sun, J. (2016). Deep residual learning for image recognition. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 770–778.
- Simonyan, K., & Zisserman, A. (2014). Very deep convolutional networks for large-scale image recognition. arXiv preprint arXiv:1409.1556.
- Szegedy, C., et al. (2015). Going deeper with convolutions. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 1–9.
- Tan, M., & Le, Q. V. (2019). EfficientNet: Rethinking model scaling for convolutional neural networks. International Conference on Machine Learning, 6105–6114.
- Гудфеллоу, Я., Бенджио, И., & Курвилль, А. (2018). Глубокое обучение. ДМК Пресс.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →