1. 値反復アルゴリズム
以下のように、ベルマン最適性方程式を解くにはどうすればよいでしょうか?
v = f ( v ) = max π ( r π + γ P π v ) v=f(v)=\max_{\pi}\left(r_\pi\right.+\gamma P_\pi v);で=f(v)=円周率最大 (rπ +γPπ v)
前の内容によると、短縮マッピング thcorerin を使用して反復アルゴリズムを使用して解決できることがわかりました。
v k + 1 = f ( v k ) = max π ( r π + γ P π v k ) 、 k = 1 , 2 , 3 , . 。 。 v_{k+1}=f(v_k)=\max_{\pi}(r_\pi+\gamma P_\pi v_k),k=1,2,3,...でk+1 =f(vk )=円周率最大 (rπ +γPπ でk )、k=1、2、3、...
- 其中初始值 v 0 v_{0} で0 は任意の値です。
- このアルゴリズムは、最終的に最適な状態値と最適なポリシーを発見できます。
- このアルゴリズムは値の反復と呼ばれます。
1. 値反復アルゴリズムの詳細なプロセス
v k + 1 = f ( v k ) = max π ( r π + γ P π v k ), k = 1 , 2 , 3... v_{k+1}\:=\:f(v_k\:)= \max_{\pi}\left(r_\pi\:+\:\gamma P_\pi v_k\:\right),k=1,2,3でk+1 =f(vk )=円周率最大 (rπ +γPπ でk )、k=1、2、3...
これは 2 つの部分に分けることができます。
-
ステップ 1:
policy update
、電流範囲を設定します
π k + 1 = a r g max π ( r π + γ P π v k ) \ . pi_{k+1}=arg\max_{\pi}\left(r_{\pi}\right.+\gamma P_{\pi}\left.v_{k}\right) 円周率k+1 =arg円周率最大 (rπ +γPπ でk )
其中 v k v_k でk 当然のことです -
ステップ 2:
value update
v k + 1 = r π k + 1 + γ P π k + 1 v k v_{k+1}=r_{\pi_{k+1} }+\ガンマ P_{\pi_{k+1}}v_k でk+1 =r円周率k+1 +γP円周率k+1 でk
问题: v k v_k でk それは状態の値ですか? もちろんそうではありません。- 上の式からわかるように、式の左辺は v k + 1 v_{k+1} です。でk+1 、方程式の右辺は v k v_k でk 、決定できないため v k v_k でk ベルマン方程式を満たします。
- 方程式の左辺も v k v_k の場合でk の場合、 v k v_k と言えます。でk は状態値です。
- kv_kででk 上の式では、値またはベクトルを表すだけであり、任意の値を使用できますが、状態値を表すものではありません。
次に、アルゴリズムを実装する目的で要素ごとの形式を検討します。
- 行列ベクトル形式は理論解析に適しています
- 要素ごとの形式はアルゴリズムの実装に適しています
ステップ1: ポリシーの更新
要素ごとの形式から:
π k + 1 = a r g max π ( r π + γ P π v k ) \pi_{k+1}=arg\max_{\pi }\left(r_{\pi}+\gamma P_{\pi}v_{k}\right) 円周率k+1 =arg円周率最大 (rπ +γPπ でk )
即ち:
π k + 1 ( s ) = arg max π ∑ a π ( a ∣ s ) ( ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ p ( s ′ ∣ s , a ) v k ( s ′ ) ) ⏟ q k ( s , a ) , s ∈ S \pi_{k+1}(s)= \arg\max_{\pi}\sum_{a}\pi(a|s)\underbrace{\left(\sum_{r}p(r|s,a)r+\gamma\sum_{s'} p(s'|s,a)v_k(s')\right)}_{q_k(s,a)},\quad s\in\mathcal{S} 円周率k+1 (s)=arg円周率最大 ある∑ π(a∣s )qk (s,a)
(r∑ p(r∣s 、a)r+cs』∑ p(s'∣s,a)vk (s'))、s∈S
滑らかで滑らかな方程式の変換
π k + 1 ( a ∣ s ) = { 1 a = a k ∗ ( . s ) 0 a ≠ a k ∗ ( s ) \pi_{k+1}\left(a|s\right)=\begin{cases}1&a=a_k^*\left(s\right)\\0& a\ neq a_k^*\left(s\right)\end{cases} 円周率k+1 (a∣s)={
10 ある=あるk∗ (s)ある=あるk∗ (s)
其中 a k ∗ = a r g max a q k ( a , s ) a_k^*=arg\max_aq_k(a,s) あるk∗ =arg最大a qk (a,s) π k + 1 \pi_{k+1} 円周率k+1 は、最大の q 値が単純に選択されるため、greedy policy
と呼ばれます。
ステップ2: 値の更新
要素ごとの形式:
v k + 1 = r π k + 1 + γ P π k + 1 v k v_{k+1}=r_{\pi_{k+1}}+\gamma P_{\pi_{k+1}}v_kでk+1 =r円周率k+1 +γP円周率k+1 でk
即ち:
v k + 1 ( s ) = ∑ a π k + 1 ( a ∣ s ) ( ∑ r p ( r ∣ s , a ) r + γ ∑ s ' p ( s ′ ∣ s , a ) v k ( s ′ ) ) ⏟ q k ( s , a ) , s ∈ S v_{k+1}(s)=\sum_a\pi_{k+1}(a|s) \underbrace{\left(\sum_rp(r|s,a)r+\gamma\sum_{s'}p(s'|s,a)v_k(s')\right)}_{ q_k(s,a)},\quad s\in\mathcal{S} でk+1 (s)=ある∑ 円周率k+1 (a∣s)qk (s,a)
(r∑ p(r∣s 、a)r+cs』∑ p(s'∣s,a)vk (s'))、s∈S
その他 π k + 1 \pi_{k+1} 円周率k+1 は貪欲です。上記の方程式は次のように簡略化できます:
v k + 1 ( s ) = max a q k ( a , s ) v_{k+1}\left(s \ right)=\max_aq_k\left(a,s\right) でk+1 (s)=ある最大 qk (a,s)
- 对应 q k q_k qk 最大的 a a a の π = 1 π=1 円周率=1,其他的 a a a の π = 0 π=0 円周率=0;
- v k + 1 v_{k+1}でk+1 就是 q k q_k qk の最大値。
プロセスの概要:
v k ( s ) → q k ( s , a ) → 貪欲なポリシー π k + 1 ( a ∣ s ) → 新しい値 v k + 1 = max a q k ( s , a ) \color{red}{v_k(s)\to q_k(s,a)\to\text{ 貪欲なポリシー }\pi_{k+1}(a|s)\to\text{ 新しい値 }v_{k+1}=\max_aq_k(s,a)}でk (s)→qk (s,a)→ 貪欲なポリシー πk+1 (a∣s)→ 新しい 値 vk+1 =あるmax qk (s,a)
2. 例
例: 報酬設定は次のとおりです: r b o u n d a r y = r f or b i d d e n = − 1 , r t a r g e t = 1 r_{boundary}=r_{forbidden}=-1, r_{target}= 1rbound aり=rfまたはbidde n =−1、rtarge t =1。折率 (割引率) γ = 0.9 \gamma=0.9 c=0.9,目标是 s 4 s_4 s4 。
q-table:アクション値 q ( s , a ) q(s, a) q(s,a) 的表达式如下:
当 k = 0 k=0 k=0时:
初開始化、令 v 0 ( s 1 ) = v 0 ( s 2 ) = v 0 ( s 3 ) = v 0 ( s 4 ) = 0 v_0\left( s_1\right)=v_0\left(s_2\right)=v_0\left(s_3\right)=v_0\left(s_4\right)=0 で0 (s1 )=で0 (s2 )=で0 (s3 )=で0 (s4 )=0,q-table如下:
ステップ1: ポリシーの更新:
π 1 ( a 5 ∣ s 1 ) = 1 、 π 1 ( a 3 ∣ s 2 ) = 1 、 π 1 ( a 2 ∣ s 3 ) = 1 、 π 1 ( a 5 ∣ s 4 ) = 1 \pi_1\ left(a_5\left|s_1\right.\right)=1,\pi_1\left(a_3\left|s_2\right.\right)=1,\pi_1\left(a_2\left|s_3\right.\right )=1,\pi_1\left(a_5\left|s_4\right.\right)=1円周率1 (a5 ∣s1 )=1、円周率1 (a3 ∣s2 )=1、円周率1 (a2 ∣s3 )=1、円周率1 (a5 ∣s4 )=1
ポリシーの更新は次のとおりです。
Step2:値の更新
v 1 ( s 1 ) = 0 、 v 1 ( s 2 ) = 1 、 v 1 ( s 3 ) = 1 、 v 1 ( s 4 ) = 1 v_1\left(s_1\right)=0,v_1\left( s_2\right)=1,v_1\left(s_3\right)=1,v_1\left(s_4\right)=1で1 (s1 )=0、で1 (s2 )=1、で1 (s3 )=1、で1 (s4 )=1
当 k = 1 k=1 k=1时:
因為我们有: v 1 ( s 1 ) = 0 、 v 1 ( s 2 ) = 1 、 v 1 ( s 3 ) = 1 、 v 1 ( s 4 ) = 1 v_1\left(s_1\right)=0,v_1\left(s_2\right)=1,v_1\left(s_3\right)=1,v_1\left(s_4\right)=1 で1 (s1 )=0、で1 (s2 )=1、で1 (s3 )=1、で1 (s4 )=1、新しい q テーブルを取得します:
ステップ1: ポリシーの更新
π 2 ( a 3 ∣ s 1 ) = 1 、π 2 ( a 3 ∣ s 2 ) = 1 、π 2 ( a 2 ∣ s 3 ) = 1 、π 2 ( a 5 ∣ s 4 ) = 1 \pi_2\ left(a_3|s_1\right.)=1,\pi_2\left(a_3|s_2\right)=1,\pi_2\left(a_2|s_3\right)=1,\pi_2\left(a_5|s_4\right) )=1円周率2 (a3 ∣s1 )=1、円周率2 (a3 ∣s2 )=1、円周率2 (a2 ∣s3 )=1、円周率2 (a5 ∣s4 )=1
戦略の更新は次の図に示すようになります。
注: 現在の戦略はすでに最適化されています。
ステップ2: 値の更新
v 2 ( s 1 ) = γ 1 、v 2 ( s 2 ) = 1 + γ 1 、v 2 ( s 3 ) = 1 + γ 1 、v 2 ( s 4 ) = 1 + γ 1 v_2(s_1)= \gamma1,v_2(s_2)=1+\gamma1,v_2(s_3)=1+\gamma1,v_2(s_4)=1+\gamma1で2 (s1 )=γ1、で2 (s2 )=1+γ1、で2 (s3 )=1+γ1、で2 (s4 )=1+γ1
当 k = 2 , 3 , … k=2,3,… k=2、3、…,当 ∣ ∣ v k − v k + 1 ∣ ∣ ||v_k-v_{k+1}|| ∣∣vk −でk+1 ∣∣ 事前定義されたしきい値を下回った場合に停止します。
2. ポリシー反復アルゴリズム
1. 戦略反復アルゴリズムのプロセスの概要
ランダムな初期戦略が与えられた場合 π 0 \pi_0 円周率0 、
-
ステップ 1: ポリシー評価 (PE)、このステップでは π k \pi_k を計算します。円周率k 状態値
v π k = r π k + γ P π k v π k v_{\pi_k}\:=\:r_{\pi_k}\:+ \ :\ガンマ P_{\pi_k}\:v_{\pi_k} で円周率k =r円周率k +γP円周率k で円周率k
注: v k v_k でk は状態値関数です -
ステップ 2: 策略改善 (ポリシー改善、Pl)
π k + 1 = a r g max π ( r π + γ P π v π k+1 ) \pi_{k+1 }\:=arg\max_{\pi}(r_\pi\:+\:\gamma P_\pi\:v_{\pi_k}\:) 円周率k+1 =arg円周率最大 (rπ +γPπ で円周率k )
最大化はコンポーネントごとに行われます。
仕様:
π 0 → P E v π 0 → P I π 1 → P E v π 1 → P I π 2 → P E v 2 → P I ... \pi_0\xrightarrow{ PE}v_{\pi_0}\xrightarrow{PI}\pi_1\xrightarrow{PE}v_{\pi_1}\xrightarrow{PI}\pi_2\xrightarrow{PE}v_{\pi_2}\xrightarrow{PI}\ldots 円周率0 の上で円周率0 パ私円周率1 の上で円周率1 パ私円周率2 の上で円周率2 パ私…
2. 関連する問題
- Q1: ポリシー評価ステップで状態値を取得する方法 v π k v_{\pi_k} で円周率k ベルマン方程式を解くことによって?
- Q2: ポリシー改善ステップにおいて、新しいポリシーが π k + 1 \pi_{k+1} であるのはなぜですか。円周率k+1 π k よりも優れていますか? \pi_k? 円周率k ?
- Q3: なぜこのような反復アルゴリズムが最終的に最適なポリシーに到達できるのでしょうか?
- Q4: このポリシー反復アルゴリズムと以前の値反復アルゴリズムの間にはどのような関係がありますか?
質問 1: ポリシー評価ステップで、ベルマン公式を解いて状態値を取得する方法。 v π k v_{\pi_k} で円周率k
v π k = r π k + γ P π k v π k v_{\pi_k}=r_{\pi_k}+\gamma P_{\pi_k}\mathrm{~}v_{\pi_k}で円周率k =r円周率k +γP円周率k で円周率k
- 閉じた形式の解 (特定の関数解、仕様):
v π k = ( I − γ P π k ) − 1 r π k v_{\pi_k} . = (I-\gamma P_{\pi_k})^{-1}r_{\pi_k} で円周率k =(私−γP円周率k )−1r円周率k - 反復解:
v π k (j + 1) = r π k + γ P π k v π k (j)、j = 0、1、...、 . . . . . . . . v_{\pi_k}^{(j+1)}=r_{\pi_k}+\gamma P_{\pi_k}^{(j)},j=0,1,2,. で円周率k (j+1) =r円周率k +γP円周率k で円周率k (j)、j=0、1、2、...- 给定 π π π の条件下で、反復法を使用して状態値を解きます。
- ポリシーの反復は、ポリシー評価ステップに別の反復アルゴリズムが組み込まれた反復アルゴリズムです。
質問 2: ポリシー改善ステップで、新しいポリシーが π k + 1 \pi_{k+1} になっているのはなぜですか。円周率k+1 π k \pi_k 円周率k 良い?
質問 3: ポリシー反復アルゴリズムが最終的に最適なポリシーを見つけることができるのはなぜですか?
反復するたびに戦略が徐々に最適化されるため、
v π 0 ≤ v π 1 ≤ v π 2 ≤ . . . ≤ v π k ≤ . . . ≤ v ∗ v_{\pi_0}\leq v_{\pi_1}\leq v_{\pi_2}\leq...\leq v_{\pi_k}\leq...\leq v^* で円周率0 ≤で円周率1 ≤で円周率2 ≤...≤で円周率k ≤...≤で∗
其结果就是 v π k v_{\pi_k} で円周率k は増加し続け、最終的には収束します。タワーが v ∗ v^* に収束することが証明できます。で∗。
質問 4: ポリシーの反復と値の反復の間にはどのような関係がありますか?
値反復アルゴリズムとポリシー反復アルゴリズムは、切り捨てられたポリシー反復アルゴリズムの両極端です。
3. 戦略反復アルゴリズムの詳細プロセス
Step1:政策評価【ベルマンの公式を解く】
在 π π π 特定の状況下では、 繰り返し ベルマンの公式を解き、 v π k ∗ v_{π_k}^* で円周率k ∗
- 行列ベクトル形式:
v π k ( j + 1 ) = r π k + γ P π k v π k ( j ) 、 j = 0 、 1 、 2 、 . . . . . . . . v_{\pi_k}^{(j+1)}=r_{\pi_k}+\gamma P_{\pi_k}^{(j)},j=0,1,2,. で円周率k (j+1) =r円周率k +γP円周率k で円周率k (j)、j=0、1、2、... - 要素ごとの形式:
υ π k ( j + 1 ) ( s ) = ∑ a π k ( a ∣ s ) ( ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ p ( s ′ ∣ s , a ) v π k ( j ) ( s ′ ) ) , s ∈ S , \begin{aligned}\upsilon_{\pi_k}^ {(j+1)}(s)&=\sum_a\pi_k(a|s)\left(\sum_rp(r|s,a)r+\gamma\sum_{s'}p(s' ;|s,a)v_{\pi_k}^{(j)}(s')\right),\quad s\in\mathcal{S},\end{aligned} あなた円周率k (j+1) (s)=ある∑ 円周率k (a∣s)(r∑ p(r∣s 、a)r+cs』∑ p(s'∣s,a)v円周率k (j)(s'))、s∈S、
次の時点で停止します j → ∞ j\to\infty j→∞ または j j j が十分に大きい、または ∣ v π k ( j + 1 ) − v π k ( j ) ∥ |v_{\pi_k }^{(j+1)}-v_{\pi_k}^{(j)}\| ∣v円周率k (j+1) −で円周率k (j)∥ は十分に小さいです。
Step2: ポリシーの改善
前のステップに基づく v π k v_{π_k} で円周率k
- 行列ベクトル形式:
π k + 1 = a r g max π ( r π + γ P π v π k ) \begin { aligned}\pi_{k+1}=arg\max_{\pi}(r_{\pi}+\gamma P_{\pi}\color{red}{v_{\pi_{k}}}\color{ black }{)}\end{整列} 円周率k+1 =arg円周率最大 (rπ +γPπ で円周率k ) - 要素ごとの形式:
π k + 1 ( s ) = arg max π ∑ a π ( a ∣ s ) ( ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ p ( s ′ ∣ s , a ) v π k ( s ′ ) ) ⏟ q π k ( s , a ) , s ∈ S \begin{aligned} \pi_ {k+1}(s)=\arg\max_{\pi}\sum_{a}\pi(a|s)\underbrace{\left(\sum_{r}p(r|s,a)r+\ gamma\sum_{s'}p(s'|s,a)v_{\pi_{k}}(s')\right)}_{q_{\pi_{k}}(s ,a)},\quad s\in\mathcal{S} \end{aligned} 円周率k+1 (s)=arg円周率最大 ある∑ π(a∣s )q円周率k (s,a) (r∑ p(r∣s 、a)r+cs』∑ p(s'∣s,a)v円周率k (s'))、s∈S
这里, q π k ( s , a ) q_{\pi_k}\left(s,a\right) q円周率k (s,a)是基于策略 π k \pi_k 円周率k のアクション値。令
a k ∗ ( s ) = a r g max a q π k ( a , s ) a_k^*\left(s\right)=arg\max_aq_ {\pi_k}\left(a,s\right) あるk∗ (s)=argある最大 q円周率k (a,s)
那么、貪欲なポリシー あり< /span>
π k + 1 ( a ∣ s ) = { 1 a = a k ∗ ( s ) 0 a ≠ a k ∗ ( s ) \pi_{k+1}\left(a|s\right )=\begin{cases}1&a=a_k^*\left(s\right)\\0&a\neq a_k^*\left(s\right)&\end{cases} 円周率k+1 (a∣s)={ 10 ある=あるk∗ (s)ある=あるk∗ (s)
4. 例01
- 奖励设定 (reward setting) 是 r b o u n d a r y = − 1 r_{boundary}=-1 rbound aり=−1さらに r ターゲット = 1 r_{target}=1 rtarge t =1、折扣率 (割引率) γ = 0.9 \gamma=0.9 c=0.9;
- アクション: a l 、 a 0 、 a r a_l、a_0、a_r あるl 、ある0 、あるr それぞれ左、そのまま、右を意味します
- Arm: ポリシーの反復を使用して最適なポリシーを見つける
当 k = 0 k=0 k=0时:
ステップ 1: ポリシーの評価
如图 (a), π 0 \pi_0 円周率0 が初期戦略です。ベルマン方程式は次のとおりです。
v π 0 ( s 1 ) = − 1 + γ v π 0 ( s 1 ) v π 0 ( s 2 ) = 0 + γ v π 0 ( s 1 ) v_{\pi_0}(s_1)=-1+\ガンマ v_{\pi_0}(s_1)\\[2ex] v_{\pi_0}(s_2)=0+\ガンマ v_{\pi_0}(s_1)で円周率0 (s1 )=−1+γv円周率0 (s1 )で円周率0 (s2 )=0+γv円周率0 (s1 )
- 直接求解等式:
v π 0 ( s 1 ) = − 10 , v π 0 ( s 2 ) = − 9 \left.v_{\pi_0}\left (s_1\right.\right)=-10,v_{\pi_0}\left(s_2\right.)=-9 で円周率0 (s1 )=−10、で円周率0 (s2 )=−9 - 方程式を繰り返し解きます。初期推定を v π 0 ( 0 ) ( s 1 ) = v π 0 ( 0 ) ( s 2 ) = 0 : v_{\pi_0}^{(0)}\ として選択します。 left(s_1\right)=v_{\pi_0}^{(0)}\left(s_2\right)=0: で円周率0 (0)(s1 )=で円周率0 (0)(s2 )=0:
{ v π 0 ( 1 ) ( s 1 ) = − 1 + γ v π 0 ( 0 ) ( s 1 ) = − 1 , v π 0 ( ) ( s 2 ) = 0 + γ v π 0 ( 0 ) ( s 1 ) = 0 , { v π 0 ( 2 ) ( s 1 ) = − 1 + γ v π 0 ( 1 ) ( s 1 ) = − 1.9 , v π 0 ( 2 ) ( s 2 ) = 0 + γ v π 0 ( 1 ) ( s 1 ) = − 0.9 , { υ π 0 ( 3 ) ( s 1 ) = − 1 + γ υ π 0 ( 2 ) ( s 1 ) = − 2.71 、 υ π 0 ( 3 ) ( s 2 ) = 0 + γ υ 0 ( 2 ) ( s 1 ) = − 1.71 、 . . . . . . . . . . . . . . . . . . . . \begin{整列} & \left.\left\{\begin{array}{l}v_{\pi_0}^{(1)}(s_1)=-1+\gamma v_{\pi_0}^{(0)}(s_1)= -1,\\ v_{\pi_0}^{(1)}(s_2)=0+\gamma v_{\pi_0}^{(0)}(s_1)=0,\end{array}\right.\右。 & \\&\left.\left\{\begin{array}{l}v_{\pi_0}^{(2)}(s_1)=-1+\gamma v_{\pi_0}^{(1)} (s_1)=-1.9, \\ v_{\pi_0}^{(2)}(s_2)=0+\gamma v_{\pi_0}^{(1)}(s_1)=-0.9,\end{配列}\right.\right.&&& \\ & \left.\left\{\begin{array}{l}\upsilon_{\pi_0}^{(3)}(s_1)=-1+\gamma\upsilon_{\pi_0}^{(2)}(s_1 )=-2.71,\\ \upsilon_{\pi_0}^{(3)}(s_2)=0+\gamma\upsilon_{\pi_0}^{(2)}(s_1)=-1.71,\end{配列}\right.\right.\\&{...}\\&{...}\end{整列}{ で円周率0 (1)(s1 )=−1+γv円周率0 (0)(s1 )=−1、で円周率0 (1)(s2 )=0+γv円周率0 (0)(s1 )=0、 { で円周率0 (2)(s1 )=−1+γv円周率0 (1)(s1 )=−1.9、で円周率0 (2)(s2 )=0+γv円周率0 (1)(s1 )=−0.9、 { あなた円周率0 (3)(s1 )=−1+cy円周率0 (2)(s1 )=−2.71,あなた円周率0 (3)(s2 )=0+cy円周率0 (2)(s1 )=−1.71、 ......
ステップ 2: ポリシーの改善
q π k ( s , a ) q_{\pi_k}\left(s,a\right)q円周率k (s,a) の表示例:
用 v π 0 ( s 1 ) = − 10 、 v π 0 ( s 2 ) = − 9 v_{\pi_0}\left(s_1\right)=-10,v_{\pi_0}\left(s_2\right)=-9 で円周率0 (s1 )=−10、で円周率0 (s2 )=−9 と γ = 0.9 \gamma=0.9 c=0.9 带入之后,得到:
通过选择 q π 0 q_{\pi_0} q円周率0 的最大值,the improved policy 是:
π 1 ( a r ∣ s 1 ) = 1 , π 1 ( a 0 ∣ s 2 ) = 1 \pi_1\left(a_r\left|s_1\right.\right)=1,\pi_1\left(a_0\left| s_2\right.\right)=1円周率1 (ar ∣s1 )=1、円周率1 (a0 ∣s2 )=1
新策略 π 1 π_1 円周率1 以下の図に示すように:
1 回の反復の後、戦略は最適化されます。特定の実装では、特定の評価基準が満たされるまで反復プロセスを継続する必要があります。
5. 例02
複雑な例: r b o u n d a r y = − 1 , r f or b i d d e n = − 10 r_{boundary}=-1,r_{forbidden}=-10 とします。rbound aり=−1、rfまたはbidde n =−10さらに r ターゲット = 1 r_{target}=1 rtarge t =1、折扣率 (割引率) γ = 0.9 \gamma=0.9 c=0.9 では、これらの中間ポリシーとステータスの値を確認できます。
目標に近い状態戦略が最初に良くなり、目標から遠い状態戦略が後から良くなることがわかります。
- 特定の状態 s i s_i si 、最大のアクション値を持つアクションを選択するとき、それはこの状態の次の状態に大きく依存します s j s_j sj 、たとえ s i s_i であっても、すべてのオプションの次のステップのステータスが悪い場合si アクション値が最も大きいものを選択します s j s_j sj それも意味がありません。
- しかし、 s i s_i の状態になると、si s j s_j の周囲の状態sj でターゲットに到達できる場合、 s i s_i si 到着を選択 s j s_j sj 行動すればプラスの報酬を得ることができます。
- 即当 s i s_i si 周囲に到達可能なターゲット状態がない場合、 s i s_i si 次のステップをどのように選択しても、目標には到達できません。 s i s_i si 周囲にターゲットに到達できる状態がある場合、 s i s_i si アップデートを通じて目標を達成することもできます。
3. 切り詰められたポリシー反復アルゴリズム
第一、比较 値の反復 と ポリシーの反復:
-
ポリシーの反復: 初期ポリシーから π 0 \pi_{0} 円周率0 始める:
- ポリシー評価 (PE):
v π k = r π k + γ P π k v π k \begin{aligned}v_{\pi_k}&=r_{ ; \pi_k}+\gamma P_{\pi_k}\:v_{\pi_k}\end{aligned} で円周率k =r円周率k +γP円周率k で円周率k - ポリシーの改善 (Pl):
π k + 1 = a r g max π ( r π + γ P π v π k ) \pi_{k+1}=arg\ . max_{\pi}\left(r_{\pi}\right.+\gamma P_{\pi}\left.v_{\pi_k}\right.) 円周率k+1 =arg円周率最大 (rπ +γPπ で円周率k )
- ポリシー評価 (PE):
-
値の反復: 値から v 0 v_{0} で0 始める:
- ポリシー更新 (PU):
π k + 1 = a r g max π ( r π + γ P π v k ) \left.\pi_{k+1}=arg \max_{\pi}\left(r_{\pi}\right.+\gamma P_{\pi}\left.v_{k}\right.\right) 円周率k+1 =arg円周率最大 (rπ +γPπ でk ) - 値の更新 (VU):
v k + 1 = r π k + 1 + γ P π k + 1 v k v_{k+1}\:=r_{\pi_ {k+1}}\:+\gamma P_{\pi_{k+1}}\:v_k でk+1 =r円周率k+1 +γP円周率k+1 でk
- ポリシー更新 (PU):
具体的には、ポリシー反復のデフォルト値:
ポリシー反復: π 0 → P E v π 0 → P I π 1 → P E v π 1 → P I π 2 → P E v π 2 → P I ... 値の反復: v 0 → P U π 1 ' → V U v 1 → P U π 2 ' → V U v 2 → P U ... \begin{array} {rcl} &&\text{ポリシーの反復: }\quad\quad\pi_0\xrightarrow{PE}&v_{\pi_0}\xrightarrow{PE}\pi_1\xrightarrow{PE}v_{\pi_1}\xrightarrow{PI}\pi_2\xrightarrow{PE }v_{ \pi_2}\xrightarrow{PI}\dots\\ &&\text{値の反復:}&v_0\xrightarrow{PU}\pi_1'\xrightarrow{VU}v_1\xrightarrow{PU} \pi_2 39;\xrightarrow{VU}v_2\xrightarrow{PU}\dots\end{配列}ポリシーの反復:円周率0 の上値の反復:で円周率0 パ私円周率1 の上で円周率1 パ私円周率2 の上で円周率2 パ私…で0 パウ円周率1' VUで1 パウ円周率2' VUで2 パウ…
これら 2 つのアルゴリズムのステップを詳細に比較してください。
- 同じ初期条件から始まります
- 最初の 3 つの手順は同じです
- ステップ 4 では次のように異なります。
- ポリシーの反復における解 v π 1 = r π 1 + γ P π 1 v π 1 v_{\pi_1}=r_{\pi_1}+\gamma P_{ . \pi_1}v_{\pi_1} で円周率1 =r円周率1 +γP円周率1 で円周率1 反復アルゴリズムが必要です (反復回数は無制限)
- 値の反復では、 v 1 = r π 1 + γ P π 1 v 0 v_1=r_{\pi_1}+\gamma P_{\pi_1}v_0 で1 =r円周率1 +γP円周率1 で0 は 1 ステップの反復です。
値の定義 v π 1 = r π 1 + γ P π 1 v π 1 v_{\pi_1}=r_{\pi_1}+\gamma P_{\pi_1 }\mathrm{~}v_{\pi_1}で円周率1 =r円周率1 +γP円周率1 で円周率1 ベルマン反復アルゴリズムのステップ:
- 値反復アルゴリズムは、1 つのステップを反復的に計算します。
- ポリシー反復アルゴリズムは無限のステップを反復的に計算します。
- 切り捨てられたポリシー反復アルゴリズムは、有限数の反復を計算します( j j と呼ばれます)。j)。残りは j j j 到 ∞ ∞ ∞ の反復は切り捨てられます。
分析する
質問 1: この切り捨ては収束を弱めますか?
次の図に示すように、値の反復、ポリシーの反復、および切り捨てられたポリシーの反復の関係を示しています。
例: 初期戦略は、すべての状態で所定の位置にとどまることです
定義 ∣ ∣ v k − v ∗ ∣ ∣ ||v_k-v^*|| ∣∣vk −で∗∣∣ 是在时刻 k k k の状態値エラー。停止基準は ∣ ∣ v k − v ∗ ∣ ∣ ∣ < 0.01 ||v_k-v^*|||<0.01 ∣∣vk −で∗∣∣∣<;0.01 仿真结果如下:
”切り捨てられたポリシーの繰り返し - x x x“,其中 x = 1 , 3 , 4 , 100 x=1,3,4,100 バツ=1、3、4、100 は、ポリシー評価ステップのベルマン アルゴリズムの反復に対応します x x x 次。
- 「Truncated-policy iteration-1」: 各反復のポリシー評価ステップでベルマン反復アルゴリズムを実行するときに、1 回の反復のみで計算されることを示します v π j 1 v_{\pi_j}^{1} で円周率j 1 この政策評価の最終結果として、
- "Truncated-policy iteration-3": ベルマン反復アルゴリズムが、各反復のポリシー評価ステップで 3 回反復することによってのみ計算されることを示します。 v π j 3 v_{ \pi_j}^{3} で円周率j 3 この政策評価の最終結果として、
- "Truncated-policy iteration-6": ベルマン反復アルゴリズムが各反復のポリシー評価ステップで 6 回の反復のみで計算されることを示します v π j 6 v_{\ pi_j}^{6} で円周率j 6 この政策評価の最終結果として、
- "Truncated-policy iteration-100": ベルマン反復アルゴリズムが、各反復のポリシー評価ステップで 100 回反復することによってのみ計算されることを示します。 v π j 100 v_{ \pi_j}^{100} で円周率j 100この政策評価の最終結果として、
上の図によると、結論は次のようになります。
- 当 x x x が大きいほど、より速く収束できます。
- 但是当 x x x は増加し続け、この加速率は徐々に遅くなります。
- 実際のアプリケーションでは、ポリシー評価ステップのベルマン アルゴリズムは非常に少数の反復のみを実行します (1 つのステップを反復して計算するだけではなく、あまりにも多くのステップを計算しないでください。1 つのステップよりもいくつか多くのステップを計算する場合) 、より大きなメリットが得られます。);