用語集 · 強化学習

価値関数

別名:Value function、critic、V(s)、advantage、GAE、クリティック、アドバンテージ、状態価値関数、一般化アドバンテージ推定

ある状態から、エージェントがこの先どれだけの報酬を期待できるかの推定です。アドバンテージは、ある行動がそれより良かったか悪かったかを表します。

状態の価値とは、エージェントがその方策(ポリシー)に従ったとき、その状態から得られるリターンの期待値です。

Vπ(s)=Eπ ⁣[∑k=0∞γkrt+k  |  st=s]V^\pi(s) = \mathbb{E}_\pi\!\left[\sum_{k=0}^{\infty} \gamma^k r_{t+k} \;\middle|\; s_t = s\right]

これは簡単な再帰式、ベルマン方程式に従います。今の価値は、今の報酬に、行き着いた先の価値を割り引いて足したものです。

Vπ(s)=E[r+γVπ(s′)]V^\pi(s) = \mathbb{E}\left[r + \gamma V^\pi(s')\right]

深層強化学習では、クリティックと呼ばれるニューラルネットワークが、観測したリターンへの回帰で V(s)V(s) を学習します。

アドバンテージ

価値関数があると、学習のノイズがずっと少なくなります。「このエピソードは良かったか?」と問う代わりに、学習者は「この行動は予想より良かったか?」と問います。その差がアドバンテージです。

A(st,at)=rt+γV(st+1)⏟what happened−V(st)⏟what was expected=δtA(s_t, a_t) = \underbrace{r_t + \gamma V(s_{t+1})}_{\text{what happened}} - \underbrace{V(s_t)}_{\text{what was expected}} = \delta_t

アドバンテージが正なら、その行動は選ばれやすくなり、負なら選ばれにくくなります。

一般化アドバンテージ推定

1ステップの δt\delta_t はクリティックに大きく頼っていて、クリティックは間違っているかもしれません。多くのステップにわたって実際の報酬を足し合わせれば、クリティックへの依存は減りますが、ノイズが増えます。GAE(Schulman ら 2016)は、パラメーター λ\lambda で2つを混ぜ合わせます。

A^t=∑l=0∞(γλ)l δt+l\hat{A}_t = \sum_{l=0}^{\infty} (\gamma\lambda)^l \, \delta_{t+l}

λ=0\lambda = 0 なら1ステップの推定、λ=1\lambda = 1 なら完全なリターンからベースラインを引いたものになります。

このプロジェクトでは

γ=0.99\gamma = 0.99、λ=0.95\lambda = 0.95 を使っています。クリティックは、アクターと同じ入力を持つ、別の 2 × 256 の MLP です。

クリティックは、ファイターが何を予想しているかを見る窓にもなります。トルクとニューロンの記事では「予測」の線として描いています。生徒モデル distill9-196.6M が立っているときは555、900 Nの押しから40 msで半分を下回り、1秒後には−92まで下がります。体が床に着くのは押しから1.94秒後です。

関連用語

この用語が出てくる記事

← すべての用語