輪読会「ゼロから作るDeep Learning④ 強化学習編」第4回

はじめに

てくますプロジェクトでは、てくますゼミと呼ばれる学習会を開催しています。

少人数であーだこーだ議論しながら、考える楽しさを分かち合うことを大切にしています。

現在は「ゼロから作るDeep Learning④ 強化学習編」という本を読み進めています。

今回は本書第4回の輪読会ということで、4章を読み進めました!

本記事では、今回の勉強会で学んだことをざっくりと紹介していきます。

学習内容

反復方策評価

前回の章ではベルマン方程式について学習しました。ベルマン方程式を連立方程式として解くことで、価値関数を求めることができます。

しかし、状態や行動のパターンが多くなると、この連立方程式を解くことは現実的でなくなります。

そこで今回は、反復方策評価と呼ばれる方法を導入します。

状態価値関数のベルマン方程式は次のような式でした。
\(v_π(s) = \displaystyle \sum_{a, s’} π(a|s)p(s’|s, a)\{r(s, a, s’) + γv_π(s’)\}\)

この式を今回は、更新式へと変形します。
\(V_{k+1}(s) = \displaystyle \sum_{a, s’} π(a|s)p(s’|s, a)\{r(s, a, s’) + γV_k(s’)\}\)

\(V\) は状態価値関数の推定値、\(v\) は状態価値関数の真の値です。

更新式では、今いる状態 \(s\) の価値関数の推定値を、次に取りうる状態 \(s’\) の価値関数の推定値を使って更新しています。

推定値の更新を何度も行うことで、真の価値関数の値に近づけていきます。この方法のことを反復方策評価と呼びます。

反復方策評価を用いることで、連立方程式を解くことなく、価値関数の値(正確には近似値)を求めることができました。

テキストでは具体例として、2マスのグリッドワールドや、3×4のグリッドワールドで、実際に反復方策評価を行っています。

方策反復法

方策の評価はできたので、次は最適方策を求められるようになりたいです。

ベルマン最適方程式を連立方程式として解くことは、やはり状態や行動のパターンが多くなると、現実的ではありません。そこで今回は別の方法を考えます。

前回の章で学習した、最適方策を得る式について考えます。
\(
\begin{eqnarray}
μ_\ast(s) &=& \underset{a}{argmax}q_\ast(s, a) \\
&=& \underset{a}{argmax}\sum_{s’} p(s’|s, a)\{r(s, a, s’) + γv_\ast(s’)\}
\end{eqnarray}
\)
\(μ_\ast(s)\) :最適方策
\(v_\ast(s’)\):最適方策における状態価値関数
\(q_\ast(s, a)\):最適方策における行動価値関数

今回はこの式を、最適方策に対してではなく、何らかの決定論的方策 \(μ\) に対して適用します。
\(
\begin{eqnarray}
μ'(s) &=& \underset{a}{argmax}q_μ(s, a) \\
&=& \underset{a}{argmax}\sum_{s’} p(s’|s, a)\{r(s, a, s’) + γv_μ(s’)\}
\end{eqnarray}
\)

この式は、現在の方策 \(μ\) を新たな方策 \(μ’\) に更新しています。上の式によって方策を更新することをgreedy化と呼びます。

方策のgreedy化について次の2つのことが分かっています。(方策改善定理)

  • すべての状態 \(s\) において、\(v_{μ’}(s) \geqq v_μ(s)\)
  • \(v_{μ’}(s) = v_μ(s)\) のとき、\(μ\) が最善方策である

これで最適方策を求めるための材料が揃いました。

  1. まずはある方策 \(π\) からスタートする
  2. 反復方策評価で、方策 \(π\) の価値関数 \(V_0\) を得る
  3. 価値関数 \(V_0\) を使って、方策のgreedy化を行い、新たな方策 \(μ_1\) を得る
  4. ②と③を方策が変更されなくなるまで繰り返す

これにより最終的に得られる方策が、最適方策です。

方策評価(②)と方策改善(③)を繰り返す上記のアルゴリズムを方策反復法と呼びます。

テキストでは具体例として、3×4のグリッドワールドで方策反復法を用いて、最善方策を求めています。

価値反復法

方策反復法では、評価と改善をそれぞれ最大限に行って、交互にフェーズを切り替えます。これに対し、最大限ではなく最小限でフェーズを切り替えるのが、価値反復法と呼ばれる方法です。

方策反復法では評価時に、すべての状態における状態価値関数を何度も更新していましたが、価値反復法では1つの状態における状態価値関数を一度だけ更新し、改善のフェーズに移ります。

改善の式
\(μ(s) = \underset{a}{argmax}\displaystyle\sum_{s’} p(s’|s, a)\{r(s, a, s’) + γV(s’)\}\)

評価の式
\(a=μ(s)\) として、\(V'(s) = \displaystyle\sum_{s’} p(s’|s, a)\{r(s, a, s’) + γV(s’)\}\)

これら2つの式を1つにまとめると次のようになります。
\(V'(s) =\underset{a}{max} \displaystyle\sum_{s’} p(s’|s, a)\{r(s, a, s’) + γV(s’)\}\)

この式において重要なことは、方策を使わずに状態価値関数を更新できているという点です。そのため、方策反復法ではなく価値反復法と呼ばれます。

状態価値関数は繰り返し更新することで、最適状態価値関数に近づきます。それに対し、greedyな方策を求めれば、最適方策が得られます。

なお、上の式はベルマン最適方程式を更新式にしたものです。

テキストでは具体例として、3×4のグリッドワールドで価値反復法を用いて、効率的に最善方策を求めました。

最後に

強化学習の4回目のゼミでした。今回も6名で読み進めていきました!

様々な概念が積み重なって、着実に難しくなってきているのを感じます。
輪読会のやりがいがありますね! 頑張って読破するぞー。

では、また!

本シリーズの記事はこちら

各ゼミの第1回記事はこちら