RMSprop (Root Mean Square Propagation) — это адаптивный алгоритм градиентного спуска, разработанный для стабилизации обучения на данных с сильно различающимися масштабами признаков. Основная идея RMSprop заключается в том, чтобы нормализовать шаг обновления весов с учетом среднего квадрата последних градиентов.
Формулы обновления:
[ E[g^2]t = E[g^2]{t-1} + (1 - ) g_t^2]
[ _{t+1} = _t - g_t]
где:
RMSprop эффективен при работе с рекуррентными нейронными сетями и проблемами, где градиенты могут быстро исчезать или взрываться.
Adagrad (Adaptive Gradient Algorithm) позволяет автоматически адаптировать скорость обучения для каждого параметра, увеличивая шаги для редких признаков и уменьшая для часто встречающихся.
Формулы обновления:
[ G_t = G_{t-1} + g_t^2]
[ _{t+1} = _t - g_t]
Особенности:
Adadelta решает проблему постоянного снижения шага, характерную для Adagrad, используя ограниченное окно накопления градиентов. Вместо хранения всех прошлых градиентов, алгоритм отслеживает только их экспоненциальное скользящее среднее.
Формулы:
[ E[g^2]t = E[g^2]{t-1} + (1-) g_t^2]
[ _t = - g_t]
[ _{t+1} = _t + _t]
Преимущества:
Adamax — расширение алгоритма Adam, основанное на использовании ( L_)-нормы для масштабирования градиентов. Это делает обновления более стабильными при больших градиентах.
Формулы:
[ m_t = 1 m{t-1} + (1-_1) g_t]
[ u_t = (2 u{t-1}, |g_t|)]
[ _{t+1} = _t - ]
где:
Adamax отличается устойчивостью к взрывам градиентов и часто применяется в глубоких сетях с большими батчами и высокими скоростями обучения.
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 — для глубоких и сложных сетей с высокой динамикой обновлений.