МОДУЛЬ 17 · Middle-track · 2.5 час

Четыре тысячи фото. С нуля не взлетит — и не надо

Контроль брака на конвейере: почему свёртка экономит миллионы весов и как дообучить готовую сеть вместо обучения с нуля на крошечном датасете.

Пройти модуль в симуляторе Все 23 урока

Первые два модуля бесплатны, без карты. Остальные — по подписке $20/мес.

🏢 Ситуация

Datacore открыла собственный фулфилмент-центр, и туда поставили камеры на линии упаковки. Операционный директор:

«Повреждённые коробки доезжают до клиентов — возвраты, негатив. Контролёр физически не успевает смотреть всё. Камеры снимают каждую коробку — можно ли автоматом ловить мятые и порванные?»

Лена:

«Бинарная классификация изображений: ок / брак. Датасет маленький — контролёры разметили всего 4 000 фото (из них 400 с браком). Ключевая техника здесь — transfer learning: не учить сеть с нуля, а дообучить предобученную. С нуля на 4 000 картинок не взлетит.»

🎯 Ваша задача

  1. Понять, почему для картинок нужны свёрточные сети (CNN).
  2. Освоить transfer learning: fine-tuning предобученной модели.
  3. Применить аугментации и правильно оценить модель при дисбалансе.

📚 Теория

Почему не полносвязная сеть

Фото 224×224×3 = 150 528 входов. Полносвязный слой на 1000 нейронов — 150 млн весов, и сеть должна отдельно выучить «мятый угол» в каждой точке кадра. Свёртка решает обе проблемы: маленький фильтр (например 3×3) скользит по всему изображению и ищет один и тот же паттерн везде (weight sharing).

Как устроена CNN

CNN: иерархия признаков от краёв к «мятости» фото коробки 224×224 фильтр 3×3 скользит по кадру карты признаков: края, углы глубже: текстуры, вмятины, разрывы pooling + голова (новый слой — наш) ok · 0.08 брак · 0.92 transfer learning: свёрточные слои берём предобученными на ImageNet, учим только голову → потом fine-tuning с малым LR
Свёртки ищут один и тот же паттерн по всему кадру и строят иерархию: края → текстуры → дефекты. Предобученный backbone уже умеет первые уровни.

Transfer learning — главный приём практического CV

Сети, предобученные на ImageNet (миллионы картинок), уже умеют видеть края, текстуры, формы. Берём предобученный backbone (ResNet, EfficientNet), а дальше два режима:

  1. Feature extraction: замораживаем backbone, учим только новую голову. Для крошечных датасетов.
  2. Fine-tuning: размораживаем часть/все слои и дообучаем с маленьким LR (10–100× меньше обычного), чтобы не разрушить предобученные веса.

Аугментации — бесплатные данные

Случайные повороты, отражения, яркость/контраст, кропы — из 4 000 фото делаем «бесконечный» поток вариаций. Правила: аугментации — только на train; выбирать реалистичные (коробка не бывает вверх ногами на конвейере? — вертикальный флип не нужен).


Что запомнить

  • Свёртки ищут один паттерн по всему кадру — поэтому CNN, а не полносвязные сети.
  • Маленький датасет → transfer learning: голова, потом fine-tuning с малым LR.
  • Аугментации — только train и только реалистичные.
  • Порог — из цены ошибок; проверяйте, куда смотрит модель (Grad-CAM).

Дальше в модуле: Практика

Открыть модуль →

Соседние уроки

16 Знакомство с нейросетями 18 Собеседование наоборот: ML System Design

Программа целиком — 23 урока