Обусловленность и зигзаг

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

Градиентный спуск ведёт себя совершенно по-разному на округлой поверхности потерь и на вытянутой. Обусловленность измеряет эту вытянутость. Плохая обусловленность заставляет оптимизатор идти зигзагом: в одном направлении круто, в другом — полого.

Для квадратичной потери обусловленность определяется собственными значениями гессиана. Число обусловленности κ — это отношение наибольшей кривизны к наименьшей.

В пинболе с тесными боковыми бамперами и длинной узкой выходной дорожкой сильный удар заставляет шарик рикошетить из стороны в сторону, пока он лишь медленно продвигается вперёд. Плохая обусловленность делает то же самое с градиентным спуском: он скачет в крутом направлении и еле ползёт в пологом. Фигура ниже — точно такой автомат. Подвиньте κ, чтобы растянуть чашу, запустите спуск и понаблюдайте, как путь рикошетит поперёк узкого направления, еле продвигаясь вдоль длинного. (Пока оставьте β равным 0 — он выйдет на первый план в уроке про импульс.)

Где это встречается в MLОбусловленность — одна из причин, почему важна архитектура нейронной сети. Остаточные связи, слои нормализации, схемы инициализации и адаптивные оптимизаторы — всё это облегчает движение по поверхности потерь, меняя эффективную геометрию, которую «видит» обучение на основе градиентов.
▶ Обусловленность и зигзаг
← Расписания и прогревИмпульс →