Какие способы регуляризации нейронных сетей ты знаешь?
Что проверяют
Отличаете ли вы перечисление приёмов от понимания, зачем каждый нужен и что он делает с обучением. Вопрос звучит как список, но интервьюер ждёт связи с диагнозом: сеть переобучается, и вот чем это лечится. Следом почти всегда спрашивают, как вы поняли, что регуляризация нужна, и как подбирали её силу.
Как отвечать
Сгруппируйте по механизму:
- штраф на веса: L2 тянет веса к нулю и сглаживает модель, L1 обнуляет часть весов и даёт разреженность. В связке с Adam правильный вариант это
AdamW, где weight decay отделён от градиента, типичные значения от 0.01 до 0.1; - шум в сети:
nn.Dropout(p)при обучении зануляет активации и делит оставшиеся на 1 минус p, вmodel.eval()отключается. В трансформерах обычно 0.1, в свёрточных сетях его почти вытеснили stochastic depth и аугментации; - работа с целями: label smoothing через
nn.CrossEntropyLoss(label_smoothing=0.1)мешает модели становиться слишком уверенной; - работа с данными: аугментации (RandAugment, mixup, CutMix для картинок, свои приёмы для текста и таблиц) и просто больше размеченных примеров, что почти всегда сильнее любого штрафа;
- процесс обучения: ранняя остановка по отдельной валидации с patience, усреднение весов (EMA, SWA), ансамбли;
- ёмкость: меньше параметров, а при дообучении больших моделей заморозка слоёв и LoRA, которая ограничивает число обучаемых весов.
Про нормализации скажите аккуратно: BatchNorm и LayerNorm нужны ради устойчивого обучения, регуляризующий эффект у BatchNorm побочный и берётся из шума батча, поэтому называть её способом борьбы с переобучением можно только с оговоркой.
Закончите порядком действий: сначала смотрите кривые обучения и валидации, и только увидев расхождение, добавляете регуляризацию по одному приёму за раз.
Где спотыкаются
Называют список из статьи, включая BatchNorm и клиппинг градиентов, хотя второй про устойчивость, а не про обобщение.
Забывают переключать режимы: замер на валидации с включённым dropout даёт заниженную метрику и часы поиска несуществующего бага.
Подбирают силу регуляризации по тестовой выборке. Тест после этого перестаёт быть честной оценкой, и на проде число оказывается другим.