目次
はじめに
てくますプロジェクトでは、てくますゼミと呼ばれる学習会を開催しています。
少人数であーだこーだ議論しながら、考える楽しさを分かち合うことを大切にしています。
現在は「ゼロから作るDeep Learning④ 強化学習編」という本を読み進めています。
今回は本書第5回の輪読会ということで、5章 モンテカルロ法を読み進めました!
本記事では、今回の勉強会で学んだことをざっくりと紹介していきます。
学習内容
モンテカルロ法とは
前回の章では、方策反復法や価値反復法を用いて、最適方策を求めました。
しかし、これらの方法では環境の情報(状態遷移確率と報酬関数)を用いています。実際にはそれらの情報を持っていないケースが考えられるでしょう。
今回の章では、環境の情報が未知の場合にも問題に取り組めるように、モンテカルロ法と呼ばれるものを学習しました。
一般にモンテカルロ法とはサンプリングを繰り返し行うことで、値を推定する方法です。
例えば、さいころを2個投げた時の出た目の和の期待値について考えましょう。
実際にさいころを2個投げて和を計算するという操作(サンプリング)を何度も行い、その標本平均を計算することで、期待値の近似を得ることができます。サンプリングをたくさん行うほど、推定値は本物の期待値の値に近づいていきます。
同じようなことを、第1回のバンディット問題で行動価値を求める際にも行いました。
標本平均を計算する式
\(V_n = \displaystyle \frac{s_1+s_2+…+s_n}{n} \)
この式をインクリメンタル(逐次的)な方式で書くと次のようになります。
\(V_n = V_{n-1}+\displaystyle \frac{1}{n}(s_n-V_{n-1}) \)
サンプリングを行う度に平均値を計算する場合、インクリメンタルな方式の方が効率的なので、そちらを使っていきます。
モンテカルロ法による方策評価
状態価値関数は次の式で定義されました。
\(v_π(s) = E_π[G|s]\)
先ほどと同様に、標本平均を計算することで、期待値の近似を得ましょう。
次のようになります。
\(V_π(s) = \displaystyle \frac{G^{(1)}+G^{(2)}+…+G^{(n)}}{n} \)
ここで、\(G^{(i)}\) は \(i\) 回目のエピソードで得られた収益です。
このようにして、状態 \(s\) における状態価値関数をモンテカルロ法で計算することができました。
同様に、他の状態においても状態価値関数を求めます。
その際、一つのエピソードについてスタート地点を変えることで、複数のサンプルデータとして使うことができます。
例えば、A→B→C→Goalといったエピソードの場合、状態AをスタートとするとAの状態価値関数を求めるためのサンプルになりますが、状態BをスタートとするとBの状態価値関数を求めるためのサンプルになります。このようにすると、効率が良いですね。
モンテカルロ法による方策制御
前回の章で学んだ通り、最適方策は評価と改善を交互に繰り返すことで得られます。モンテカルロ法で方策の評価はできたので、次は方策の改善についてです。
最適方策を得る式
\(
\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}
\)
このうち下の式は、環境の情報(状態遷移確率 \(p(s’|s, a)\) と報酬関数 \(r(s, a, s’) \) )を用いています。
今回は環境の情報が未知の場合にも問題に取り組めるようにしたいため、下の式ではなく上の式を使うようにしましょう。そのためには、状態価値関数ではなく行動価値関数(Q関数)が必要です。
前節で行った方策評価を行動価値関数バージョンに書き換えましょう。
一般的な式
\(Q_n(s,a) = \displaystyle \frac{G^{(1)}+G^{(2)}+…+G^{(n)}}{n} \)
インクリメンタル(逐次的)な式
\(Q_n(s,a) = Q_{n-1}(s,a)+\displaystyle \frac{1}{n}\{G^{(n)}-Q_{n-1}(s,a)\} \)
モンテカルロ法ですべての行動価値関数が得られるので、それを使って最適方策を得ることができました。
あとは改善点として、
- greedy ではなくε-greedy にする
- Q の更新は固定値 α を用いて行う
ということも行いました。(どちらも第1章で同じことをしましたね)
方策オン型とオフ型
ε-greedy を使うことで、良い行動を見つけることが出来るようになる反面、探索を行う分、完全には最適方策ではありません。これは、一つの方策の中で、探索と活用の両方を行っているからです。これを方策オン型といいます。
一方、2つの方策(ターゲット方策と挙動方策)を考え、ターゲット方策には活用だけを行わせ、挙動方策には探索も行わせる方法を、方策オフ型といいます。
挙動方策 \(b\) で得られたサンプルデータを用いて、ターゲット方策 \(π\) に関する期待値を計算するには、重点サンプリングという方法を用います。
\(
\begin{eqnarray}
E_π[x] &=& \sum xπ(x) \\
&=& \sum x\displaystyle \frac{π(x)}{b(x)}b(x) \\
&=& E_b[ρ(x)x]
\end{eqnarray}
\)
ここで、\(ρ(x)=\displaystyle \frac{π(x)}{b(x)}\)
\(b\) から得られたサンプルデータに、重み ρをかけて平均を取ることで、 \(π\) の期待値を得ることができるというわけです。
重点サンプリングを用いることで、方策オフ型のモンテカルロ法ができます。
\(q_π(s, a) = E_b[ρG|s, a]\)
しかし重点サンプリングを使うと、普通に \(π\) の期待値を求めるときと比べて、分散が大きくなってしまいます。分散をなるべく小さくするには、2つの確率分布 \(b\) と \(π\) を近づける必要があります。
最後に
強化学習の5回目のゼミでした。今回なんと、新しいメンバーが加わりました。おめでたい!
モンテカルロ法自体は理解しやすかったのですが、最後に登場した方策オフ型が難しいですね……。
そういう時こその輪読会。分からないところを話し合えるので、いつも助かっています。
では、また!