ベルマン方程式
Posted: July 12, 2022
確率的な振る舞いを考慮した状態価値関数を求める
ベルマン方程式の導出
収益の式の変形
①収益(G)の定義は以下
Gt=Rt+γRt+1+γ2Rt+2+....
②上記①のtをt+1にしてみる
Gt+1=Rt+1+γRt+2+γ2Rt+3+....
③ ②を念頭に入れて①の式を変形する
Gt=Rt+γRt+1+γ2Rt+2+....
=Rt+γ(Rt+1+γRt+2+...)
=Rt+γGt+1
状態価値観数の変形
④状態価値関数(νπ(s))の定義は以下
νπ(s)=Eπ[Gt∣St=s]
⑤ ④の式に③を代入する
νπ(s)=Eπ[Gt∣St=s]
=Eπ[Rt+γGt+1∣St=s]
=Eπ[Rt∣St=s]+γEπ[Gt+1∣St=s]
※補足:E[X+Y]=E[X]+E[Y]
⑥ ⑤の右辺の1つ目の項を求める
状態がsであり、確率による方策π(a|s) に従って行動し、確率 p(s’|s, a)で、報酬r(s, a, s’)を得る
期待値を求めるには報酬 * 確率をすべての候補に対して実行し和を求める
Eπ[Rt∣St=s]=∑a,s′π(a∣s)p(s′∣s,a)r(s,a,s′)
⑦ ⑤の右辺の2つ目の項を求める
時刻tから1つ先に進めるのは、状態がsであり、確率による方策π(a|s)に従って行動し、確率p(s’|s, a)で、以下に遷移することになる
Eπ[Gt+1∣St+1=s′]=νπ(s′)
期待値を求めるには、上記の計算をすべての候補に対して実行し和を求める
Eπ[Gt+1∣St=s]=∑a,s′π(a∣s)p(s′∣s,a)Eπ[Gt+1∣St+1=s′]
=∑a,s′π(a∣s)p(s′∣s,a)νπ(s′)
⑧ ⑥と⑦を統合する(ベルマン方程式)
νπ(s)=Eπ[Rt∣St=s]+γEπ[Gt+1∣St=s]
=∑a,s′π(a∣s)p(s′∣s,a)r(s,a,s′)+γ∑a,s′π(a∣s)p(s′∣s,a)νπ(s′)
=∑a,s′π(a∣s)p(s′∣s,a){r(s,a,s′)+γνπ(s′)}
ベルマン方程式は、「状態sの価値関数」と「その次に取り得る状態s’の価値関数」の関係性を表した式になる。
行動価値関数
状態価値観数は以下であり、「状態がs」であること、「方策がπ」であることが条件
νπ(s)=Eπ[Gt∣St=s]
行動価値関数(Q関数)はさらに「行動a」も条件が追加される
qπ(s,a)=Eπ[Gt∣St=s,At=a]
時刻tのときに、状態sで行動aを取り、時刻t+1以降では方策πに従った行動をとる。
そのときに得られる収益の期待値がqπ(s,a)となる
行動価値関数を使ったベルマン方程式
qπ(s,a)=Eπ[Gt∣St=s,At=a]
=Eπ[Rt+γGt+1∣St=s,At=a]
=Eπ[Rt∣St=s,At=a]+γEπ[Gt+1∣St=s,At=a]
=∑s′p(s′∣s,a)r(s,a,s′)+γ∑s′p(s′∣s,a)Eπ[Gt+1∣St+1=s′]
=∑s′p(s′∣s,a){r(s,a,s′)+γEπ[Gt+1∣St+1=s′]}
=∑s′p(s′∣s,a){r(s,a,s′)+γνπ(s′)}
=∑s′p(s′∣s,a){r(s,a,s′)+γ∑a′π(a′∣s′)qπ(s′,a′)}