Learning rate — это гиперпараметр, который задаёт, насколько сильно модель меняет свои параметры на каждом шаге обучения. От него зависит, будет ли обучение идти к снижению ошибки или модель начнёт топтаться на месте, колебаться и пропускать хорошее решение.
Содержание статьи
Как работает learning rate
Learning rate определяет размер шага, с которым алгоритм обновляет веса модели во время оптимизации. Чем больше шаг, тем резче меняются параметры; чем меньше шаг, тем осторожнее идёт обучение.
Во время обучения модель делает прогноз, сравнивает его с правильным ответом и получает значение функции потерь. Затем алгоритм оптимизации пересчитывает параметры так, чтобы ошибка стала меньше. Learning rate ограничивает масштаб этого изменения.
Его часто называют скоростью обучения или размером шага. Обычно в формулах используют обозначение η. Смысл простой: модель не должна менять своё поведение слишком слабо, но и слишком резкая коррекция тоже вредна.
Хорошая аналогия — спуск с холма. Если идти слишком мелкими шагами, путь займёт много времени. Если бежать слишком быстро, легко проскочить нужную точку.
Почему скорость обучения так важна
Слишком маленький learning rate замедляет обучение, а слишком большой мешает модели сходиться. Подходящее значение помогает уменьшать ошибку стабильно и без лишних скачков.
При низкой скорости обучения модель обновляет веса слишком осторожно. Ошибка может уменьшаться, но очень медленно. В ряде случаев обучение затягивается настолько, что модель не успевает прийти к хорошему состоянию за разумное число эпох.
При высокой скорости обучения возникает другая проблема: алгоритм начинает перескакивать через область минимума функции потерь. Вместо плавного снижения ошибки появляются сильные колебания. Иногда обучение вообще расходится.
Это особенно заметно на графике потерь: вместо устойчивого движения вниз кривая дёргается или идёт вверх. Поэтому выбор learning rate напрямую влияет на качество и стабильность обучения.
Что происходит при слишком низком и слишком высоком learning rate
Низкий learning rate даёт медленные и безопасные обновления, высокий — быстрые, но рискованные. Оптимальное значение находится между этими крайностями.
Если упростить, возможны три сценария:
- Слишком низкий learning rate — модель учится медленно, долго снижает ошибку и может застрять в неудачном состоянии.
- Слишком высокий learning rate — обновления становятся грубыми, ошибка колеблется, а обучение теряет устойчивость.
- Подходящий learning rate — модель достаточно быстро движется к минимуму функции потерь и не перескакивает через него слишком часто.
На практике значение редко выбирают один раз и забывают о нём. По мере обучения требования меняются: в начале можно двигаться быстрее, ближе к сходимости — аккуратнее.
С чем связан learning rate: параметры и гиперпараметры
Learning rate относится к гиперпараметрам, а не к параметрам модели. Параметры модель учит сама, а гиперпараметры задаются до или во время обучения.
Параметры модели
Параметры — это внутренние значения, например веса нейросети, которые меняются в ходе обучения. Именно они определяют, как модель реагирует на входные данные.
После каждого шага оптимизации веса немного сдвигаются. Насколько именно — решает learning rate. Если модель уже предварительно обучена и её только дообучают, изменения обычно делают более осторожными, поэтому скорость обучения часто снижают.
Гиперпараметры
Гиперпараметры — это настройки процесса обучения и структуры модели, которые задаёт разработчик или система подбора. Learning rate — один из самых важных гиперпараметров.
Рядом с ним почти всегда рассматривают ещё как минимум два параметра обучения:
- Epoch — сколько раз модель проходит по всему обучающему набору данных.
- Batch size — размер пакета данных, после которого выполняется обновление весов.
Эти величины связаны между собой. Эпохи задают длительность обучения, batch size влияет на частоту обновлений, а learning rate определяет силу каждого обновления.
Как learning rate связан с оптимизацией
Learning rate управляет тем, как алгоритм оптимизации снижает функцию потерь. Без него нельзя задать темп, с которым модель приближается к сходимости.
Алгоритм оптимизации использует значение ошибки, чтобы понять, в какую сторону менять веса модели. Цель — уменьшать функцию потерь шаг за шагом. Когда дальнейшее обучение почти не улучшает результат, говорят, что модель достигла сходимости.
На каждом шаге модель частично пересматривает своё текущее состояние. Поэтому learning rate влияет не на абстрактную скорость, а на глубину каждой такой корректировки.
Градиентный спуск
Градиентный спуск — один из базовых методов оптимизации в машинном обучении. Он обновляет параметры модели так, чтобы двигаться в сторону уменьшения ошибки.
Градиент показывает направление наиболее быстрого роста функции потерь. Чтобы ошибку уменьшать, алгоритм идёт в обратную сторону. Learning rate задаёт длину этого шага.
Если шаг выбран удачно, модель последовательно приближается к минимуму. Если шаг слишком велик, движение становится резким. Если слишком мал — обучение тянется слишком долго.
Обновление весов через уменьшение ошибки в нейросетях связано с процедурой обратного распространения ошибки. Градиентный спуск — один из способов выполнить это обновление на практике.
Основные виды градиентного спуска
Разные варианты градиентного спуска отличаются тем, как часто и по каким данным обновляются веса. От этого зависит стабильность, скорость и чувствительность к learning rate.
| Метод | Как обновляет веса | Особенность |
| Batch gradient descent | После обработки всего набора данных | Стабильный, но медленный |
| Stochastic gradient descent, SGD | После одного примера | Быстрый, но менее устойчивый |
| Mini-batch gradient descent | После небольшого пакета данных | Компромисс между скоростью и стабильностью |
Именно mini-batch вариант чаще всего используют на практике. Он даёт достаточно частые обновления и не создаёт такой шум, как чистый SGD.
Как подобрать подходящий learning rate
Универсального значения learning rate нет. Его обычно подбирают экспериментально, наблюдая за тем, как меняется ошибка на обучении и валидации.
Один и тот же learning rate может вести себя по-разному в зависимости от архитектуры модели, данных, оптимизатора и других гиперпараметров. Поэтому подбор почти всегда включает несколько запусков.
Чаще всего используют такие подходы:
- grid search — перебор нескольких заранее выбранных значений;
- learning rate schedule — изменение скорости обучения по заданному правилу;
- adaptive learning rate — автоматическая подстройка в ходе оптимизации;
- hyperparameter optimization — общий подбор гиперпараметров с учётом их взаимного влияния.
Что такое decay и momentum
Decay уменьшает learning rate по мере обучения, а momentum помогает алгоритму сохранять направление движения. Эти механизмы часто используются вместе.
Decay нужен, когда в начале обучения модели полезны крупные шаги, а ближе к минимуму — более точные. Снижение learning rate по ходу тренировки помогает избежать резких перескоков около хорошего решения.
Momentum добавляет инерцию. Если градиент долго указывает в одну сторону, алгоритм продолжает двигаться увереннее. Это помогает проходить небольшие локальные провалы и не тормозить слишком рано.
Во многих библиотеках глубокого обучения эти настройки уже встроены в оптимизаторы. Но смысл остаётся тем же: decay замедляет шаг, momentum сглаживает траекторию.
Какие бывают расписания learning rate
Расписание learning rate — это правило, по которому скорость обучения меняется во время тренировки. Такой подход позволяет не держать одно и то же значение на всех этапах.
Постоянный learning rate
Постоянный learning rate не меняется в течение всего обучения. Это простой базовый вариант, с которым удобно сравнивать другие стратегии.
Он подходит для экспериментов и быстрых проверок, но не всегда даёт лучший результат на длинном обучении.
Time-based decay
Time-based decay уменьшает learning rate через заданное число эпох или на определённых этапах обучения. Скорость снижается постепенно, с опорой на текущее значение.
Подход нужен, когда в начале модели полезно учиться быстрее, а позже — точнее подстраивать веса.
Step decay
Step decay снижает learning rate ступенчато, например в несколько раз после заданного числа эпох. Это один из самых понятных и часто используемых режимов.
Модель некоторое время учится с одной скоростью, затем переключается на более осторожный шаг.
Exponential decay
Exponential decay уменьшает learning rate по экспоненциальному правилу. Снижение происходит плавнее, чем при резких ступенях, хотя логика у этих подходов похожа.
Polynomial decay
Polynomial decay изменяет learning rate по полиномиальной функции от текущей эпохи. Форма снижения зависит от степени этой функции.
Такой режим позволяет тоньше контролировать темп уменьшения скорости обучения.
Cyclical learning rate
Cyclical learning rate меняет скорость обучения в пределах заданного диапазона между минимумом и максимумом. Вместо постоянного снижения learning rate периодически растёт и снова падает.
В таких схемах используют линейные, косинусные и другие формы колебаний. Идея в том, чтобы алгоритм не застревал слишком рано и мог активнее исследовать пространство параметров.
Что такое adaptive learning rate
Adaptive learning rate — это подход, при котором скорость обучения подстраивается автоматически по ходу оптимизации. Причём изменения могут рассчитываться отдельно для разных параметров модели.
В отличие от расписаний, где правило задают заранее, здесь алгоритм реагирует на текущую динамику градиентов. Такой подход особенно популярен в вариантах SGD.
На практике часто встречаются следующие алгоритмы:
- AdaGrad — настраивает learning rate отдельно для каждого параметра, учитывая частоту признаков.
- RMSProp — использует скользящее среднее квадратов градиента и делает обновления устойчивее.
- Adam — сочетает идеи momentum и RMSProp, поэтому широко применяется при обучении нейросетей.
Эти методы не отменяют необходимость следить за learning rate полностью. Они лишь берут на себя часть настройки и меняют шаг более гибко, чем простое фиксированное значение.
Что такое hyperparameter optimization
Hyperparameter optimization — это подбор набора гиперпараметров, при котором модель показывает лучший результат в рамках выбранной задачи. Learning rate обычно рассматривают не отдельно, а вместе с batch size, числом эпох, типом оптимизатора и другими настройками.
Смысл в том, что параметры обучения влияют друг на друга. Значение learning rate, которое работает при одном размере пакета, может оказаться неудачным при другом. Поэтому автоматизированный подбор часто оценивает комбинации, а не отдельные числа.
Минус очевиден: чем больше пространство поиска, тем выше вычислительные затраты.
Как понять, что learning rate выбран неудачно
Неудачный learning rate обычно виден по поведению функции потерь и качеству модели на валидации. Признаки зависят от того, слишком низкое значение выбрано или слишком высокое.
- Если ошибка убывает очень медленно, learning rate может быть слишком маленьким.
- Если ошибка резко скачет или растёт, learning rate может быть слишком большим.
- Если обучение на тренировочных данных идёт, а качество на валидации ведёт себя нестабильно, нужно проверить learning rate вместе с другими гиперпараметрами.
- Если после снижения learning rate обучение становится ровнее, это часто подтверждает, что предыдущий шаг был слишком агрессивным.
Оценивать скорость обучения лучше не в отрыве от контекста, а вместе с кривыми потерь, выбором оптимизатора и стадией обучения.
Кратко: что нужно запомнить о learning rate
Learning rate — это настройка, которая задаёт силу обновления весов модели на каждом шаге обучения. Слишком маленькое значение замедляет сходимость, слишком большое мешает модели стабильно уменьшать ошибку.
Он относится к гиперпараметрам, тесно связан с градиентным спуском и почти всегда подбирается экспериментально. Для управления скоростью обучения используют фиксированные значения, расписания, adaptive-алгоритмы и общий подбор гиперпараметров.
Если свести всё к одной мысли, она проста: learning rate определяет, насколько быстро модель меняет своё понимание данных во время обучения.