
・各用語の意味や数式を理解したい。
・各用語の英語表現を合わせて知りたい。
こんにちは、るい(@CenotenBlog)です。
この記事では、上記の悩みにお答えします。
なるべくわかりやすく解説しています。
・方策
・報酬関数
・価値関数
ちなみに、この記事を書いている僕は、国立研究機関にて、人工知能に関する研究を行っています。
本記事は、強化学習の生みの親であるリチャード・サットン教授の『強化学習』を参考にしています。
強化学習でよく使われる用語の、簡単な説明は、下記の記事でしています。
参考までにどうぞ。
・強化学習がよくわからない。・強化学習で使われる用語について理解したい。・強化学習を実装したいけど、学習手法の違いがよくわからない。 こんにちは、るい(@CenotenBlog)です。 この記事では、上記[…]
では早速、方策について、解説していきます。
方策(Policy)
方策(\(\pi\))は大まかに、次の2種類があります。
・決定論的方策(Deterministic Policy)
・確率的方策(Stochastic Policy)
今回は、決定論的方策から、解説したいと思います。
決定論的方策(Deterministic Policy)
決定論的方策(Deterministic Policy)とは、ある状態\(s\)での行動\(a\)が一意に決まっている方策のことを言います。
一応、下記の数式で表すことができます。
$$a=\pi(s)\tag{1}$$
つまり、方策\(\pi\)で状態が同じならば常に同じ行動を取るということ。
代表的な例として次の方策が挙げられます。
・Greedy(グリーディ)方策(貪欲方策)
Greedy方策(貪欲方策)
Greedy方策とは、最終的に最も多くの報酬が得られる行動を選択する決定的方策のことです。
常に、最適と思われる行動を選択するため、「貪欲な(Greedy)」と言います。
ちなみに、エージェントがグリーディな行動を選ぶとき、現在持っている知識を利用(Exploit)すると言います。
ただ、Greedy方策では、毎回最適と思われる行動しかとらないので、実は別の行動をとった方がよかったなんてことも…
なので、確率的に行動を選択することで、より多くの状態を探索(Explore)できるようにします。
確率的方策(Stochastic Policy)
確率的方策とは、ある状態\(s\)で可能な行動\(a\)を選択する確率のことです。
数式は下記の様になり、時刻\(t\)で、\(s_{t}=s\)ならば\(a_{t}=a\)となる確率を指します。
$$\pi_{t}(s,a)$$
条件つき確率として、\(\mathbb{P}(a)=\pi(a \mid s)\) として表記されることもあります。(\(\mathbb{P}\)はProbability(確率)のPです。)
例えば、下記の図で状態\(s=A\)で、エージェントが前後左右の4つの行動の中から、\(\uparrow\)の行動を選ぶ確率は、\(\frac{1}{4}\)なので、
$$\pi_{t}(A, \uparrow)=\frac{1}{4}$$
となります。

あくまでも、確率的に行動が決まるので、確率の低い行動も運次第では選択され得ます。
確率的方策の代表例は次の2つです。
・\(\epsilon\)-greedy手法(\(\epsilon\)貪欲方策)
・ソフトマックス方策
\(\epsilon\)-greedy手法(\(\epsilon\)貪欲方策)
先程のGreedy方策を、ある一定の確率 \(\epsilon\)でランダムに行動するようにしたものです。
つまり、知識の利用(Exploit)と、探索(Explore)のバランスが取れる方策
欠点として、確率\(\epsilon\)でランダムな行動を行うので、最悪の行動を取ってしまう可能性があります。
そこで、ソフトマックス手法を用いて、1つ1つの行動を等級付けし、行動の確率を変化させます。
ソフトマックス方策
ソフトマックス手法とは、ランク付けされた行動の中から選択する方法のことです。
このランク付けは、ソフトマックス行動選択規則(softmax action selection rule)と呼ばれ、最適と思われる行動から順に、高い選択確率が与えられます。
一般的に、ギブス分布が使われ、数式は下記の通りです。
$$\pi=\frac{exp(\beta q(s,a))}{\sum_{b \in A}exp(\beta q(s,b))}\tag{2}$$
Q値(\(q\))については価値関数のところで解説しますが、要するに、最適と思われる行動ほど出やすいということ。
とりあえず、方策についてはこんな感じです。
簡単にまとめます。
・方策は\(\pi\)で示され、エージェントが行える行動の中から、何を選ぶかを表したもの。
・方策には、決定論的方策と確率的方策がある。
・知識の利用(Exploit)と、探索(Explore)のバランスが取れる方策が望ましい。
報酬関数(Reward Function)
報酬(\(r\))とは、エージェントの行動の結果として受け取る評価の値です。
例えば、下記の図で時刻(\(t\))で\(s_{t}=A\)の時、方策\(\pi_t(s,a)\)より\(a=\uparrow\)が選ばれた時の報酬\(r_{t}\)は
$$r_{t}=+1$$
また、時刻\(t\)で\(s_{t}=A\)の時、方策\(\pi_t(s,a)\)より\(a=\leftarrow\)が選ばれた時の報酬\(r_{t}\)は
$$r_{t}=-1$$
となります。

