Открыть сервисСервис

Сверточная нейронная сеть

Свёрточная нейронная сеть (ConvNet, CNN) — это класс искусственных нейронных сетей, архитектура которых специально спроектирована для эффективного распознавания пространственных иерархий признаков в данных, имеющих сетчатую (решётчатую) топологию, наиболее часто — в изображениях. Основной особенностью CNN является использование операции свёртки вместо общих матричных умножений в, по крайней мере, одном из слоёв, что позволяет значительно уменьшить количество обучаемых параметров по сравнению с полносвязными сетями аналогичной глубины.

История

Ранние предпосылки

Идеи, лежащие в основе свёрточных нейронных сетей, восходят к исследованиям нейробиологов Дэвида Хьюбела и Торстена Визела, проведённым в 1950–1960-х годах на зрительной коре кошек. Они обнаружили, что нейроны в первичной зрительной коре реагируют на определённые локальные области поля зрения (рецептивные поля) и специализируются на обнаружении простых признаков, таких как ориентация границ. Эти открытия заложили биологическое обоснование для архитектуры с локальными связями и разделением весов.

Первые реализации

В 1980 году японский исследователь Кунихико Фукусима предложил неокогнитрон — одну из первых архитектур, реализующих принципы свёртки и субдискретизации. Неокогнитрон был способен распознавать рукописные символы, однако не обучался с помощью обратного распространения ошибки, а использовал правило обучения без учителя.

Прорыв с обратным распространением

Современная форма свёрточных нейронных сетей была сформулирована в 1989 году Яном Лекуном и его коллегами, которые применили алгоритм обратного распространения ошибки к свёрточной архитектуре для распознавания рукописных цифр. В 1998 году Лекун представил сеть LeNet-5, которая успешно обрабатывала изображения банковских чеков и почтовых индексов. LeNet-5 содержала два свёрточных слоя, два слоя подвыборки и три полносвязных слоя, и стала эталоном для последующих разработок.

Рост популярности в 2010-х годах

Широкое распространение CNN получили после 2012 года, когда архитектура AlexNet, разработанная Алексом Крижевским, Ильёй Суцкевером и Джеффри Хинтоном, одержала убедительную победу на соревновании по классификации изображений ImageNet Large Scale Visual Recognition Challenge (ILSVRC). AlexNet продемонстрировала значительное преимущество по сравнению с традиционными методами компьютерного зрения, основанными на ручном выделении признаков. Успех был обусловлен использованием глубокой архитектуры (8 слоёв), нелинейной функции активации ReLU (Rectified Linear Unit), методов регуляризации (Dropout) и обучения на графических процессорах (GPU).

Последующие годы ознаменовались появлением более глубоких и эффективных архитектур: VGGNet (2014, 16–19 слоёв), GoogLeNet (Inception, 2014, 22 слоя) и ResNet (2015, до 152 слоёв). ResNet ввела концепцию остаточных связей, которая позволила обучать очень глубокие сети, решая проблему затухания градиента.

Архитектура и принцип работы

Свёрточная нейронная сеть состоит из последовательности слоёв трёх основных типов: свёрточных, пулинговых (подвыборки) и полносвязных. Входные данные обычно представляют собой многомерный тензор (например, изображение размером H × W × C, где Hвысота, Wширина, C — количество цветовых каналов).

Свёрточный слой

Свёрточный слой является ключевым элементом CNN. Он выполняет операцию свёртки входного тензора с набором обучаемых фильтров (ядер). Каждый фильтр представляет собой небольшую матрицу весов (например, 3×3, 5×5 или 7×7), которая сканируется по всей ширине и высоте входного тензора. На каждой позиции фильтра вычисляется скалярное произведение весов фильтра и значений пикселей входного тензора, после чего к результату добавляется смещение (bias). Результатом работы одного фильтра является карта признаков (feature map), которая активируется при обнаружении определённого локального паттерна (например, границы, текстуры или угла).

Важными параметрами свёрточного слоя являются:

  • Размер фильтра (kernel size) — определяет размер рецептивного поля.
  • Шаг (stride) — шаг, с которым фильтр перемещается по входу.
  • Дополнение (padding) — добавление нулей по краям входного тензора для сохранения пространственных размеров.

Функция активации

После операции свёртки к каждому элементу карты признаков применяется нелинейная функция активации. Наиболее распространённой является ReLU (Rectified Linear Unit), которая заменяет все отрицательные значения на ноль, оставляя положительные без изменений: f(x) = max(0, x). Использование ReLU ускоряет обучение и помогает бороться с проблемой затухающего градиента.

Слой подвыборки (пулинг)

Слой пулинга (Pooling Layer) уменьшает пространственные размеры карт признаков, что снижает количество параметров и вычислительную сложность сети, а также обеспечивает некоторую инвариантность к небольшим сдвигам и деформациям входного изображения. Наиболее распространённым типом является максимальный пулинг (max pooling), который выбирает максимальное значение из окна заданного размера (например, 2×2) с определённым шагом. Другие варианты включают средний пулинг (average pooling) и глобальный средний пулинг (global average pooling).

Полносвязный слой

Последние слои CNN обычно являются полносвязными (fully connected, FC). Они принимают на вход одномерный вектор признаков, полученный после вытягивания (flatten) многомерных карт признаков из последнего свёрточного или пулингового слоя. Полносвязные слои выполняют задачу высокоуровневой классификации или регрессии на основе извлечённых признаков. Выходной слой часто использует функцию активации softmax для получения вероятностей принадлежности к каждому классу.

Классификация и виды архитектур

Свёрточные нейронные сети можно классифицировать по различным признакам, включая глубину, топологию и область применения.

