AutoRL
Evolving Rewards to Automate Reinforcement Learning
Abstract
報酬のチューニングをハイパパラメータ最適化として捉え,進化的アルゴリズムにより複数の RL を同時に訓練し,最適な報酬関数を発見する手法.
背景
強化学習では,報酬設計の質により解の質が大きく異なる. この報酬設計は人手による固定的・経験的なものである.この報酬設計を自動化することは性能向上と人手削減の両方につながる.
報酬設計は難しい!
報酬ハッキング:報酬の与え方によってはズルい達成の仕方を始めることがある.
- 目的:ゴールまで歩いて辿り着くロボットの訓練
- 報酬:前に進めば報酬
- ズル:匍匐前進する・前周りする
遠すぎる報酬:エージェントが報酬を得られない状況が続くと,学習が進行しない
- 目的:マリオでゴールする
- 報酬:ゴールの側に触れると+100 点
- 結果:ゴールできずにうろちょろする(報酬はずっと 0)
これらの問題を解決する報酬設計は困難である.
筆者らの問題提起:
- 報酬は自動設計できないだろうか
- すでに調整した報酬があっても,よりよいパラメータ調整ができないだろうか
関連研究
報酬設計の研究
手法 | 詳細 |
---|---|
報酬シェーピング | 補助報酬を追加する |
カリキュラム学習 | タスクの難易度を段階的にあげる |
ブートストラップ | 学習を早めるための簡易ポリシーを活用 |
逆強化学習 | エリートの行動から報酬関数を学ぶ |
→ これらは人間による設定やデモンストレーションが必要(=経験則に基づく)
提案手法
point: ポリシーを外部(達成度)から評価する
報酬の良し悪しだけでなく,最終的な達成度からポリシーの良し悪しを評価したい.
RL 内部では報酬関数から学習を進める.達成度から外部評価を行い,報酬関数を探索する.
フローチャート
- 報酬パラメータ θ を n 個サンプリング,それぞれの θ で RL を訓練
- 訓練後のポリシーを達成度から外部評価,良さを J として保存
- θ,J を保存
- Gaussian Process Bandits で θ を選択
- 新しい θ で訓練
- 繰り返して最適な θ を選択
θ って?報酬設計の探索空間は?
- Achievement:例えば移動距離(速く進む)
- Cost:エネルギー消費や関節の使用
- Impact:地面との衝撃の大きさ
- Survival:生存時間ボーナス
この場合の報酬設計:
\[R(\theta; s, a) = \theta_1 \cdot \text{Achievement}(s,a) - \theta_2 \cdot \text{Cost}(s,a) - \theta_3 \cdot \text{Impact}(s,a) + \theta_4 \cdot \text{Survival}(s,a)\]実験
環境
- Ant(前に進む)
- Walker2D
- HumanoidStandup
- Humanoid(高く立つ)
強化学習アルゴリズム
SAC(Soft Actor-Critic) PPO(Proximal Policy Optimization)
評価概要
報酬そのものの高さと,達成度からの評価を比較
結果
- 達成度は SAC+AutoRL により HP(ハイパラメータチューニング)の最大 489%上昇
学習の速さに関しては?
AutoRL は収束が遅いことがあるが,最終的には局所解を脱出してより高性能に到達する.
多目的とのつながりは?
単目的最適化の学習の進みやすさを買っている.多目的にはそんなに触れない.
読んだ感想
報酬の自動チューニングは素晴らしい取り組みだが,結局,線型結合の重み探索なので想像の域は超えなかった.
ロボット制御においては「人間らしく(=報酬ハッキングをせずに)」動くことが重要.
スケジューリング活用では報酬空間を考える必要があり,そこは手間として残る.