Обучение з Підкріпленням: PPO, SAC, DQN та Промислове Застосування
Більшість RL-проектів умирають не від неправильного алгоритму — вони умирають від неправильно спроектованого reward. Інженер пише reward = +1 за правильну дію, запускає навчання, через 10 мільйонів кроків агент знайшов спосіб збирати награду, не розв'язуючи задачу. Це називається reward hacking, головна біль промислового RL.
Чому RL Складніше, Ніж Supervised Learning
У supervised learning є датасет з правильними відповідями. У RL є скалярний сигнал "краще/гірше", який часто приходить з затримкою у сотні кроків. Агент самостійно досліджує простір та знаходить стратегію.
Наслідки: нестабільність навчання, висока чутливість до гіперпараметрів, повільна конвергенція. PPO на Atari сходиться за 10M кроків — години. На робот задачах з реальною фізикою — дні або тижні в симуляторі.
Вибір алгоритму за задачею.
| Задача | Алгоритм | Причина |
|---|---|---|
| Неперервне управління (робот, процеси) | SAC, TD3 | Sample efficiency, стабільність |
| Дискретні дії, ігри | PPO, DQN + Rainbow | Простота, добре вивчено |
| Multi-agent | MAPPO, QMIX | Кооперація/конкуренція |
| Offline RL (датасет без середовища) | CQL, IQL, TD3+BC | Навчання без середовища |
| RLHF (вирівнювання LLM) | PPO, GRPO | Інтеграція з reward model |
PPO: De-Facto Стандарт
PPO (Proximal Policy Optimization) — робоча лошадка RL. Використовується від ігор до RLHF. Основна ідея: обмежуємо обновлення політики через кліппірування ratio clip_range=0.2, що дає стабільність порівняно з vanilla policy gradient.
Типові проблеми при настройці PPO:
Entropy collapse. Агент занадто швидко стає детерміністичним, перестає досліджувати. Симптом: entropy coefficient падає до нуля, агент застрявв локальному оптимумі. Рішення: ent_coef=0.01–0.05, не знижувати нижче 0.001 під час навчання.
Value function розходиться. vf_loss_coef занадто високий, critic переучується на поточної політики. Симптом: explained_variance негативна. Лікування: vf_coef=0.5, gradient clipping max_grad_norm=0.5.
Неправильний n_steps. n_steps=2048 — дефолт для Stable-Baselines3. Для задач з довгим горизонтом (>500 кроків) потрібно збільшувати. Для швидких задач (10–50 кроків) — зменшувати до 256–512.
Основна бібліотека для швидкого старту — stable-baselines3 + sb3-contrib. Для research — tianshou або CleanRL (single-file implementations, легше читати та модифікувати).
SAC для Неперервного Управління
SAC (Soft Actor-Critic) додає максимізацію entropy — агент учиться бути і хорошим, і різноманітним. Це дає чудову sample efficiency та устойчивость до шуму.
На задачах управління технологічними процесами SAC зазвичай обходить PPO по конвергенції: потрібно менше взаємодій зі середовищем для досягнення тієї ж якості. Важливий параметр — target_entropy, зазвичай встановлюється автоматично, але для специфічних задач краще настроювати вручну.
Sim-to-Real: Від Симулятора до Реального Залізо
Навчати RL на реальному роботі — дорого та небезпечно. Стандартний підхід: навчання в симуляторі → трансфер на реальне пристрій. Основна проблема — reality gap: симулятор не воспроізводить реальну фізику, тертя, шум датчиків.
Domain randomization — головний інструмент для sim-to-real. Під час навчання випадково варіюємо параметри середовища: маса об'єктів ±30%, коефіцієнт тертя ±50%, затримка дій 0–100 мс, шум спостережень σ=0.01–0.1. Агент учиться робастності, real world стає лише ще однією варіацією.
Симулятори: MuJoCo (стандарт для робот), Isaac Gym / Isaac Lab від NVIDIA (GPU-accelerated, 10 000+ паралельних середовищ на одному GPU), PyBullet (безкоштовний, повільніший), Gazebo (ROS-інтеграція).
Кейс. Маніпулятор для сортування компонентів на PCB. Isaac Gym, 4096 паралельних середовищ на A100, PPO з domain randomization (випадкова маса, освітлення, позиція камери). 500M кроків за 18 годин. Після трансферу на реальний UR5: success rate 78% без додаткового fine-tuning. Після 2 годин fine-tuning на реальному роботі (10k кроків) — 94%.
RLHF: Навчання LLM з Людської Зворотної Інформації
RLHF став стандартом для вирівнювання мовних моделей після InstructGPT. Класична схема: supervised fine-tuning → reward model training → PPO.
Проблеми класичного RLHF через PPO: нестабільність (KL-дивергенція може взірватися), повільна конвергенція, складність у настройці. Тому популярність набирають альтернативи:
- DPO (Direct Preference Optimization) — обходить reward model повністю, учиться прямо на парах переваг. Простіше, стабільніше, але менш гнучко.
- GRPO (Group Relative Policy Optimization) — використовується у DeepSeek-R1, добре працює для reasoning задач.
- ORPO — об'єднує SFT та alignment в одну стадію навчання.
Бібліотека: trl від Hugging Face — стандарт для RLHF/DPO. Підтримує PPO, DPO, ORPO, GRPO з коробки. Працює з PEFT/LoRA для memory-efficient fine-tuning.
Процес Роботи
Правильно спроектований reward — 70% успіху проекту. Починаємо з reward engineering: детально описуємо бажану поведінку, формалізуємо у reward-функцію, перевіряємо на наявність ловушок (reward hacking scenarios). Тільки потім — вибір алгоритму та середовища.
Далі: настройка симулятора або середовища, перші експерименти з baseline, систематичний hyperparameter sweep через Optuna або Ray Tune, аналіз кривих навчання.
Терміни: proof of concept на стандартної задачі — 2–4 тижні. Production-система з кастомним середовищем та sim-to-real трансфером — 3–8 місяців. RLHF для LLM — 4–10 тижнів залежно від обсягу даних переваг.