По глубине и сложности

  • Мелкие сети (Shallow CNNs) — содержат небольшое количество свёрточных слоёв (обычно 1–3). Пример: LeNet-5.
  • Глубокие сети (Deep CNNs) — имеют десятки и сотни слоёв. Примеры: VGGNet, ResNet, DenseNet.

По архитектурным особенностям

  • Остаточные сети (ResNet) — используют пропускные соединения (skip connections), которые позволяют градиенту распространяться напрямую через несколько слоёв, что облегчает обучение очень глубоких сетей.
  • Сети с инцепционными модулями (Inception/GoogLeNet) — применяют модули, которые выполняют свёртки с разными размерами фильтров параллельно, а затем конкатенируют результаты, что позволяет эффективно извлекать признаки разных масштабов.
  • DenseNet — каждая свёрточная группа получает на вход карты признаков всех предыдущих групп, что улучшает поток информации и уменьшает количество параметров.
  • MobileNet — используют разделимые по глубине свёртки (depthwise separable convolutions) для значительного снижения вычислительных затрат, что делает их пригодными для мобильных и встраиваемых устройств.

По области применения

  • Сети для классификации изображений (AlexNet, VGG, ResNet, EfficientNet).
  • Сети для обнаружения объектов (R-CNN, Fast R-CNN, Faster R-CNN, YOLO, SSD).
  • Сети для сегментации изображений (U-Net, FCN, Mask R-CNN).
  • Сети для генерации изображений (DCGAN, CycleGAN).

Применение

Благодаря способности автоматически извлекать иерархические признаки, свёрточные нейронные сети нашли широкое применение в различных областях.

Компьютерное зрение

  • Классификация изображений — определение доминирующего объекта на изображении (например, «кошка», «автомобиль», «самолёт»).
  • Обнаружение объектов — локализация и классификация нескольких объектов на изображении с помощью ограничивающих рамок.
  • Сегментация изображений — попиксельное разделение изображения на семантические области (например, выделение дороги, пешеходов и автомобилей на снимке с камеры).
  • Анализ медицинских изображений — обнаружение опухолей на МРТ и КТ-снимках, анализ рентгенограмм, сегментация клеток в микроскопии.
  • Распознавание лиц — идентификация и верификация личности по изображению лица.

Обработка естественного языка

Хотя CNN изначально разрабатывались для изображений, они также применяются для обработки текстов. В этом случае текст представляется в виде матрицы, где строки соответствуют словам, а столбцы — векторным представлениям слов (эмбеддингам). Свёрточные фильтры в этом контексте извлекают n-граммы — локальные комбинации слов. Применение включает анализ тональности текста, классификацию документов и поиск по смыслу.

Обработка аудио и сигналов

CNN используются для анализа спектрограмм (визуальных представлений звука) для задач распознавания речи, музыкального жанра и обнаружения звуковых событий. Временные ряды также могут обрабатываться одномерными свёрточными сетями (1D-CNN).

Автономные системы

В системах автономного вождения и робототехники CNN обрабатывают видеопоток с камер для обнаружения препятствий, дорожной разметки, пешеходов и дорожных знаков, обеспечивая принятие решений в реальном времени.

Преимущества и недостатки

Преимущества

  • Автоматическое извлечение признаков — не требуют ручного проектирования признаков, что особенно ценно для сложных данных.
  • Инвариантность к сдвигам — благодаря операции свёртки и пулингу, сеть способна распознавать объекты независимо от их положения в кадре.
  • Эффективность параметров — разделение весов (weight sharing) в свёрточных фильтрах значительно уменьшает количество обучаемых параметров по сравнению с полносвязными сетями.
  • Масштабируемость — архитектуры могут быть легко масштабированы за счёт увеличения глубины или ширины слоёв.

Недостатки

  • Высокие вычислительные затраты — обучение глубоких сетей требует больших объёмов памяти и значительного времени даже на мощных GPU.
  • Потребность в больших наборах данных — для эффективного обучения без переобучения требуются размеченные наборы данных размером в десятки и сотни тысяч изображений.
  • Чувствительность к аугментации — для достижения инвариантности к поворотам, масштабу и другим преобразованиям часто требуется применение методов аугментации данных.
  • Интерпретируемость — результаты работы глубоких CNN сложно интерпретировать, что затрудняет понимание причин принятия того или иного решения.

Интересные факты

  • Архитектура AlexNet (2012) содержала 60 миллионов параметров и требовала для обучения около 5–6 дней на двух GPU NVIDIA GTX 580.
  • ResNet (2015) с глубиной 152 слоя имела меньшую ошибку классификации на ImageNet (3.57%), чем человеческий глаз (около 5%).
  • Свёрточные нейронные сети активно используются в приложениях для обработки фотографий на смартфонах, включая портретный режим, улучшение качества снимков и распознавание лиц.
  • В 2020-х годах архитектуры на основе трансформеров (Vision Transformer, ViT) начали составлять конкуренцию CNN в задачах компьютерного зрения, однако свёрточные сети остаются доминирующими во многих прикладных областях благодаря своей эффективности и проверенной надёжности.

Источники

  • LeCun, Y., Bottou, L., Bengio, Y., & Haffner, P. (1998). Gradient-based learning applied to document recognition. Proceedings of the IEEE, 86(11), 2278-2324.
  • Krizhevsky, A., Sutskever, I., & Hinton, G. E. (2012). ImageNet classification with deep convolutional neural networks. Advances in Neural Information Processing Systems, 25, 1097-1105.
  • Simonyan, K., & Zisserman, A. (2014). Very deep convolutional networks for large-scale image recognition. arXiv preprint arXiv:1409.1556.
  • 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.
  • Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press.
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru