RMSprop, Adagrad, Adadelta, Adamax, Nadam

RMSprop (Root Mean Square Propagation) — это адаптивный алгоритм градиентного спуска, разработанный для стабилизации обучения на данных с сильно различающимися масштабами признаков. Основная идея RMSprop заключается в том, чтобы нормализовать шаг обновления весов с учетом среднего квадрата последних градиентов.

Формулы обновления:

[ E[g^2]t = E[g^2]{t-1} + (1 - ) g_t^2]

[ _{t+1} = _t - g_t]

где:

  • ( ) — скорость обучения,
  • ( ) — коэффициент сглаживания (обычно 0.9),
  • ( g_t ) — градиент на текущей итерации,
  • ( ) — малое число для предотвращения деления на ноль,
  • ( _t ) — параметры модели на шаге t.

RMSprop эффективен при работе с рекуррентными нейронными сетями и проблемами, где градиенты могут быстро исчезать или взрываться.


Adagrad

Adagrad (Adaptive Gradient Algorithm) позволяет автоматически адаптировать скорость обучения для каждого параметра, увеличивая шаги для редких признаков и уменьшая для часто встречающихся.

Формулы обновления:

[ G_t = G_{t-1} + g_t^2]

[ _{t+1} = _t - g_t]

Особенности:

  • Идеален для разреженных данных (например, текстовые данные или признаки с большим количеством нулей).
  • Основной недостаток — скорость обучения неуклонно уменьшается, что может привести к преждевременному прекращению обучения.

Adadelta

Adadelta решает проблему постоянного снижения шага, характерную для Adagrad, используя ограниченное окно накопления градиентов. Вместо хранения всех прошлых градиентов, алгоритм отслеживает только их экспоненциальное скользящее среднее.

Формулы:

[ E[g^2]t = E[g^2]{t-1} + (1-) g_t^2]

[ _t = - g_t]

[ _{t+1} = _t + _t]

Преимущества:

  • Не требует ручной настройки глобальной скорости обучения.
  • Сохраняет адаптивные свойства Adagrad, но с постоянным шагом на протяжении обучения.

Adamax

Adamax — расширение алгоритма Adam, основанное на использовании ( L_)-нормы для масштабирования градиентов. Это делает обновления более стабильными при больших градиентах.

Формулы:

[ m_t = 1 m{t-1} + (1-_1) g_t]

[ u_t = (2 u{t-1}, |g_t|)]

[ _{t+1} = _t - ]

где:

  • ( _1 ) и ( _2 ) — коэффициенты экспоненциального сглаживания,
  • ( m_t ) — сглаженное первое моментное значение,
  • ( u_t ) — максимальная величина градиентов в текущем окне.

Adamax отличается устойчивостью к взрывам градиентов и часто применяется в глубоких сетях с большими батчами и высокими скоростями обучения.


Nadam

Nadam (Nesterov-accelerated Adaptive Moment Estimation) сочетает в себе преимущества Adam и Nesterov momentum. Основное отличие — использование градиента, вычисленного в точке с будущим смещением, что улучшает скорость сходимости.

Формулы:

[ m_t = 1 m{t-1} + (1-_1) g_t]

[ v_t = 2 v{t-1} + (1-_2) g_t^2]

[ _t = , _t = ]

[ _{t+1} = _t - ( _1 _t + )]

Особенности:

  • Ускоряет сходимость за счет корректировки момента,
  • Улучшает устойчивость к колебаниям градиентов,
  • Эффективен для глубоких нейронных сетей, где традиционные оптимизаторы могут застревать в локальных минимумах.

Каждый из этих оптимизаторов реализован в Keras.js с простым интерфейсом для создания моделей. Основное различие между ними заключается в способе адаптации шага и учёте истории градиентов. Выбор подходящего алгоритма зависит от структуры данных, глубины сети и требований к скорости сходимости.

RMSprop и Adadelta удобны для рекуррентных сетей и нестабильных градиентов, Adagrad — для разреженных данных, Adamax и Nadam — для глубоких и сложных сетей с высокой динамикой обновлений.