次に、報酬に関する2つの用語について理解しておきましょう。
・期待収益(Expected Return)
・割引率(Discount Rate)
ここでは、用語の意味と内容だけ抑えれば十分です。
次の価値関数の理解で必要となります。
期待収益
期待収益(\(R_{t}\))とは、与えられた時間ステップ(\(t\))から最終時間ステップ(\(T\))までプレイした場合の報酬の合計のこと。
$$R_{t}=r_{t+1}+r_{t+2}+r_{t+3}+\cdots+r_{T}\tag{3}$$
期待収益はあくまでも、その時刻tにおける予測値です。
図で表すとこんな感じ。

強化学習では、この期待収益を最大化できる方策を獲得できる様に学習を進めていきます。
しかし、もしも最終時間ステップが\(\infty\)の場合、どの状態でも期待収益\(R_{T}\)は\(\infty\)となってしまい方策を選べません。
ここで、 割引(Discounting)という考えが登場します。
割引率(Disscount Rate)
割引率は\(\gamma\)であらわされるパラメータで\(0\leq\gamma\leq1\)です。
先程の期待収益の式で、\(k\)時間ステップ時に\(\gamma^{k-1}\)をかけたものを割引収益と言い、下記の式で表される。
$$R_{t}=r_{t+1}+\gamma r_{t+2}+\gamma^2 r_{t+3}+\cdots=\sum_{k=0}^{\infty}\gamma^{k}r_{t+k+1}\tag{4}$$
こうすることで、エージェントは、期待収益を最大化させるような行動を選択することができます。
ちなみに\(\gamma=0\)とすれば,エージェントは即時報酬(immediate reward)のみに関心を持つことになります。
価値関数(Value Function)
価値関数とは、その状態を基点として将来にわたって蓄積することを期待する報酬の合計のことを指します。
期待する報酬の合計って、先程の期待収益と同じですよね。
なので、価値関数の数式は期待収益\(R_{t}\)を用いて、下記の通りになります。
$$\begin{eqnarray}
V^{\pi}(s)&=&\mathbb{E}_{\pi} \left\{ R_{t} \mid s_{t}=s \right\} \\
&=&\mathbb{E}_{\pi} \left\{\sum_{k=0}^{\infty}\gamma^{k}r_{t+k+1} \mid s_{t}=s \right\}\tag{5}
\end{eqnarray}$$
\(\mathbb{E}_{\pi}\{\}\)は、期待値を表します。
\(V^{\pi}(s)\)は、状態\(s\)の価値と考えることができるので、状態価値関数と呼ばれます。
また、状態\(s\)で行動\(a\)を取り、その後に方策\(\pi\)に従った場合の価値関数を行動価値関数とし、下記の式で定義します。
$$\begin{eqnarray}
Q^{\pi}(s,a) &=& \mathbb{E}_{\pi} \left\{R_{t} \mid s_{t}=s,a_{t}=a \right\}\\
&=& \mathbb{E}_{\pi} \left\{\sum_{k=0}^{\infty}\gamma^{k}r_{t+k+1} \mid s_{t}=s,a_{t}=a \right\}
\end{eqnarray}\tag{6}$$
これが、有名なQ値ってやつの正体です
とりあえず、簡単にまとめます。
・状態価値関数:状態\(s\)で、ある方策\(\pi\)で今後もらえる報酬の和(収益)
・行動価値関数:状態\(s\)で、ある行動\(a\)をした後に、方策\(\pi\)に従い、今後もらえる報酬の和(収益)
これで終わりだと、簡単でいいのですが、このままでは問題があります。
問題とは、先程の期待値\(\mathbb{E}_{\pi}\{\}\)とはどのように求めることができるのでしょうか。
方策の目的関数である価値関数を最大化するため、価値関数が満す式を明らかにしなければなりません。
ベルマン方程式
先程の状態価値関数を考えてみましょう。
状態価値関数とは、ある状態(\(s\))でもらえる報酬の和(期待収益)。
→これは、ある状態で行動\(a\)をとってすぐにもらえる即時報酬+そのあとでもらえる期待収益と同値。
→つまり、ある状態で行動\(a\)をとってすぐにもらえる即時報酬+その状態(\(s’\))での状態価値関数。
これを数式で表すと、
$$\begin{eqnarray}
V^{\pi}(s)&=&\mathbb{E}_{\pi} \left\{ R_{t} \mid s_{t}=s \right\}\\
&=&\mathbb{E}_{\pi} \left\{\sum_{k=0}^{\infty}\gamma^{k}r_{t+k+1} \mid s_{t}=s \right\}\\
&=&\mathbb{E}_{\pi} \left\{\gamma_{t+1}+\gamma\sum_{k=0}^{\infty}\gamma^{k}r_{t+k+2} \mid s_{t}=s \right\}\\
&=&\sum_{a}\pi(s,a)\sum_{s’}P_{ss’}^{a} \left[ R_{ss’}^{a}+\gamma\mathbb{E}_{\pi} \left\{ \sum_{k=0}^{\infty}\gamma^{k}r_{t+k+1} \mid s_{t+1}=s \right\} \right]\\
&=&\sum_{a}\pi(s,a)\sum_{s’}P_{ss’}^{a}R_{ss’}^{a}+\gamma V^{\pi}(s’)\tag{7}
\end{eqnarray}$$
最終行の中身を見てみましょう
\(\sum_{a}\pi(s,a)\):状態sで行動aをとる確率
\(\sum_{s’}P_{ss’}^{a}\):行動\(a\)をした時に、状態\(s\)から状態\(s’\)に遷移する確率
\(R_{ss’}^{a}\):行動\(a\)を選択し、状態\(s\)から状態\(s’\)に遷移際の即時報酬
\(\gamma V^{\pi}(s’)\):状態\(s’\)における状態価値関数
最後に、最適行動価値関数と最適状態価値関数について解説して終わりにしたいと思います。
最適状態価値関数
最適状態価値関数とは、ある状態で、状態価値関数を最大化する最適方策\(\pi\)を表し、下記の様に表されます。
$$V^{*}(s)=max_{\pi}V^{\pi}(s)\tag{8}$$
先程と同様、ベルマン方程式を用いて、
$$V^{*}(s)=max_{a}\sum_{s’}P_{ss’}^{a}R_{ss’}^{a}+\gamma V^{\pi}(s’)\tag{9}$$
なぜ、最適状態価値関数\(V^{*}\)が必要かというと、これが明らかにあれば、greedyな行動を価値関数から選択できることになります。
最適行動価値関数
最適行動価値関数とは、ある状態\(s\)で行動\(a\)をとりそののちは行動価値関数を最大化する最適方策に従うことを表し、下記の様に表される。
$$Q^{*}(s,a)=max_{\pi}Q^{\pi}(s,a)\tag{10}$$
最適状態価値関数を用いて表すと、
$$Q^{*}(s,a)=\mathbb{E}\left\{\gamma_{t+1}+\gamma V^{*}(s_{t+1}) \mid s_{t}=s,a_{t}=a \right\}\tag{11}$$
ベルマン方程式を用いると、
$$Q^{*}(s,a)=\sum_{s’}P_{ss’}^{a} \left[ R_{ss’}^{a}+\gamma max_{a’}Q^{*}(s’,a’) \right]\tag{12}$$
最適行動関数が明らかになると、単純に最適行動価値関数を最大化する行動\(a\)を見つけることが可能になります。
まとめ
本記事の内容は以上です。
最後に強化学習の流れを整理しておきます。
エージェントは方策に従って行動する。
その行動の評価として報酬がもらえる。
ある状態での期待収益の値がその状態の価値である。
⇒価値の高い状態に移動し続ければよさそう。
何かわからないところがあればご連絡ください。