用語集 · 強化学習

報酬シェーピング

別名:Reward shaping、potential-based shaping、shaping reward、ポテンシャルベースの報酬シェーピング、シェーピング報酬、報酬シェーピング

学習を導くために、報酬に項を追加することです。ポテンシャルに基づくシェーピングなら、どの方策が最良かを変えないことが証明されています。

転倒で −1 のようなまばらな報酬からは学びにくいものです。ペナルティが失敗の数秒後に届くこともあるからです。報酬シェーピングは、もっと早く、もっと密なフィードバックを与える項を加えます。危険なのは、追加の項によって最良の振る舞いが変わってしまい、エージェントがその項を追いかけるように学んでしまうことです(報酬ハッキングを参照)。

ポテンシャルに基づくシェーピング

Ng、Harada、Russell(1999)は安全な形を示しました。状態がどれだけ有望かを測る、状態の任意の関数、つまりポテンシャル φ(s)\varphi(s) を選びます。そして

F(s,s′)=γ φ(s′)−φ(s)F(s, s') = \gamma\,\varphi(s') - \varphi(s)

を、タスクと同じ割引率 γ\gamma を使って、各ステップの報酬に足します。すると最適な方策(ポリシー)は、シェーピングがない場合とまったく同じになります。

理由はこうです。エピソード全体では、シェーピングの項は次々と打ち消し合います。各 φ\varphi は一度はプラスで、一度はマイナスで現れるので、ある状態からのリターンに加わる合計は、−φ(s0)-\varphi(s_0) と消えていく残りの部分だけです。それはどこから始めるかで決まり、何をするかでは決まらないので、長い目で見てある振る舞いを別の振る舞いより良くすることはできません。変わるのは、エージェントがそれにいつ気づくかです。より良い状態に向かえば、すぐに報われます。

このプロジェクトでは

サバイブ環境では、転倒の −1 は、その原因となった失敗の1〜2 s 後に来ていました。そこで次のポテンシャルによるシェーピングを加えました。

φ(s)=−(capture point outside the feet+chest tilt past 10∘+pelvis drop past 3 cm)\varphi(s) = -\big(\text{capture point outside the feet} + \text{chest tilt past } 10^\circ + \text{pelvis drop past } 3\text{ cm}\big)

(キャプチャポイントが足の外に出た量、胸の傾きの10°を超えた分、骨盤の下がりの3 cm を超えた分で、それぞれに重みをつけています。)γ=0.99\gamma = 0.99 です。落ち着いた構えでは3つのペナルティがすべてゼロなので、ほぼ0になります。これを加えると、押しのレベルは 7.4 M ステップで0.2から0.7まで上がりました。

関連用語

この用語が出てくる記事

← すべての用語