Представим, что нужно оптимизировать cost function, которая выглядит как-то так:
Запускаем градиентный спуск и видим какую-то такую картину:
Видно, что градиентный спуск выполняет слишком много шагов, при этом в вертикальном направлении шаг получается слишком размашистым. Этот размашистый шаг замедляет спуск и не позволяет увеличить величину шага \(\alpha\), потому что если увеличить значение \(\alpha\), то картина станет такой:
Получается, что для оптимальной работы спуска в вертикальном направление скорость должна быть ниже, чем в горизонтальном. Для этого можно воспользоваться формулой exponential wighted averages и на кажом шаге \(t\) считать производные для параметров как:
\[ \begin{aligned} V_{dw} &= \beta V_{dw} + (1-\beta)\frac{\partial\mathcal{L}}{\partial w} \\ V_{db} &= \beta V_{db} + (1-\beta)\frac{\partial\mathcal{L}}{\partial b} \end{aligned} \]и обновлять параметры не при помощи значения производной, а при помощи вычисленных \(V_{dw}\) и \(V_{db}\):
\[ \begin{aligned} w &:= w - \alpha V_{dw}\\ b &:= b - \alpha V_{db} \end{aligned} \]При таком обновлении параметров шаги градиентного спуска в вертикальном направлении уменьшатся, в горизонтальном — увеличатся, что приведет к более быстрому схождению.