Ответ вслух Middle Инициализация и нормализация обновлено

Затухание и взрыв градиентов

Вопрос

Почему в глубоких сетях градиенты затухают или взрываются и какие есть средства против этого?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

По цепному правилу градиент по весам ранних слоёв это произведение якобианов всех последующих слоёв. Если типичный множитель меньше единицы (производная сигмоиды не больше 0.25, маленькие веса), произведение экспоненциально стремится к нулю, и ранние слои не учатся.

Что должно прозвучать в ответе

  • Градиент первого слоя это произведение множителей по всем слоям

  • Множители меньше 1 дают затухание, больше 1 взрыв

  • Средства: ReLU-подобные активации, инициализация He или Xavier

  • Нормализация и residual-связи

  • Gradient clipping против взрыва, в RNN гейты LSTM и GRU

Что могут спросить следом

  • Как по логам обучения понять, что градиенты затухают?
  • Почему в RNN проблема острее, чем в CNN?

Разбор

По цепному правилу градиент по весам ранних слоёв это произведение якобианов всех последующих слоёв. Если типичный множитель меньше единицы (производная сигмоиды не больше 0.25, маленькие веса), произведение экспоненциально стремится к нулю, и ранние слои не учатся. Если больше единицы, градиент взрывается, и появляются NaN. Средства: активации без насыщения вроде ReLU и GELU; инициализация He или Xavier, сохраняющая дисперсию сигнала; нормализация BatchNorm или LayerNorm; residual-связи, по которым градиент идёт напрямую; gradient clipping по норме против взрыва. В рекуррентных сетях одна и та же матрица умножается сотни раз по времени, поэтому проблема острее, её смягчают гейты LSTM и GRU. Диагностирую по нормам градиентов по слоям в логах.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме