よんログ

強化学習

方策

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

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

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

状態遷移確率

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

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

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

aπ(as)p(ss,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 を選択し状態 ss' に遷移したときに得られる報酬であり、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π[GtSt=s]v_\pi(s)=E_\pi[G_t\mid S_t=s]

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

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

vπ(s)=a,sπ(as)p(ss,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')\}
導出
vπ(s)=Eπ[GtSt=s]=Eπ[Rt+γGt+1St=s]=Eπ[RtSt=s]+γEπ[Gt+1St=s]\begin{aligned} v_\pi(s)&=E_\pi[G_t\mid S_t=s]\\ &=E_\pi[R_t+\gamma G_{t+1}\mid S_t=s]\\ &=E_\pi[R_t\mid S_t=s]+\gamma E_\pi[G_{t+1}\mid S_t=s] \end{aligned}

ここで

Eπ[RtSt=s]=a,sπ(as)p(ss,a)r(s,a,s)Eπ[Gt+1St=s]=a,sπ(as)p(ss,a)Eπ[Gt+1St+1=s]\begin{aligned} E_\pi[R_t\mid S_t=s]&=\sum_{a,s'}\pi(a\mid s)p(s'\mid s,a)r(s,a,s')\\ E_\pi[G_{t+1}\mid S_t=s]&=\sum_{a,s'}\pi(a\mid s)p(s'\mid s,a)E_\pi[G_{t+1}\mid S_{t+1}=s'] \end{aligned}

より

vπ(s)=a,sπ(as)p(ss,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_* に従って行動したときの状態価値関数を vv_* で表す。

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

v(s)=a,sπ(as)p(ss,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π[GtSt=s,At=a]=Eπ[Rt+γGt+1St=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π(as)qπ(s,a)v_\pi(s)=\sum_a\pi(a\mid s)q_\pi(s,a)

Q関数のベルマン方程式

qπ(s,a)=sp(ss,a){r(s,a,s)+γaπ(as)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)=sp(ss,a){r(s,a,s)+γmaxaqπ(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\}