Вы подписаны на Машинное обучение доступно
Отлично! завершите оплату для полного доступа к Машинное обучение доступно
Снова приветствуем Вас! Вы успешно авторизовались
Успех! Аккаунт активирован, и Вы имеете полный доступ к контенту.
Импульс (Momentum)

Импульс (Momentum)

in

Импульс – это расширение алгоритма Оптимизации (Optimization) Градиентного спуска (Gradient Descent), которое позволяет функции поиска создавать инерцию в пространстве, преодолевать колебания шумных градиентов и двигаться по ровным участкам пространства с целью точку Локального минимума (Local Minima).

Виды алгоритмов оптимизации

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

Проблема с градиентным спуском заключается в том, что он может перемещаться по пространству поиска в задачах оптимизации, которые имеют большое количество кривизны или Шума (Noise), и застревает в плоских участках, где нет градиента.

Основная идея импульса в Машинном обучении (ML) – увеличить скорость обучения. Эта концепция – один из тех маленьких наворотов, которые, может, не так важны, но в действительности позволяют сэкономить время и значительно упрощают процесс.

Он в основном используется в Нейронных сетях (Neural Network), учитывая, что размер данных здесь провоцирует значительные временные затраты. Порой градиентный спуск может занять много времени, когда Датасет (Dataset) достаточно велик.

Плюсы:

  • Может использоваться для обработки шумных градиентов
  • Может работать с очень маленькими градиентами

Минусы:

  • Вносит дополнительную сложность в модель

Прежде чем мы начнем, вот небольшой пересмотр основ градиентного спуска. Мы будем обсуждать 2 типа методов обновления – Простое обновление импульса, Обновление импульса Нестерова.

Идея импульса заключается в том, чтобы подобрать именно такую величину шага (скорость обучения), чтобы целевая функция попала в точку локального минимума, а не перескочила ее.

Простое обновление импульса

Урок физики начался. Ну вот как это происходит.

Подумайте о потере как о американских горках, представьте, что она имеет потенциальную энергию PE, равную произведению массы, силы тяжести и высоты.

Когда градиент находится наверху, мы хотим, чтобы он шел вниз быстрее, а когда внизу, – чтобы он замедлялся и "поймал" точку минимума.

$$v_2 = mu * v_1 - LR * dw $$
$$v_2\space{}{–}\space{скорость}\space{новой}\space{эпохи,}$$
$$mu\space{}{–}\space{ммпульс,}$$
$$v_1\space{}{–}\space{скорость}\space{предыдущей}\space{эпохи,}$$
$$LR\space{}{–}\space{скорость}\space{обучения,}$$
$$dw\space{}{–}\space{изменение}\space{весов}$$

v – как бы обозначает скорость, которая инициализируется нулем (с вершины холма), mu – импульс. Думайте об этом как о коэффициенте трения, который будет противодействовать v, когда он "идет с горки". Обычно значение находится в диапазоне (0,1–0,9) и изначально принимается равным 0,9.

Эта переменная гасит энергию системы, позволяя v снова в нужный момент принять нулевое значение в точке минимума. Иногда мы меняем значение mu с 0,5 до 0,9 в течение нескольких эпох для дальнейшей оптимизации, что обеспечивает относительно небольшой прирост скорости системы.

Импульс Нестерова

Импульс Нестерова (Nesterov Momentum) – это дальний родственник обычного обновления импульса, но он довольно популярен из-за последовательности в получении минимумов и скорости, с которой это происходит.

Итак, основная концепция импульса Нестерова заключается в том, что, если вы знаете скорость и направление объекта, вы можете предсказать его местоположение во времени T.

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

Скажем, текущий вектор в позиции x, скорость mu * v. Чтобы предсказать, где эта точка окажется во времени t (следующий шаг), используем уравнение x + mu * v. Мы можем использовать это как прогноз для функции и отрегулировать движение градиента, чтобы занять правильное положение.

Автор оригинальной статьи: Abhinav Mahapatra