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

Image Classification: CNNs

Предварительные знания

  • Свёртка, ядра фильтров и pooling из cv-03
  • Обратное распространение и градиентный спуск как механизм обучения сети
  • Изображение как тензор (H, W, C) и работа с каналами
  • Признаки: SIFT, SURF, ORB

Сентябрь 2012 года, ImageNet Large Scale Visual Recognition Challenge. Alex Krizhevsky запускает AlexNet на двух GTX 580. Результат: top-5 error 15.3%. Второе место - 26.2%. Разрыв такой, что организаторы думали об ошибке в подсчёте. Он Куну (один из организаторов): 'Это не просто победа - это смена парадигмы'. За 24 часа компании начали нанимать специалистов по deep learning. Google купил DeepMind за $400M в 2014. Этот момент запустил десятилетие AI гонки.

  • **Google Photos**: ResNet для распознавания объектов, лиц, мест - обрабатывает 1.2 миллиарда фото в месяц
  • **Tesla Autopilot**: CNN архитектуры для real-time обнаружения препятствий на 8 камерах одновременно
  • **Instagram**: ResNet-основанные модели для content moderation - 95% harmful content находится без human review

Янн ЛеКун (1998)

В 1998 году Янн ЛеКун опубликовал 'Gradient-Based Learning Applied to Document Recognition' - статью о LeNet-5. Банки уже тогда использовали нейросети для обработки чеков: CNN читала ZIP коды и суммы с миллионов банковских документов ежедневно. Но с ростом интернет-данных интерес угас - hardware был слишком медленным для больших изображений. Ждали 14 лет до AlexNet (2012), который доказал: идеи ЛеКуна правильные, просто нужны GPU и данные. В 2018 году ЛеКун получил премию Тьюринга (с Беньо и Хинтоном) - 'Нобелевскую премию по CS' - именно за LeNet и идеи CNN. LeNet-5 заложила концепции свёрток, weight sharing и pooling, которые через 14 лет стали фундаментом всего современного Computer Vision

LeNet-5: первая успешная CNN

LeNet-5 (LeCun, 1998) - первая CNN, достигшая practical performance. Разработана для распознавания рукописных цифр в банковских чеках AT&T. Архитектура: [Conv(5x5, 6 filters) -> AvgPool] x2 -> Flatten -> FC(120) -> FC(84) -> Softmax(10). Входное изображение 32x32 пикселей. Идея: weight sharing через свёрточные фильтры вместо полносвязных слоёв.

LeNet-5 содержала 60,000 параметров - ничтожно мало по современным меркам. Для сравнения: GPT-4 - ~1.7 триллиона параметров. Несмотря на скромный масштаб, LeNet-5 обработала более миллиона банковских чеков ежедневно в США в 1990-е годы - реальный production ML за 25 лет до ChatGPT.

Какое ключевое преимущество свёрточных слоёв LeNet перед полносвязными слоями для обработки изображений?

AlexNet: глубокое обучение побеждает ImageNet

AlexNet (Krizhevsky, Sutskever, Hinton, 2012) выиграл ImageNet LSVRC-2012 с top-5 error 15.3% - против 26.2% у второго места. Ключевые инновации vs LeNet: **ReLU** вместо tanh (быстрее, нет vanishing gradient), **Dropout** для регуляризации, **GPU параллелизм** (2 GTX 580), **data augmentation** (random crops, horizontal flips).

AlexNet содержит **60 миллионов параметров** - в 1000x больше LeNet. Обучение заняло 6 дней на двух GPU. Статья собрала более 100,000 цитирований - одна из самых цитируемых в истории Computer Science. Результат 2012 года запустил современную эпоху Deep Learning.

Почему AlexNet использовал ReLU вместо tanh, и какое практическое преимущество это дало?

VGG: глубина через 3x3 фильтры

