Обрезка градиента

Как модели на самом деле обучаются — от обычного градиентного спуска до Adam

Обрезка градиента ограничивает, насколько большим может стать обновление. Если пакет порождает огромный градиент, обрезка уменьшает его масштаб ещё до шага оптимизатора.

Обрезка не исправляет ни целевую функцию, ни данные. Считайте её правилом безопасности: одному экстремальному пакету нельзя позволить забросить параметры куда-то на другой конец поверхности потерь.

Аналогия — ограничитель скорости лифта. Лифт может двигаться как обычно, но если он начинает разгоняться слишком сильно, ограничитель урезает скорость прежде, чем движение станет опасным. Обрезка градиента пропускает обычные градиенты и ограничивает опасные всплески. Фигура ниже показывает сам объект обрезки: подвигайте точку по чаше и понаблюдайте, как стрелка градиента вытягивается по мере того, как поверхность становится круче. Обрезка ограничивает длину этой стрелки величиной c, сохраняя при этом её направление.

Где это встречается в MLОбрезка градиента — простой инструмент устойчивости. Её часто сочетают с AdamW, прогревом и смешанной точностью, потому что в этих рецептах иначе случаются редкие, но разрушительные всплески градиента.
▶ Обрезка градиента
← Диагностика оптимизатораAdam против AdamW →