Итеративный шаг против — базовый алгоритм обучения.
- новые веса после шага
- текущие веса
- скорость обучения: длина шага. Слишком большая — расходимость, слишком малая — вечное обучение
- градиент функции потерь — направление её наискорейшего роста; минус перед ним разворачивает шаг вниз
Ключевые тезисы
- Полный даёт точный , но одну итерацию на проход по данным.
- Шаг обучения определяет, сойдётся процесс или разойдётся.
- В невыпуклом ландшафте находит локальный минимум — и этого обычно достаточно.
Какую задачу решает
Обучение почти любой модели — это поиск минимума по параметрам. Аналитически он берётся только в редких случаях вроде ; в остальных приходится идти к минимуму итеративно. спуск делает это самым прямым способом: считает направление наискорейшего роста и шагает против него.
Вся конструкция держится на одном числе — длине шага. Слишком маленький шаг означает тысячи итераций до сходимости, слишком большой — перелёт через минимум и расходимость. Все более сложные , от до , решают именно эту проблему: как выбрать длину шага автоматически и по-разному для разных параметров.
Функция , старт . При : шаги 10 → 8 → 6.4 → … — плавная сходимость. При : 10 → −8 → 6.4 → −5.1 — колебания вокруг минимума, но амплитуда падает, сходимость есть. При : 10 → −12 → 14.4 — амплитуда растёт, процесс расходится. Граница здесь , где — кривизна функции. У кривизна разная в разных направлениях и меняется по ходу обучения — отсюда и вся индустрия адаптивных и расписаний.
Подробный разбор
Обучение модели — это поиск параметров, минимизирующих функцию ошибки. Способов три: перебрать значения (невозможно при ), решить аналитически (не всегда существует) или спускаться численно.
- скорость обучения — длина шага оптимизатора
- веса модели — то, что подбирается при обучении
- номер или количество: индекс шага, число соседей, кластеров или позиций
- функция потерь — то, что минимизируется при обучении
- градиент: вектор частных производных
Аналогия: вы стоите в тумане на склоне и хотите спуститься. Видите только уклон под ногами — идёте в сторону наибольшего спуска, делаете шаг, снова смотрите. Размер шага и есть .
- истинное значение целевой переменной
- объект: вектор признаков
- веса модели — то, что подбирается при обучении
- число объектов в выборке
- функция потерь — то, что минимизируется при обучении
- суммирование по всем перечисленным элементам
- транспонирование: строка вместо столбца
- истинное значение целевой переменной
- объект: вектор признаков
- веса модели — то, что подбирается при обучении
- число объектов в выборке
- функция потерь — то, что минимизируется при обучении
- суммирование по всем перечисленным элементам
- частная производная — чувствительность к одному аргументу
- истинное значение целевой переменной
- число объектов в выборке
- функция потерь — то, что минимизируется при обучении
- градиент: вектор частных производных
- транспонирование: строка вместо столбца
, текущие веса дают предсказание 60 000 при факте 75 000. Ошибка умножается на каждый : вес при стаже сдвигается сильнее, если стаж у объекта большой.
| Симптом на кривой потерь | Диагноз | Действие |
|---|---|---|
| падает очень медленно, почти прямая | η слишком мало | увеличить в 3–10 раз |
| падает, потом скачет вокруг уровня | η великовато для финальной стадии | добавить расписание затухания |
| растёт или уходит в NaN | η слишком велико | уменьшить на порядок, добавить warmup |
Практика: запускайте короткий «LR range test» — обучение с экспоненциально растущим шагом. Точка, где потери начинают расти, задаёт верхнюю границу; берут примерно вдесятеро меньше.
Где применяется
- Обучение Основа всего: любой — это надстройка над спуском.
- Линейные модели с и Lasso обучаются градиентными методами.
- Оптимизация входаВеса заморожены, обучается сам вход: , перенос стиля, инверсия .
- Общие задачи оптимизацииЛюбая дифференцируемая функция — от подбора физических параметров до моделей.
Плюсы, минусы и альтернативы
Плюсы
- Работает для любой дифференцируемой функции произвольной сложности.
- Память : не требует хранить вторых .
- Прозрачная механика — легко понять, что происходит, и отладить.
- Основа, поверх которой строится всё семейство современных .
Минусы
- Сходится к локальному минимуму, а не к глобальному.
- Крайне чувствителен к .
- Медленно движется в вытянутых оврагах — зигзагом вместо прямой.
- Полный по всей выборке слишком дорог на больших данных.
- Останавливается на плато, где почти нулевой.
Брать, если
- Функция дифференцируема, а параметров много.
- Нужно понять базовый механизм перед переходом к и его родне.
Не брать, если
- Функция недифференцируема или доступна как чёрный ящик — берите байесовскую оптимизацию.
- Задача и мала: аналитическое решение или метод Ньютона будут точнее и быстрее.
Чем заменяют
Видеолекции
Записи университетских курсов, где эта тема звучит. Ссылка открывает запись с той секунды, где о ней говорят, — искать по трёхчасовой лекции не нужно.
Связанные темы
Оптимизаторы · Градиенты и производные
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 и «необъяснимых» расхождений.
Всё, что названо в описании, разобрано здесь же или в соседней теме — переходы под каждым определением.
Градиент
частных : направление наискорейшего роста функции. Минимизируем — идём против него.
Разбор ниже: Идея и три способа минимизировать функциюСкорость обучения
Длина шага. Главный обучения: влияет сильнее, чем выбор .
Разбор ниже: Learning rate: главный гиперпараметрСходимость
Приближение к минимуму. Гарантирована для выпуклых функций при достаточно малом шаге; для — нет.
Разбор ниже: Вывод градиента для MSEЛокальный минимум
В высокой размерности их роль преувеличена: настоящая проблема — седловые точки и плато.
Разбор ниже: Вывод градиента для MSEПолный батч
по всей выборке: точный, но дорогой. Отсюда и переход к стохастическому варианту.
Разбор ниже: Идея и три способа минимизировать функциюСпрашивают на собеседовании: X5 Tech — Цены и промо, Северсталь — Оптимизация производства.
Глава «Оптимизация обучения» последний раз правилась . Нашли ошибку — напишите.