VGGNet (Simonyan, Zisserman, Oxford, 2014) выяснил, что **глубина** сети - ключевой фактор. Принцип: заменить большие фильтры (11x11, 5x5 в AlexNet) на стеки **3x3 фильтров**. Два 3x3 конва = одному 5x5, но меньше параметров и больше нелинейностей. Три 3x3 конва = одному 7x7. VGG-16: 16 слоёв, 138M параметров.

VGG-16 достиг top-5 error 7.3% на ImageNet - вдвое лучше AlexNet (15.3%). Простая, регулярная архитектура сделала VGG-16 идеальным для transfer learning и feature extraction. Pre-trained VGG features использовались для style transfer (2015) и многих других задач.

Почему стек из двух 3x3 свёрток предпочтительнее одной 5x5 свёртки (при одинаковом рецептивном поле)?

ResNet: residual connections и глубина 152+ слоёв

ResNet (He et al., Microsoft Research, 2015) решил фундаментальную проблему: добавление слоёв ухудшает точность на тренировочных данных (degradation problem, не overfitting). Решение - **residual connections**: F(x) + x. Сеть учится не mapping'у от входа к выходу, а **остатку** (residual). Если оптимальный вывод близок к входу, блок легко выучит F(x) ≈ 0.

ResNet-152 с top-5 error 3.57% впервые превзошёл человека (5%) на ImageNet LSVRC-2015. Residual connections стали универсальным паттерном: Transformer использует их в каждом блоке. Pre-activation ResNet, Wide ResNet, ResNeXt, DenseNet - все расширяют эту идею. **Batch Normalization** в каждом блоке - не менее важная инновация для тренировки глубоких сетей.

Более глубокие CNN всегда точнее - добавление слоёв гарантированно улучшает результат

Без residual connections деградация делает очень глубокие сети хуже мелких; глубина полезна только с правильными архитектурными решениями

VGG-19 точнее VGG-16, но plain 100-layer network хуже 20-layer network. ResNet 152 точнее ResNet 50 - именно благодаря residual connections

Какую проблему решают residual connections в ResNet, и почему это не просто борьба с vanishing gradient?

Ключевые идеи

  • **LeNet-5** (1998): weight sharing через свёртки, первая production CNN для банковских чеков
  • **AlexNet** (2012): ReLU + Dropout + GPU = ImageNet revolution, top-5 error 15.3% vs 26.2% у конкурентов
  • **VGG** (2014): глубина через стеки 3x3 фильтров, 7.3% top-5 error, идеал для transfer learning
  • **ResNet** (2015): residual connections F(x)+x, 152 слоя, 3.57% error - лучше человека (5%)

Связанные темы

Темы, которые опираются на CNN-архитектуры или расширяют их:

  • Признаки: SIFT, SURF, ORB — Свёртка, pooling и обратное распространение - предпосылка для понимания дизайна архитектур
  • Современные архитектуры — EfficientNet, MobileNet и ConvNeXt продолжают линию от AlexNet через VGG к ResNet
  • Object Detection: YOLO, SSD — Классификационные CNN служат backbone-ом для детекторов объектов

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

  • Почему VGG-16 (138M параметров) хуже ResNet-50 (25M параметров) при большем числе весов?
  • Как BatchNormalization изменила тренировку глубоких CNN и почему ResNet не мог обойтись без неё?
  • Почему degradation problem (глубокие plain nets хуже мелких) не является следствием overfitting - и что это говорит об оптимизации?

Связанные уроки

  • cv-03 — Свёртки и основы признаков предшествуют дизайну архитектур
  • cv-05 — Современные архитектуры и ViT расширяют CNN механизмом attention
  • dl-04 — Свёрточные сети глубже разобраны в курсе DL
  • ml-29-cnn — Те же принципы CNN в классическом ML-курсе
  • ml-38-image-classification — LeNet -> ResNet напрямую применяются для image classification
  • dl-01
Image Classification: CNNs

0

1

Войти