Обрезка градиента
Неустойчивость оптимизации
Нейросети моделируют сложные нелинейные зависимости, вследствие чего рельеф функции потерь может быть сложным и подверженным резким изменениям, что может приводить к неустойчивой оптимизации весов как показано на рисунке [1]:
Для стабилизации обучения приходится снижать шаг обучения, замедляя его. Хотелось бы уменьшать сдвиг не постоянно, а только в областях резкого изменения функции, что достигается методом обрезки градиента.
Обрезка градиента
Обрезка градиента (gradient clipping, [1]) - популярная процедура, повышающая стабильность и скорость обучения нейросетей. Поскольку при изменчивом ландшафте функции потерь могут возникать большие по норме градиенты, то перед каждым обновлением весов в методе стохастического градиентного спуска норма градиента сравнивается с некоторым порогом . Если норма меньше порога, то веса обновляются как обычно, а если больше - то норма градиента обрезается порогом перед обновлением весов:
Этот приём позволил существенно повысить стабильность и скорость настройки рекуррентных нейронных сетей, в которых из-за многократно повторяемых слоёв с одинаковыми весами проблема нестабильных градиентов стоит особенно остро.
Адаптивная обрезка градиента
Также можно использовать адаптивную обрезку градиента (adaptive gradient clipping, [2]):