Адаптивный градиентный спуск
Автор: Егор Галай • Май 20, 2023 • Доклад • 535 Слов (3 Страниц) • 140 Просмотры
Градиентный спуск — широко используемый алгоритм оптимизации в машинном обучении. Он включает в себя итеративную настройку параметров модели для минимизации функции стоимости. Однако традиционный градиентный спуск имеет некоторые ограничения, такие как требование фиксированной скорости обучения и чувствительность к масштабированию входных функций.
Адаптивный градиентный спуск (Adaptive Gradient Descent) является одним из вариантов градиентного спуска, который адаптивно регулирует скорость обучения для каждого параметра в процессе обучения.
Алгорит адаптивного градиентного спуска основан на той идее, что какие-то отдельные признаки входных данных будут больше влиять на ошибку, чем другие. Соответственно, алгоритм заключается в том, что под каждый весовой коэффициент вводится своя скорость обучения, и эта скорость обучения регулируется на каждой итерации. Adagrad (Adaptive Gradient) - это адаптивный метод градиентного спуска, который автоматически адаптирует скорость обучения (learning rate) для каждого параметра в нейронной сети на основе его исторических градиентов.
,[pic 1]
где gj - вычисляемая адаптивная скорость обучения.
Чаще всего адаптивная скорость обучения вычисляется на основе введения эвристики – если признак часто вносит значительные изменения в градиент, его скорость обучения надо уменьшить. Это правило подобрали, наблюдая за реальными данными, - строгой причинно-следственной связи тут нет, и для каких-то данных это модет быть не так.
Чтобы вычислить скорость обучения, общая скорость обучения α(гиперпараметр) делится на корень из суммы квадратов всех градиентов для этого признака до текущей итерации t:
[pic 2]
Чтобы избежать деления на ноль, к этой сумме добавляется гиперпараметр сглаживания ϵ, обычно его принимают очень маленьким числом, порядка 10-8. Таким, образом, если градиент для какого-то признака оказывается маленьким, то это признак не влияет или слабо влияет на определение итогового направления градиента. Соответственно, для него хорошо бы скорость обучения иметь побольше – вдруг его влияние будет определяющим. С другой стороны, если какой-то признак постоянно очень сильно меняет градиент, сумма в знаменателе будет накапливаться и его скорость обучения будет падать.
...