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

Learning Rate Scheduling

Расписание скорости обучения

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

Направления: Глубокое обучение · Оптимизация

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

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

  • Cosine annealing с warmup — стандарт для .
  • Warmup спасает от расходимости на первых шагах при больших батчах.
  • ReduceLROnPlateau реагирует на остановку роста метрики.

Какую задачу решает

Одна и та же не может быть хорошей и в начале, и в конце. На старте нужны крупные шаги, чтобы быстро выйти в разумную область; ближе к минимуму крупный шаг заставляет прыгать вокруг него, не приближаясь. Расписание меняет по ходу обучения.

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

Как подобрать пиковую скорость

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

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

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

Обозначения
  • скорость обучения — длина шага оптимизатора
  • число π ≈ 3.14159
Cosine annealing — самое популярное расписание в глубоком обучении
  • Step decay — уменьшать в 10 раз на заданных эпохах: просто и предсказуемо.
  • Cosine — плавное затухание, стандарт для .
  • ReduceLROnPlateau — реагирует на остановку роста метрики, удобно, когда длительность обучения неизвестна.
  • One-cycle — рост, затем спад; часто даёт лучший результат за фиксированный бюджет.

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

На практике

Чем больше и глубже сеть, тем важнее warmup. Для это фактически обязательный элемент рецепта.

Где применяется

  • Обучение Warmup плюс косинус — часть стандартного рецепта, без него обучение нестабильно.
  • Ступенчатый или косинусный спад даёт заметный прирост на последних эпохах.
  • Маленькая пиковая скорость с коротким разогревом, чтобы не разрушить предобученные веса.
  • Большой требует и большей скорости, и более длинного разогрева.

Плюсы, минусы и альтернативы

Плюсы

  • Заметно улучшает финальное качество почти без затрат.
  • Разогрев устраняет расходимость на первых шагах.
  • Косинусный спад работает хорошо почти везде и требует одного параметра — длины обучения.

Минусы

  • Косинусное расписание нужно задавать под известное заранее число шагов.
  • Добавляет параметры: пиковая скорость, длина разогрева, минимальная скорость.
  • Досрочная остановка обучения с косинусом даёт модель в неудачной точке расписания.

Брать, если

  • Всегда при обучении — постоянная скорость почти всегда хуже.
  • Особенно при использовании и больших батчей.

Не брать, если

  • Число шагов заранее неизвестно и обучение может оборваться — берите расписание, не зависящее от длины.

Чем заменяют

Тема также относится к главам:Глубокое обучениеОбучение

Видеолекции

Тайм-кода именно на эту тему в записях нет. Но глава «Оптимизация обучения» разобрана в курсе целиком — с той оговоркой, что место в записи придётся искать самому.

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

Стабильность обучения нейросетей · Оптимизаторы · Подбор гиперпараметров

Normalization Layers85%

Слои нормализации · Глубокое обучение

BatchNorm, LayerNorm, RMSNorm: стабилизация распределения активаций, без которой глубокие сети почти не обучаются.

Gradient Clipping85%

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

Ограничение нормы градиента перед шагом оптимизатора — простейшая защита от расходимости обучения.

Mixed Precision85%

Смешанная точность · Оптимизация обучения

Обучение в fp16 или bf16 при накоплении в fp32: двукратная экономия памяти и заметное ускорение.

Backpropagation85%

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

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

Numerical Methods85%

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

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

Optimization85%

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

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

Optimizers85%

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

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

Gradient Descent85%

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

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

SGD85%

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

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

Momentum85%

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

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

Adam85%

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

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

AdamW85%

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

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

RMSProp85%

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

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

Batch size85%

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

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

Hyperparameter tuning80%

Настройка гиперпараметров · Практика ML

Поиск конфигурации модели по валидационной метрике — последний, а не первый шаг работы.

Grid Search80%

Поиск по сетке · Практика ML

Полный перебор всех комбинаций заданных значений гиперпараметров.

Random Search80%

Случайный поиск · Практика ML

Случайная выборка конфигураций из заданных распределений.

Bayesian Optimization80%

Байесовская оптимизация · Практика ML

Строит модель зависимости метрики от гиперпараметров и выбирает следующую точку осознанно.

Cross-validation80%

Кросс-валидация · Оценка моделей

Многократное разбиение выборки, дающее оценку качества вместе с её разбросом.

Кому эта тема нужна

Профильная компетенция для ролей: ML Engineer, CV-инженер, Исследователь, Инженер речи.

Усиливает профиль: NLP-инженер.

Проверить себя

Тема встречается в тесте по направлениям — ошибки приведут обратно на эту страницу.

Следующий шагПроверить себя: Глубокое обучениеТема встречается в этом тесте 1 раз. Ошибка приведёт обратно на эту страницу — с объяснением, что именно не сошлось.Перейти →

Глава «Оптимизация обучения» последний раз правилась . Нашли ошибку — напишите.