Модуль 6: Как учатся нейросети. Backpropagation и оптимизация
Задача модуля: Вскрыть «чёрный ящик» обучения — самое важное для понимания.
Функция потерь (Loss) для нейросетей
Регрессия: MSE (средний квадрат ошибки) — штрафует большие отклонения сильнее. Классификация: Cross-Entropy — мера того, насколько предсказанное распределение вероятностей далеко от истинной метки (one-hot). Минимизируя cross-entropy, модель учится выдавать высокую вероятность правильного класса.
Метод обратного распространения ошибки (Backpropagation)
Идея: цепное правило (производная сложной функции) из матанализа. Ошибка на выходе «просачивается» назад по слоям: для каждого веса считаем, какой вклад он внёс в итоговую ошибку. Градиент loss по каждому весу получается перемножением градиентов по пути от выхода к этому весу. Так один проход вперёд и один назад дают градиенты по всем весам — без backprop обучение глубоких сетей было бы нереалистично.
Градиентный спуск и его вариации
Batch — шаг по всему датасету; SGD — по одному объекту (шумно, но часто быстрее выходит из плоских минимумов); Mini-batch — компромисс (типичный выбор). Размер батча влияет на скорость и стабильность. Momentum — накопление «инерции» градиента, сглаживание и ускорение сходимости. На практике чаще используют Adam, AdamW — адаптивный шаг по каждому параметру.
Проблемы обучения
Затухающий градиент (vanishing): в глубоких сетях с сигмоидом/tanh градиент на первых слоях становится очень маленьким, веса почти не обновляются. ReLU частично решает. Взрывающийся градиент (explosion): градиент растёт по мере распространения назад — веса «взрываются». Решения: clipping градиента, нормализация. Регуляризация: Dropout — случайное выключение нейронов на шаге обучения, чтобы сеть не полагалась на отдельные нейроны и меньше переобучалась.