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

Поэтому вы должны давать ту же задачу (такое же начальное состояние, ту же среду) агенту RL для периодической оценки. Во время обучения вы хотите, чтобы оценка периодической оценки менялась. Это означает, что в случае глубокого Q-обучения функция Q была достаточно изменена обновлениями сетевых параметров, чтобы новое наилучшее действие в данном состоянии имело наивысшее значение. Это означает, что обучение не застопорилось, агент меняет свою политику (в лучшую или в худшую сторону).

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

Я предлагаю найти скорость обучения, которая работает:
Шаг 1. Начиная с очень низкой скорости обучения, например. 1e-8
Шаг 2. Проведение нескольких шагов обучения, например 200 (включая шаг оптимизатора).
Шаг 3. Проверка того, были ли во время этих 200 шагов обучения какие-либо колебания в оценке. Если нет, увеличьте скорость обучения (в 10 раз) и перейдите к шагу 2.

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

Если вы не остановите свой эксперимент по определению скорости обучения на какой-то низкой скорости обучения, вы не сможете догадаться, глядя на изменение оценки, что политика сходится к оптимуму.

Если вы подозреваете, что скорость обучения может быть слишком высокой, проверьте предсказания сети. Если вы ожидаете, что значения функции Q будут в диапазоне ‹-1,1›, и вы видите предсказания типа 5429, вероятно, сеть разошлась, и вам следует начать обучение с нуля с более низкой скоростью обучения.

Выбирая самую низкую скорость обучения, которая регулярно вызывает изменения в политике во время обучения, вы выбираете скорость обучения, которая, скорее всего, приведет к сходимости сети к оптимуму (по крайней мере, локальному). Я предлагаю этот подход, если вы не видите улучшений в работе вашего агента RL, несмотря на длительное время обучения. Возможно, ваша скорость обучения слишком высока.

Ниже вы можете увидеть эксперимент, который я провожу для задачи RL, над которой я работаю.
Я начал с скорости обучения 1e-8. Затем я запускаю 160 шагов оптимизации.
Я не заметил никаких изменений в метрике eval. Затем я запускаю 160 шагов со скоростью обучения 1-e7, но без изменений. Затем я пробежал 160 шагов со скоростью обучения 1e-6 и заметил некоторые редкие изменения в метрике eval. Затем я пробежал 160 шагов со скоростью обучения 1e-5, и метрика eval часто менялась. Я проверил, находятся ли прогнозы в диапазоне, который я ожидал, они были. Поэтому я пришел к выводу, что это рабочая скорость обучения для этой задачи.