目次
はじめに
てくますプロジェクトでは、てくますゼミと呼ばれる学習会を開催しています。
少人数であーだこーだ議論しながら、考える楽しさを分かち合うことを大切にしています。
現在は「ゼロから作る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)\) のとき、\(μ\) が最善方策である
これで最適方策を求めるための材料が揃いました。
- まずはある方策 \(π\) からスタートする
- 反復方策評価で、方策 \(π\) の価値関数 \(V_0\) を得る
- 価値関数 \(V_0\) を使って、方策のgreedy化を行い、新たな方策 \(μ_1\) を得る
- ②と③を方策が変更されなくなるまで繰り返す
これにより最終的に得られる方策が、最適方策です。
方策評価(②)と方策改善(③)を繰り返す上記のアルゴリズムを方策反復法と呼びます。
テキストでは具体例として、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名で読み進めていきました!
様々な概念が積み重なって、着実に難しくなってきているのを感じます。
輪読会のやりがいがありますね! 頑張って読破するぞー。
では、また!