(4) 深層強化学習の基礎:Actor-Critic

1. 俳優と批評家の手法

アクターは、エージェントの動きを制御するために使用される戦略ネットワークです。それはアスリートとして捉えることができます。

クリティカルは値ネットワークであり、アクションを採点するために使用され、審判とみなすことができます。

戦略学習と価値学習について話す前に、これら 2 つのネットワークをトレーニングする方法を紹介しましょう。いわゆる「アクター・クリティック・メソッド」は、この 2 つを組み合わせたものです。

2. バリューネットワークと政策ネットワーク

まず、状態値関数を確認してみましょう。

2.1 状態値関数の近似

定義: 状態値関数。

V π(s) = ∑ a π(a ∣ s) ⋅ Q π(s, a)。V_{\pi}(s)=\sum_{a}\pi(a\mid s) \cdot Q_{\pi}(s,a)。Vp( s )=π ( _s )Qp( s a )

π ( a ∣ s ) \pi(a\mid s)π ( _s )はポリシー関数であり、アクションの確率値を制御し、エージェントの移動を制御するために使用されます。

Q π ( s , a ) Q_{\pi}(s,a)Qp( s a )はアクション値関数であり、すべてのアクションaa現在の状態では

残念ながら、これら 2 つの関数は不明なので、これらを近似するには 2 つのネットワークを使用する必要があります。次に、アクタークリティック法を使用してこれら 2 つのネットワークを学習します。

ポリシーネットワーク (アクター):

• ニューラルネットπ ( a ∣ s ; θ ) \pi(a|s;\;\theta) を使用します。π ( a s ;θ )を使用してπ ( a ∣ s ) \pi(a|s) をπ ( a s )
θ \シータθ : ニューラルネットのトレーニング可能なパラメータ。

値ネットワーク (批評家):
• ニューラル ネットワークq ( s , a ; w ) q(s,a;w) を使用します。q ( s ,; _w )を使用してQ π ( s , a ) Q_{\pi}(s,a) をQp( s a )
www : ニューラルネットのトレーニング可能なパラメータ。

次に、これら 2 つのネットワークを構築しましょう。

これら 2 つのネットワークを学習する目的は、選手の得点をどんどん高くし、審判の得点をより正確にすることです。

3. ニューラルネットワークをトレーニングする

定義:ニューラル ネットワークを使用して近似された状態値関数。

