Сглаживание направления и масштабирование координат
Momentum хранит историю gradients. Здесь используем EMA-вариант mₖ=βmₖ₋₁+(1−β)gₖ, updateθ←θ−ηmₖ,β=.9,m₀=0. Встречается и вариант m←βm+g: численно это другое соглашение об effective learning rate. Не смешивайте их в сравнении.
При g₁=[4,6] первый EMA равен[.4,.6], а шаг сη=.1 приводит[2,1]в[1.96,.94]. История накапливается между шагами, но reset обнуляет её. Momentum может сглаживать знакопеременные составляющие и усиливать устойчивое направление; он также способен перелетать минимум.
RMSProp хранит второй момент vₖ=βvₖ₋₁+(1−β)gₖ², затем масштабирует каждую координату:
В нашей версии β=.9,ε=1e−8, без bias correction. Для g₁=[4,6] получаем v₁=[1.6,3.6]; две величины шага почти одинаковы:η/√.1≈.316228. Новыйθ≈[1.683772,.683772]. Это адаптация масштаба, а не вычисление полного обратного Hessian. M06 объясняет связь с Adam; конкретные соглашения здесь объявлены явно.
Эксперимент. На вытянутой квадратике сравните GD,Momentum,RMSProp при одном η. Двигайте курсор и смотрите не только путь, но и state m/v. Если после reset состояние не обнулилось, сравнение некорректно.
Граница. v есть среднее квадратов, а не дисперсия. Дисперсия потребовала бы вычесть квадрат среднего. Добавка epsilon в знаменателе предотвращает деление на0, но не решает все проблемы плохого шага или масштаба данных.