Оптимизация обучения

Gradient Descent

Градиентный спуск

актуальноТекущий рабочий стандарт

Итеративный шаг против градиента функции потерь — базовый алгоритм обучения.

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

Ключевые тезисы

  • Полный батч даёт точный градиент, но одну итерацию на проход по данным.
  • Шаг обучения определяет, сойдётся процесс или разойдётся.
  • В невыпуклом ландшафте находит локальный минимум — и этого обычно достаточно.

Подробный разбор

3 подтем — раскройте любую, чтобы увидеть объяснение, формулы, примеры и интерактивные графики.

1

Идея и три способа минимизировать функцию

Перебор, аналитика, численный спуск — и почему в ML выбирают третье.

Обучение модели — это поиск параметров, минимизирующих функцию ошибки. Способов три: перебрать значения (невозможно при ), решить аналитически (не всегда существует) или спускаться численно.

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

Аналогия: вы стоите в тумане на склоне и хотите спуститься. Видите только уклон под ногами — идёте в сторону наибольшего спуска, делаете шаг, снова смотрите. Размер шага и есть learning rate.

-6-226100204060wL(w)минимум
шаг обучения η0.20
текущий x1.767
f(x)1.054
градиент-0.467
статусидёт
Слишком малое η — сотни шагов; слишком большое — перелёт и расходимость. Попробуйте η = 1.05
2

Вывод градиента для MSE

Полный расчёт, который лежит в основе обучения линейной регрессии.

Обозначения
  • истинное значение целевой переменной
  • объект: вектор признаков
  • веса модели — то, что подбирается при обучении
  • число объектов в выборке
  • функция потерь — то, что минимизируется при обучении
  • суммирование по всем перечисленным элементам
  • транспонирование: строка вместо столбца
Обозначения
  • истинное значение целевой переменной
  • объект: вектор признаков
  • веса модели — то, что подбирается при обучении
  • число объектов в выборке
  • функция потерь — то, что минимизируется при обучении
  • суммирование по всем перечисленным элементам
  • частная производная — чувствительность к одному аргументу
Производная сложной функции: внешняя — квадрат, внутренняя — линейная по
Обозначения
  • истинное значение целевой переменной
  • число объектов в выборке
  • функция потерь — то, что минимизируется при обучении
  • градиент: вектор частных производных
  • транспонирование: строка вместо столбца
Векторная запись: одно матричное умножение вместо цикла
Зарплата по стажу и часам

Признаки , текущие веса дают предсказание 60 000 при факте 75 000. Ошибка умножается на каждый признак: вес при стаже сдвигается сильнее, если стаж у объекта большой.

3

Learning rate: главный гиперпараметр

Три режима поведения и как их распознать по кривой обучения.

Симптом на кривой потерьДиагнозДействие
падает очень медленно, почти прямаяη слишком малоувеличить в 3–10 раз
падает, потом скачет вокруг уровняη великовато для финальной стадиидобавить расписание затухания
растёт или уходит в NaNη слишком великоуменьшить на порядок, добавить warmup
На практике

Практика: запускайте короткий «LR range test» — обучение с экспоненциально растущим шагом. Точка, где потери начинают расти, задаёт верхнюю границу; берут примерно вдесятеро меньше.

Связанные темы

Оптимизаторы · Градиенты и производные

Optimization85%

Оптимизация · Основы

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

Optimizers85%

Оптимизаторы · Глубокое обучение

Правила обновления весов по градиенту: от чистого SGD до адаптивных методов.

SGD85%

Стохастический градиентный спуск · Оптимизация обучения

Градиент оценивается по мини-батчу: быстрее, шумнее и, как оказалось, полезнее для обобщения.

Momentum85%

Момент · Оптимизация обучения

Накопление экспоненциального среднего градиентов — движение по инерции сквозь колебания.

Adam85%

Adam · Оптимизация обучения

Адаптивный метод: хранит средние градиента и его квадрата, подбирая шаг для каждого параметра.

AdamW85%

AdamW · Оптимизация обучения

Adam с корректно отделённым weight decay — регуляризация применяется к весам, а не к градиенту.

RMSProp85%

RMSProp · Оптимизация обучения

Нормирует шаг на скользящее среднее квадратов градиента, выравнивая масштаб обновлений.

Learning Rate Scheduling85%

Расписание скорости обучения · Оптимизация обучения

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

Batch size85%

Размер батча · Оптимизация обучения

Число объектов на одно обновление весов: влияет на скорость, память и качество обобщения.

Calculus80%

Математический анализ · Основы

Производные показывают, как изменится ошибка при малом изменении параметра. Именно это делает возможным градиентное обучение.

Gradient80%

Градиент · Математический справочник

Вектор частных производных, указывающий направление наибыстрейшего роста функции.

Hessian80%

Гессиан · Математический справочник

Матрица вторых производных, описывающая локальную кривизну функции.

Backpropagation80%

Обратное распространение ошибки · Глубокое обучение

Эффективное вычисление градиентов по всем параметрам сети за один обратный проход с помощью правила цепочки.

Numerical Methods80%

Численные методы · Основы

Компьютер считает приближённо. Понимание точности float, устойчивости и обусловленности спасает от NaN и «необъяснимых» расхождений.