V(s; θ, w) = ∑ a π(a ∣ s; θ) ⋅ q(s, a; w)。V(s;\theta,w)=\sum_{a}\pi(a|s;\theta) \cdot q(s,a;w)。V ( s ;=π ( a s ;q ( s ,; _w

トレーニング:パラメータθ \thetaを更新しますθwww

• ポリシーネットワークπ ( a ∣ s ; θ ) \pi(a|s; \theta) を更新します。π ( a s ;θ )を増加させて状態値V ( s ; θ , w ) V(s; \theta,w)V ( s ;w
               \;\;\;\;\;\;\;• 俳優のパフォーマンスが徐々に向上します。
               \;\;\;\;\;\;\;• 監督は純粋に価値観ネットワーク(批評家)によるものです。

• 値ネットワークq ( s , a ; w ) q(s,a; w) を更新します。q ( s ,; _w )リターンをより正確に見積もるために。
               \;\;\;\;\;\;\;• 批評家の判断がより正確になります。
               \;\;\;\;\;\;\;• 監督は純粋に報酬によるものです。

ステップ:

  1. 状態st を観察します。s_{t}。s
  2. a_{t} でのアクションをランダムにサンプリングしますあるπ ( ⋅ ∣ st ; θ t )による。\pi(·|s_{t}; \theta_{t})。π ( s;
  3. a_{t} で実行しますある新しい状態st + 1 s_{t+1}を観察しますst + 1そして報酬rt r_{t}r
  4. アップデートwww (値ネットワーク内) 時間差 (TD) を使用します。
  5. θ \thetaを更新しますポリシー勾配を使用したθ (ポリシー ネットワーク内)。

3.1 値ネットワークqqを更新するq TDを使用する

q ( st , at ; wt ) q(s_{t},a_{t};w_{t}) を計算します。q ( sある;w)およびq (st + 1 , at + 1 ; wt ) 。q(s_{t+1},a_{t+1};w_{t})。q ( st + 1あるt + 1;w

• TD ターゲット: yt = rt + γ ⋅ q ( st + 1 , at + 1 ; wt ) 。y_{t}=r_{t}+\gamma·q(s_{t+1},a_{t+1};w_{t})。y=r+γ q ( st + 1あるt + 1;w

• 損失: L ( w ) = 1 2 [ q ( st , at ; w ) − yt ] 2 。L(w)=\frac{1}{2}[q(s_{t},a_{t};w)-y_{t}]^{2}。L ( w )=21[ q ( sある;y]

• 勾配降下法: wt + 1 = wt − α ⋅ ∂ L ( w ) ∂ w ∣ w = wt 。w_{t+1}=w_{t}-\alpha·\frac{\partial L(w)}{\partial w}\mid_{w=w_{t}}。wt + 1=wα⋅ _∂w _L ( w )w = w

3.2 ポリシーネットワークπ \piの更新ポリシー勾配を使用したπ

定義:ニューラル ネットワークを使用して近似された状態値関数。

V(s; θ, w) = ∑ a π(a ∣ s; θ) ⋅ q(s, a; w)。V(s;\theta,w)=\sum_{a}\pi(a|s;\theta) \cdot q(s,a;w)。V ( s ;=π ( a s ;q ( s ,; _w

ポリシー勾配: V ( st ; θ , w ) V(s_{t};\theta,w)の導関数V ( s;w ) θ \thetaに対して私は

g (a, θ) = ∂ log π (a ∣ s, θ) ∂ θ ⋅ q (st, a ; w) とします。g(a,\theta)=\frac{\partial log\pi(a|s,\theta)}{\partial \theta}·q(s_{t},a;w)。g ( a ,=∂θ _l o g π ( a s , θ )q ( s; _w

∂ V (s ; θ , wt ) ∂ θ = EA [ g ( A , θ ) ] 。\frac{\partial V(s;\theta,w_{t})}{\partial \theta}=E_{A}[g(A,\theta)]。∂θ _V ( s ; θ , w)=E[ g ( A ,i )]

アルゴリズム:確率的ポリシー勾配を使用してポリシー ネットワークを更新します。

• ランダムサンプリング: aaa ~π ( ⋅ ∣ st ; θ ) \pi(·|s_{t};\theta)。π ( s;

• 確率的勾配上昇: θ t + 1 = θ t + β ⋅ g ( a , θ t ) 。\theta_{t+1}=\theta_{t}+\beta・g(a,\theta_{t})。t + 1=+β g ( a ,

3.3 アルゴリズムの概要

  1. 状態st s_{t}を観察しますsa_{t} でランダムにサンプリングしますある~ π ( ⋅ ∣ st ; θ t ) 。\pi(·|s_{t};\theta_{t})。π ( s;
  2. a_{t} で実行しますある; その後、環境は新しい状態st + 1 s_{t+1}を与えますst + 1そして報酬rt r_{t}r
  3. a ⃗ t + 1 \vec{a}_{t+1} をランダムにサンプリングしますある t + 1~ π ( ⋅ ∣ st + 1 ; θ t ) 。\pi(·|s_{t+1};\theta_{t})。π ( st + 1;( ⃗ t + 1 \vec{a}_{t+1} は実行しないでください。ある t + 1!)
  4. 値ネットワークを評価します: qt = q ( st , at ; wt ) q_{t}=q(s_{t},a_{t};w_{t})q=q ( sある;w)およびqt + 1 = q ( st + 1 , a ⃗ t + 1 ; wt ) 。q_{t+1}=q(s_{t+1},\vec{a}_{t+1};w_{t})。qt + 1=q ( st + 1ある t + 1;w
  5. TD 誤差を計算します: δ t = qt − ( rt + γ ⋅ qt + 1 ) 。\delta_{t}=q_{t}-(r_{t}+\gamma \cdot q_{t+1})。d=q( r+cqt + 1
  6. 微分値ネットワーク: dw , t = ∂ q ( st , at , w ) ∂ w ∣ w = wt 。d_{w,t}=\frac{\partial q(s_{t},a_{t},w)}{\partial w}\mid_{w=w_{t}}。dw t=∂w _q ( s_w )w = w
  7. 値ネットワークを更新します: wt + 1 = wt − α ⋅ δ t ⋅ dw , t 。w_{t+1}=w_{t}-\alpha \cdot\delta_{t}\cdot d_{w,t}。wt + 1=wあるddw t
  8. ポリシー ネットワークを微分します: d θ , t = ∂ log π ( at ∣ st , θ ) ∂ θ ∣ θ = θ t 。d_{\theta,t}=\frac{\partial log\pi(a_{t}|s_{t},\theta)}{\partial \theta}\mid_{\theta=\theta_{t}}。d t=∂θ _l o g π ( as)。θ = θ
  9. ポリシー ネットワークを更新します: θ t + 1 = θ t + β ⋅ qt ⋅ d θ , t 。\theta_{t+1}=\theta_{t}+\beta\cdot q_{t}\cdot d_{\theta,t}。t + 1=+bqd t

4. まとめ

おすすめ

転載: blog.csdn.net/weixin_49716548/article/details/126260620