Шедулинг скорости обучения (Learning Rate Scheduling)
Что такое Шедулинг скорости обучения (Learning Rate Scheduling)?
Методика динамической регулировки параметра скорости обучения (learning rate) в процессе тренировки нейронных сетей, направленная на оптимизацию сходимости и повышение качества модели.
- на ранних этапах быстро двигаться в пространстве параметров, «захватывая» перспективные направления;
- ближе к сходимости снижать скорость, чтобы точнее «прицеливаться» в оптимум и не «перепрыгнуть» его;
- избегать застревания в неглубоких локальных минимумах или плато.
Представьте, что вы ищете дорогу в незнакомом городе. В начале пути вы идёте быстро, охватывая большие участки, чтобы понять общую структуру района. По мере приближения к цели вы замедляетесь, внимательно смотрите по сторонам и сверяетесь с картой — иначе рискуете пройти мимо нужного дома. Шедулинг скорости обучения работает похоже: сначала «быстро исследуем», потом «медленно уточняем».
Исторический контекст
Идея варьировать скорость обучения возникла почти одновременно с развитием методов градиентного спуска для обучения нейросетей. В классических работах 1980–1990‑х годов уже обсуждались эвристики типа «уменьшать learning rate по мере обучения». В 2010‑е годы, с ростом популярности глубокого обучения, появились систематические подходы:
- step decay (ступенчатое уменьшение);
- exponential decay (экспоненциальное затухание);
- cosine annealing (косинусоидальное охлаждение);
- адаптивные методы (Adam, RMSprop, Adagrad), где скорость обучения подстраивается индивидуально для каждого параметра.
Важную роль сыграли работы таких исследователей, как Geoffrey Hinton, Yann LeCun, а также команды Google, Facebook и OpenAI, которые внедряли и тестировали эти техники в крупных моделях.
Смежные понятия и различия
- Фиксированная скорость обучения — противоположный подход: один и тот же learning rate на всём протяжении тренировки. Прост, но часто неоптимален.
- Адаптивные оптимизаторы (Adam, RMSprop) — частично решают ту же задачу, но делают это автоматически, на уровне обновления каждого веса. Шедулинг же задаёт глобальную стратегию для всего оптимизатора.
- Learning rate warm-up — кратковременный рост learning rate в начале обучения (вместо уменьшения). Иногда используется как дополнение к шедулингу.
Примеры использования
- В моделях трансформеров (BERT, GPT) часто применяют cosine annealing или linear warm-up + decay: сначала плавно повышают learning rate, затем постепенно снижают.
- В свёрточных сетях (ResNet, EfficientNet) популярен step decay: каждые N эпох скорость обучения уменьшается в K раз.
- Библиотеки PyTorch и TensorFlow предоставляют готовые классы для шедулинга (например,
torch.optim.lr_schedulerв PyTorch), где можно выбрать стратегии типаStepLR,ExponentialLR,CosineAnnealingLR. - В практике Kaggle и соревнований по ML шедулинг — стандартный приём для выжимания последних процентов качества из модели.
