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

いものやま。

雑多な知識の寄せ集め

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

昨日は、関数近似を組合せる方法が、従来のテーブル型の拡張になっていることを確認した。

今日は、関数近似の1つである、線形手法について説明する。

線形手法

線形手法では、線形関数を使って、価値ベクトルを近似する。

といっても、状態 sや状態行動対 (s, a) \mathbb{R}^{n}の空間に存在していないので、まずはこれらを \mathbb{R}^{n}の空間へ写像してやるために、特徴特徴ベクトルというものを考えてやる。

特徴  f \in \mathcal{F}というのは、状態や状態行動対のある性質に注目したもので、例えば○×ゲームなら、「左上のマスにある○の数」「左上のマスにある×の数」だとか「リーチになっている○の列の数」「○が3つ揃っている列の数」といった特徴が考えられる。
そして、状態や状態行動対から特徴ごとの値に変換する写像  \boldsymbol{\phi} : \mathcal{S} \rightarrow \mathbb{R}^{\mathcal{F}}、あるいは、それによって変換されたあとのベクトル \boldsymbol{\phi}(s)のことを、特徴ベクトルと呼ぶ。

とくに、特徴  f \in \mathcal{F}が、その特徴に当てはまる/当てはまらないの2択になっているものをバイナリ特徴と呼び、それを1/0で表現する特徴ベクトル \boldsymbol{\phi} : \mathcal{S} \rightarrow \{0, 1\}^{\mathcal{F}}のことを、バイナリ特徴ベクトルと呼んだりもする。

こうして、状態や状態行動対を特徴ベクトルへ写像し、特徴ベクトルの各要素をパラメータ \boldsymbol{\theta} \in \mathbb{R}^{\mathcal{F}}で重み付けした線形関数、

 { \displaystyle
v(s; \boldsymbol{\theta}) = \boldsymbol{\theta}^{\mathrm{T}} \boldsymbol{\phi}(s) = \sum_{f \in \mathcal{F}} \theta_f \phi(s)_f
}

で価値ベクトルを近似的に表現する手法を、線形手法と呼ぶ。

線形手法を用いたTD( \lambda)

線形手法を使う場合、 \frac{\partial v}{\partial \theta_{f}} (s; \boldsymbol{\theta})は、次のようになる:

 {
\frac{\partial v}{\partial \theta_{f}} (s; \boldsymbol{\theta}) = \phi(s)_f
}

したがって、 \nabla_{\boldsymbol{\theta}} v (s; \boldsymbol{\theta})は、次のようになる:

 {
\nabla v (s; \boldsymbol{\theta}) = \boldsymbol{\phi} (s)
}

このことから、線形手法を使った場合のTD( \lambda)のパラメータの更新は、

 {
\begin{align}
\delta^{(t)} &= r_{t+1} + \gamma \boldsymbol{\theta}^{(t)} {}^{\mathrm{T}} \boldsymbol{\phi}(s_{t+1}) - \boldsymbol{\theta}^{(t)} {}^{\mathrm{T}} \boldsymbol{\phi}(s_t) \\
\boldsymbol{e}^{(t)} &= \left\{ \begin{array}{ll}
\boldsymbol{0} & (t = 0) \\
\gamma \lambda \boldsymbol{e}^{(t-1)} + \boldsymbol{\phi}(s_t) & (t \ge 1)
\end{array} \right.
\end{align}
}

として、

 {
\boldsymbol{\theta}^{(t+1)} = \boldsymbol{\theta}^{(t)} + \alpha \delta^{(t)} \boldsymbol{e}^{(t)}
}

と行うことになる。

特に、特徴がバイナリ特徴の場合、適格度トレースに足し込む値は0か1になる。
(本の図8.8、8.9も参照)

線形手法を用いたSarsa( \lambda)

上記の更新方法を使ったSarsa( \lambda)は、次のようになる:

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

実際に線形手法を用いたSarsa( \lambda)の例としては、以下を参照。

今日はここまで!

強化学習

強化学習

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