Градиент-клиппинг и параметры PPO: управление стабильностью обучения
Два ключевых параметра, которые определяют стабильность и эффективность обучения: max_norm для контроля градиентов и clip_param для ограничения изменений политики в PPO.
Что это такое?
Это пороговое значение для обрезки (clipping) нормы градиентов во время обучения нейросети. Градиент-клиппинг используется для предотвращения "взрыва градиентов" (exploding gradients).
При выполнении операции torch.nn.utils.clip_grad_norm_(policy.parameters(), max_norm=max_norm)градиенты нейросети будут нормализованы таким образом, чтобы их суммарная норма не превышала указанное значение max_norm.
Как именно работает max_norm?
Если суммарная L2-норма (квадратный корень из суммы квадратов градиентов всех параметров) превышает указанное значение, происходит масштабирование градиентов:
g ← g × (max_norm / ||g||₂)
Это гарантирует, что величина шага оптимизации будет ограничена, стабилизируя процесс обучения.
Эффект от изменения max_norm
Уменьшение max_norm
(например, с 0.5 до 0.3)
- • Сильнее ограничивает градиенты
- • Может повысить стабильность обучения
- • Но может снизить скорость сходимости
Увеличение max_norm
(например, с 0.5 до 1.0)
- • Позволяет градиентам быть больше по величине
- • Может увеличить скорость сходимости
- • Но повышает риск взрывных градиентов
Как управлять max_norm
- Начинайте с разумного дефолтного значения (0.5 — хороший ориентир)
- Если видите частые NaN, нестабильные или скачкообразные loss-функции, уменьшите значение
- Если сходимость очень медленная, а тренировки стабильны, попробуйте увеличить значение
Типичные значения для практического использования: 0.1 ≤ max_norm ≤ 2.0
② clip_param (PPO policy clipping)
Что это такое?
Это параметр PPO-алгоритма (Proximal Policy Optimization), ограничивающий степень изменения политики за одну итерацию обучения. PPO использует clip-функцию для того, чтобы изменения политики происходили постепенно, а не резко.
Формула потерь PPO выглядит так:
L^PPO(θ) = E[min(r_t(θ)A_t, clip(r_t(θ), 1-ε, 1+ε)A_t)]
Здесь r_t(θ) — отношение новой вероятности действия к старой, A_t — преимущество (advantage), ε — это и есть clip_param.
Как именно работает clip_param?
clip_param ограничивает отношение новой вероятности действия к старой вероятности (r_t). Если новая политика пытается изменить вероятность больше чем на ± clip_param, изменения будут игнорироваться. Таким образом, новые шаги оптимизации "остаются" в доверительной области, не удаляясь слишком далеко от старой политики.
Эффект от изменения clip_param
Уменьшение clip_param
(например, с 0.1 до 0.05)
- • Ограничивает изменения политики сильнее
- • Повышает стабильность обучения
- • Может замедлить скорость обучения
Увеличение clip_param
(например, с 0.1 до 0.2)
- • Позволяет политике изменяться сильнее
- • Ускоряет обучение
- • Увеличивает риск нестабильности
Как управлять clip_param
- Значение 0.1 — золотой стандарт PPO
- Если агент слишком медленно адаптируется, а потери стабильны — можно увеличить (0.15–0.2)
- Если поведение агента нестабильно, сильно скачет performance — уменьшите значение (0.05–0.08)
Типичные значения на практике: 0.05 ≤ clip_param ≤ 0.3
Сравнительная таблица параметров
| Параметр | Что контролирует? | Риск при большом значении | Риск при малом значении | Обычный диапазон |
|---|---|---|---|---|
| max_norm | Норма градиентов (скорость обучения) | Взрыв градиентов, NaN, нестабильность | Медленная сходимость, недостаточная скорость | 0.1–2.0 |
| clip_param | Изменение политики PPO за одну итерацию | Нестабильность политики, скачки performance | Слишком медленное улучшение | 0.05–0.3 |
Итого: краткие рекомендации
- Если ваша модель страдает от нестабильности и внезапных скачков, сосредоточьтесь сначала на снижении этих параметров
- Если модель стабильна, но прогресс медленный — можно постепенно увеличивать значения и смотреть на результат
- Никогда не меняйте параметры слишком резко (меняйте постепенно на ±10–20% от текущего значения)
Таким образом:
- • max_norm управляет стабильностью процесса оптимизации (градиентами)
- • clip_param управляет стабильностью политики в PPO (изменениями вероятностей действий)
Управляя этими двумя параметрами в тандеме, вы получаете контроль над качеством и стабильностью обучения, а также балансируете между скоростью адаптации и риском нестабильности.