用語集 · 強化学習
強化学習
別名:Reinforcement learning、RL
試行錯誤でプログラムを学習させる方法です。行動して報酬というスコアを受け取り、より高いスコアが得られる行動を少しずつ学んでいきます。
強化学習(RL)は、ラベルのついた例ではなく経験から学ぶ機械学習の一分野です。誰も学習者に正解を見せません。代わりにエージェントが環境の中で行動を試し、環境はその結果がどれだけ良かったかを表す数、つまり報酬を返します。何度も試すうちに、エージェントはどの行動がより多くの報酬につながるかを学びます。
これは、コーチが生徒を教えるやり方に近いものです。コーチは生徒の筋肉を代わりに動かすことはできません。「良くなった」「悪くなった」と言えるだけで、残りは生徒が自分で見つけます。
ループ
ループの各ステップは4つの部分からなります。
始まりから終わりまでのステップの連なりがエピソードです。目標は、合計の報酬が最も多くなる方策を見つけることです。ふつうは、あとの報酬を前の報酬より少し軽く数えます。
ここで は割引率です(マルコフ決定過程を参照)。
なぜ難しいのか
- 信用割り当て。 転倒は、その原因となった失敗の1〜2秒後に起きることがあります。学習者は、それより前のどの行動が悪かったのかを突き止めなければなりません。報酬シェーピングが助けになります。
- 探索。 より良いものを見つけるには、確信のないことも試さなければなりません。確率的方策は、行動にランダムさを加えることでこれを行います。
- 報酬しか知らない。 意図しない方法で報酬が得られるなら、エージェントはそれを見つけます。これが報酬ハッキングです。
このプロジェクトでは
エージェントは、シミュレーションのファイターのコントローラーです。環境は、身体、床、押しの MuJoCo シミュレーションです。報酬は、コーチの構えを保つことと倒れないことに支払われます。アルゴリズムは PPO です。