強化学習

方策

エージェントがどのように行動を決めるかを表したものを方策 (policy) という。 現在の状態 ss のみによって行動 aa が決まるような、確率に依らない方策を決定論的 (deterministic) な方策といい、これを定式化すると以下のようになる。

s′=μ(s)s'=\mu(s)

一方、決定論的でない (確率に依る) 方策を確率的な方策といい、方策 π\pi が状態 ss から行動 aa を選ぶ確率を π(a∣s)\pi(a\mid s) で表す。

状態遷移確率

状態遷移確率 (state transition probability) は状態 ss から行動 aa を選択したとき、状態 s′s' に遷移する確率であり、p(s′∣s,a)p(s'\mid s,a) で表す。

補足

状態遷移確率は現実問題における不確実 (あるいは計算が難しい) な挙動を表すのに用いられる。 例えば、ロボットを移動させる際の床の摩擦やモーターの故障などが挙げられる。

補足

方策 π\pi によって状態 ss から次の状態 s′s' に状態遷移する確率は以下のように表せる。

∑aπ(a∣s)p(s′∣s,a)\sum_a\pi(a\mid s)p(s'\mid s,a)

マルコフ決定過程

状態遷移において、今の状態 ss と行動 aa のみによって次の状態が一意に決まる性質をマルコフ性という。 また、マルコフ性をもつ過程をマルコフ決定過程 (Markov Decision Process, 以下MDP) という。

マルコフ性を定式化すると以下のようになる。

s′=f(s,a)s'=f(s,a)

報酬関数

報酬関数 (reward function) は状態 ss から行動 aa を選択し状態 s′s' に遷移したときに得られる報酬であり、r(s′,a,s)r(s',a,s) で表す。

収益

収益 (return) は時刻 tt から得る報酬の和であり、GtG_t で表す。

ただし、終わりがないタスク (連続タスク) において収益は無限大に発散しうるため、将来の報酬に割引率 γ  (γ<1)\gamma\;(\gamma<1) を乗算することで、収益が発散することを防ぐ。

Gt=Rt+γRt+1+γRt+2+⋯=Rt+γGt+1\begin{aligned} G_t&=R_t+\gamma R_{t+1}+\gamma R_{t+2}+\cdots\\ &=R_t+\gamma G_{t+1} \end{aligned}

状態価値関数

状態価値関数 (state value function) (あるいは単に価値関数とも) は、状態 ss から方策 π\pi に従って行動したときの収益の期待値であり、vπ(s)v_\pi(s) で表す。

vπ(s)=Eπ[Gt∣St=s]v_\pi(s)=E_\pi[G_t\mid S_t=s]

状態価値関数のベルマン方程式

ベルマン方程式 (Bellman Equation) は、MDPにおいて成立する、状態価値関数を求める上で重要な方程式である。

vπ(s)=∑a,s′π(a∣s)p(s′∣s,a){r(s,a,s′)+γvπ(s′)}v_\pi(s)=\sum_{a,s'}\pi(a\mid s)p(s'\mid s,a)\{r(s,a,s')+\gamma v_\pi(s')\}

状態価値関数のベルマン最適方程式

すべての状態において状態価値関数が最大となるような方策 π∗\pi_* を最大方策という。 また、最適方策 π∗\pi_* に従って行動したときの状態価値関数を v∗v_* で表す。

このとき v∗v_* について成り立つベルマン方程式をベルマン最適方程式 (Bellman Optimality Equation) といい、次のように表せる。

v∗(s)=∑a,s′π∗(a∣s)p(s′∣s,a){r(s,a,s′)+γv∗(s′)}v_*(s)=\sum_{a,s'}\pi_*(a\mid s)p(s'\mid s,a)\{r(s,a,s')+\gamma v_*(s')\}

行動価値関数/Q関数

行動価値関数 (action value function) は、状態 ss から行動 aa を選択し、その後は方策 π\pi に従って行動したときの収益の期待値であり、qπ(s)q_\pi(s) で表す。

qπ(s,a)=Eπ[Gt∣St=s,At=a]=Eπ[Rt+γGt+1∣St=s,At=a]\begin{aligned} q_\pi(s,a)&=E_\pi[G_t\mid S_t=s,A_t=a]\\ &=E_\pi[R_t+\gamma G_{t+1}\mid S_t=s,A_t=a] \end{aligned}

行動価値関数は慣習的にQ関数と呼ばれ、本記事でも以下Q関数と呼ぶ。

補足

Q関数は状態価値関数に対して行動 aa を設定したものである。

状態価値関数 vπ(s)v_\pi(s) はQ関数 qπ(s,a)q_\pi(s,a) を用いて次のように表せる。

vπ(s)=∑aπ(a∣s)qπ(s,a)v_\pi(s)=\sum_a\pi(a\mid s)q_\pi(s,a)

Q関数のベルマン方程式

qπ(s,a)=∑s′p(s′∣s,a){r(s,a,s′)+γ∑a′π(a′∣s′)qπ(s′,a′)}q_\pi(s,a)=\sum_{s'}p(s'\mid s,a)\left\{r(s,a,s')+\gamma\sum_{a'}\pi(a'\mid s')q_{\pi}(s',a')\right\}

Q関数のベルマン最適方程式

qπ(s,a)=∑s′p(s′∣s,a){r(s,a,s′)+γmax⁡a′qπ(s′,a′)}q_\pi(s,a)=\sum_{s'}p(s'\mid s,a)\left\{r(s,a,s')+\gamma\max_{a'}q_\pi(s',a')\right\}
前の記事

群論

次の記事

ベクトル解析