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

Кто не переобучал сеть — тот не умеет их обучать

Разбираем сеть без магии: нейрон, слои, обратное распространение ошибки. И намеренно доводим её до переобучения, чтобы увидеть, как это выглядит на графике.

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

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

🏢 Ситуация

Пятничный техтолк команды. Лена:

«Ты уже видел, что на таблицах бустинг сильнее нейросетей. Но впереди у нас картинки (модуль 17) и глубже в тексты — там нейросети безальтернативны. Сегодня разберём, как они устроены, без магии: нейрон, слои, backprop. Домашка — обучить сеть на PyTorch и переобучить её намеренно, чтобы увидеть, как это выглядит. Кто не переобучал сеть — тот не умеет их обучать.»

🎯 Ваша задача

  1. Понять устройство нейросети: нейрон, активации, слои, backpropagation.
  2. Обучить сеть на PyTorch: цикл обучения руками.
  3. Увидеть переобучение на кривых обучения и победить его.

📚 Теория

Нейрон и слои

Один нейрон = та самая линейная модель: выход = активация(w·x + b). Сеть — это слои нейронов: выходы одного слоя становятся входами следующего. Композиция линейных слоёв с нелинейными активациями между ними умеет приближать сколь угодно сложные функции.

Активации: без них стопка линейных слоёв схлопывается в одну линейную модель. Стандарт скрытых слоёв — ReLU max(0, x): простая, быстрая, не «затухает» как sigmoid. На выходе: sigmoid (бинарная классификация), softmax (мультикласс), ничего (регрессия).

Полносвязная сеть входы (признаки) скрытый слой + ReLU выход ← backprop: градиенты текут справа налево ЭКГ тренировки стоп здесь train val ↑ = переобучение эпохи →
Слева: forward-проход слева направо, градиенты backprop — справа налево. Справа: расхождение кривых train/val — сигнал остановиться.

Как сеть учится: backpropagation

Тот же градиентный спуск из модуля 4, но градиенты по миллионам весов считаются цепным правилом от выхода к входу — это и есть backprop. Один шаг обучения:

  1. Forward: прогоняем батч, получаем предсказания и loss.
  2. Backward: loss.backward() — PyTorch сам считает все градиенты (autograd).
  3. Шаг оптимизатора: optimizer.step() — обновляем веса; optimizer.zero_grad() — обнуляем градиенты (иначе накапливаются — баг №1 новичков).

Словарь тренировки

Кривые обучения — ЭКГ тренировки


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

  • Нейрон = линейная модель + активация; глубина + нелинейность = выразительность.
  • Цикл: forward → loss → backward → step → zero_grad.
  • Learning rate — гиперпараметр №1; кривые train/val — главный диагностический инструмент.
  • Dropout, weight decay, early stopping — стандартный набор против переобучения.

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

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

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

15 Поддержка тонет в тикетах 17 Брак на конвейере: компьютерное зрение

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