К содержимому

Градиентный спуск: шаг против градиента

Как в учебнике

Пусть $L:\mathbb R^d\to\mathbb R$ — дифференцируемая целевая функция, $\theta_t$ — текущие параметры, а $\eta>0$ — выбранный размер шага. Одно обновление градиентного спуска задаётся формулой:

$$\theta_{t+1}:=\theta_t-\eta\nabla L(\theta_t).$$

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

При ненулевом градиенте производная функции вдоль направления $-\nabla L(\theta_t)$ равна $-\|\nabla L(\theta_t)\|_2^2<0$. Поэтому достаточно малый положительный шаг уменьшает цель. Длина конечного шага существенна: локальная гарантия не распространяется на произвольное $\eta$.

Для $L(\theta)=(\theta-2)^2$ производная равна $2(\theta-2)$. Из $\theta_0=0$ при $\eta=1/4$ следующий параметр равен 1, цель уменьшается с 4 до 1. При $\eta=2$ параметр равен 8, а цель — 36. Условия сходимости последовательности требуют отдельного анализа функции и выбора шагов.

Для рассматриваемого квадрата обновление можно записать через ошибку параметра: $\theta_{t+1}-2=(1-2\eta)(\theta_t-2)$. При постоянном $0<\eta<1$ модуль множителя меньше единицы, поэтому расстояние до 2 убывает геометрически. При $\eta=1$ ошибка меняет знак без уменьшения, а при $\eta>1$ ненулевая ошибка растёт по модулю. Эти выводы относятся именно к данному квадрату.

Определения и обозначения: Mathematics for Machine Learning.

Связанные понятия: Градиент: вектор локальных изменений, Минимум функции: наименьшее достигнутое значение.

На пальцах

Спуск по склону начинается с местного наклона: шаг направлен против градиента. В новой точке наклон определяется заново, поэтому старая стрелка не годится на весь маршрут. Перемещение зависит и от наклона, и от размера шага; слишком широкий прыжок способен перенести путь через низину на более высокий склон. Направление было верным, подвела длина прыжка — бодрая походка ещё не доказывает приближения к цели.

Пример

Учебная цель — $(\theta-2)^2$. Сначала показаны два коротких шага с $\eta=1/4$, затем отдельно — большой шаг из исходной точки.

Градиентный спуск: шаг против градиента

Старт

В точке 0 градиент равен −4, цель равна 4.

Шаг 1 из 4: Старт

Все шаги текстом
  1. Старт

    В точке 0 градиент равен −4, цель равна 4.

    θ; градиент; цель
    0текущий−4текущий4
  2. Первое обновление

    Вычитание четверти градиента даёт параметр 1.

    θ; градиент; цель
    1текущий−2текущий1включён
  3. Второе обновление

    Новый градиент уже −2. Следующий параметр равен 1.5.

    θ; градиент; цель
    1.5текущий−1текущий0.25включён
  4. Слишком большой шаг

    Исходная точка снова 0. Размер шага 2 даёт параметр 8 и цель 36.

    θ; размер шага; цель
    8исключён2текущий36исключён

При $\eta=1/4$ множитель ошибки равен $1/2$. Начальное отклонение $-2$ превращается в $-1$, затем в $-0.5$; значения цели соответственно равны 4, 1 и 0.25. При большом шаге $\eta=2$ множитель равен $-3$: отклонение меняет сторону и утраивается. Поэтому конечное значение 36 объясняется самим правилом обновления. Знак минус перед градиентом сохраняется в обоих опытах и сам по себе от разлёта не защищает.

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

Авторский текст этой бесплатной статьи опубликован по лицензии CC BY-NC-ND 4.0.

Предыдущая / следующая

Предыдущая
Градиент: вектор локальных изменений
Следующая
Интеграл Римана: накопление вкладов со знаком
  • Натуральные числа: счёт отдельных объектов

    Какие значения подходят для счёта и почему включение нуля нужно оговаривать.

    Читать статью
    Математика
  • Целые числа: счёт по обе стороны нуля

    Положительные и отрицательные целые, ноль и граница целочисленного деления.

    Читать статью
    Математика
  • Рациональные числа: отношение целых

    Число как отношение целых: равные дроби и обязательный ненулевой знаменатель.

    Читать статью
    Математика