Перейти к основному содержимому
Informatik.uz
Магистратура · 2-й курсГлава 1. Глубокое обучение

Свёрточные нейронные сети (CNN)

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

Тема 1 из 2Чтение: 2 минОбновлено: 27 октября 2026 г.
Список тем (1 из 2)

Глава 1. Глубокое обучение

  1. 1Свёрточные нейронные сети (CNN)

Глава 2. Методология научного исследования

  1. 2Выбор темы диссертации и обзор литературы

Если подать изображение в обычную полносвязную сеть, число параметров становится чрезмерным: цветное изображение 224 × 224 содержит 150528 входных значений, и при 1000 нейронов в первом слое потребуется около 150 миллионов весов. Такая сеть к тому же не учитывает пространственное расположение пикселей: соседние пиксели обрабатываются так же, как далёкие. Свёрточные нейронные сети (CNN) решают эту проблему за счёт локальных связей и разделения весов.

Свёрточный слой сдвигает небольшой фильтр (ядро, например 3 × 3) по изображению, в каждой позиции умножает пиксели на веса фильтра, суммирует и получает карту признаков (feature map). Один и тот же фильтр применяется ко всему изображению, поэтому параметров мало, а объект обнаруживается независимо от того, в какой части изображения он расположен. Фильтры не задают вручную, а обучают: первые слои выделяют границы и углы, более глубокие — формы и части объектов. Строго говоря, в библиотеках эта операция является взаимной корреляцией, но по традиции её называют свёрткой.

Основные гиперпараметры свёртки: размер фильтра, шаг (stride) и дополнение (padding). Если размер входа равен n, фильтра — f, дополнения — p, а шаг — s, то размер выхода равен floor((n + 2*p - f) / s) + 1; например, при n = 32, f = 5, p = 0, s = 1 получается 28. Слой пулинга (чаще всего max pooling 2 × 2) уменьшает карту признаков, сокращает вычисления и повышает устойчивость к небольшим сдвигам. Результат свёртки обычно пропускают через активацию ReLU.

Типичная CNN последовательно чередует блоки свёртки, ReLU и пулинга, а в конце полносвязный слой и softmax выдают вероятности классов. Сеть LeNet-5 Яна Лекуна (1998) распознавала рукописные цифры; AlexNet (2012) с большим отрывом победила в конкурсе ImageNet и начала эпоху глубокого обучения; ResNet (2015) с помощью остаточных (skip) связей позволила обучать сети из сотен слоёв. При нехватке данных применяют аугментацию данных и перенос обучения (transfer learning) — адаптацию заранее обученной модели к новой задаче.

Главное

  • CNN благодаря локальным связям и общим весам использует намного меньше параметров, чем полносвязная сеть.
  • Свёрточный слой с обучаемыми фильтрами строит карту признаков; с глубиной признаки усложняются.
  • Размер выхода находится по формуле floor((n + 2*p - f) / s) + 1.
  • Пулинг уменьшает размер и повышает устойчивость к небольшим сдвигам.
  • При нехватке данных помогают аугментация и перенос обучения.

Практические задания

  1. Вычислите вручную: для изображения 5 × 5 и фильтра 3 × 3 (padding = 0, stride = 1) найдите размер выхода, а затем с выбранным вами фильтром вычислите верхний левый элемент выхода.
  2. В PyTorch соберите небольшую сеть из Conv2d(1, 8, kernel_size=3), ReLU, MaxPool2d(2) и линейного слоя, обучите её на MNIST несколько эпох и измерьте точность на тестовой выборке.
  3. Загрузите предобученную модель resnet18 (torchvision), замените последний слой и обучите только его на небольшом наборе изображений из двух-трёх классов; сравните результат с сетью, обученной с нуля.

Вопросы для закрепления

Проверьте себя: сначала подумайте, потом откройте ответ.

  1. 1Почему для изображений CNN предпочтительнее полносвязной сети?
    CNN за счёт локальных связей и общих весов использует намного меньше параметров, учитывает пространственную структуру и находит объект в любой части изображения.
  2. 2Каков размер выхода, если к изображению 32 × 32 применить фильтр 5 × 5 при `padding = 0` и `stride = 1`?
    28 × 28, так как 32 - 5 + 1 = 28.
  3. 3Что такое перенос обучения?
    Адаптация модели, заранее обученной на большом наборе данных (например, ImageNet), к новой небольшой задаче.

Пройдено тем: 0 из 2

Войти и отметить