読者です 読者をやめる 読者になる 読者になる

いものやま。

雑多な知識の寄せ集め

強化学習について学んでみた。(その27)

昨日は、前方観測的見方と後方観測的見方が等価であることを示した。

今日は、Sarsa法に適格度トレースの考えを適用したSarsa( \lambda)法について説明する。

Sarsa( \lambda)法

といっても、もう準備は終わっていて、強化学習について学んでみた。(その25) - いものやま。で示した更新方法を使う。

もう一度書いておくと、適格度トレース \boldsymbol{e}^{(t)} \in \mathbb{R}^{\mathcal{S} \times \mathcal{A}(s)}

 {
e^{(t)}_{s, a} = \left\{
\begin{array}{ll}
0 & (t = 0) \\
\gamma \lambda e^{(t-1)}_{s, a} + 1 & (s=s_t, a=a_t) \\
\gamma \lambda e^{(t-1)}_{s, a} & (\mbox{otherwise})
\end{array}
\right.
}

TD誤差 \delta^{(t)}

 {
\delta^{(t)} = r_{t+1} + \gamma Q_{s_{t+1}, a_{t+1}} - Q_{s_t, a_t}
}

としたとき、

 {
\boldsymbol{Q} \leftarrow \boldsymbol{Q} + \alpha \delta^{(t)} \boldsymbol{e}^{(t)}
}

と更新する。

あとはSarsa法と同じことをやればいいだけ。

具体的なアルゴリズムは、以下のとおり:

  1.  Q_{s, a}を任意に初期化。
  2. 以下を繰り返す:
    1. すべての s \in \mathcal{S} a \in \mathcal{A}(s)について、 e_{s, a} = 0とする。
    2.  sを初期化。
    3.  \boldsymbol{Q}から導かれるソフト方策を用いて行動 aを選択する。
    4. 各ステップについて、以下を繰り返す:
      1. 行動 aを行い、報酬 rと次状態 s'を観測する。
      2.  \boldsymbol{Q}から導かれるソフト方策を用いて行動 a’を選択する。
      3.  \delta \leftarrow r + \gamma Q_{s', a'} - Q_{s, a}
      4.  e_{s, a} \leftarrow e_{s, a} + 1
      5. すべての s \in \mathcal{S} a \in \mathcal{A}(s)について:
        1.  Q_{s, a} \leftarrow Q_{s, a} + \alpha \delta e_{s, a}
        2.  e_{s, a} \leftarrow \gamma \lambda e_{s, a}
      6.  s \leftarrow s' a \leftarrow a'とする。
      7.  sが終端状態なら、繰り返しを終了。

Q( \lambda)・・・?

ところで、Sarsa法はこれでいいとして、Q学習は?という話。

Q学習に適格度トレースの考えを適用したアルゴリズムとしては、2つの方法が提案されているらしく、それぞれ、WatkinsのQ( \lambda)、PengのQ( \lambda)と呼ばれているみたい。

ただ、WatkinsのQ( \lambda)については、あまり適格度トレースの恩恵を受けること出来ないみたいで、学習速度はQ学習からあまり改善されないらしい。
一方、PengのQ( \lambda)はSarsa( \lambda)法と同程度の性能は出るものの、実装が複雑らしい。

なので、ここでは省略。
気になる人は、本を参照。

今日はここまで!

強化学習

強化学習

  • 作者: Richard S.Sutton,Andrew G.Barto,三上貞芳,皆川雅章
  • 出版社/メーカー: 森北出版
  • 発売日: 2000/12/01
  • メディア: 単行本(ソフトカバー)
  • 購入: 5人 クリック: 76回
  • この商品を含むブログ (29件) を見る