技術共有

# [0705] Task06 DDPGアルゴリズム、PPOアルゴリズム、SACアルゴリズム[理論のみ]

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

  • easy-rl PDF版ノート構成 P5、P10~P12
  • Joyrl比較補足 P11-P13
  • OpenAI ドキュメントの整理 ⭐ https://spinningup.openai.com/en/latest/index.html

ここに画像の説明を挿入します

ここに画像の説明を挿入します

最新版PDFダウンロード
アドレス: https://github.com/datawhalecina/easy-rl/releases
国内の住所 (国内の読者に推奨)
リンク: https://pan.baidu.com/s/1isqQnpVRWbb3yh83Vs0kbw 抽出コード: us6a

easy-rlオンライン版リンク(コードのコピー用)
参考リンク2:https://datawhalecina.github.io/joyrl-book/

他の:
[正誤記録リンク]
——————
5. 深層強化学習の基礎 ⭐️
オープンソース コンテンツ: https://linklearner.com/learn/summary/11
——————————

ここに画像の説明を挿入します
画像ソース

近接ポリシーの最適化 (PPO)

同一の戦略: 学習されるエージェントと環境と対話するエージェントは同じです。
異種戦略: 学習するエージェントと環境と対話するエージェントは異なります。

ポリシーの勾配: データのサンプリングに多くの時間が必要

同じ戦略 ⟹ 重要度のサンプリング ~~~overset{重要度のサンプリング}{Longrightarrow}~~~   重要度のサンプリング    さまざまな戦略

PPO: あまりに異なる 2 つの分布は避けてください。 同じ戦略アルゴリズム
1.独自の最適化項目 J ( θ , θ ′ ) J(シータ,シータ^プライム)J(θ,θ)
2. 制約項目: θ シータθ そして θ ′ シータ^プライムθ 出力アクションの KL 発散 ( θ シータθ そして θ ′ シータ^プライムθ 似ているほど良い)

PPO の前身は、信頼領域ポリシー最適化 (TRPO) です。
TRPOはKL発散制約を追加制約として扱い、目的関数に入れていないため扱いが難しく、計算が困難です。したがって、通常は TRPO ではなく PPO を使用します。 PPO と TRPO のパフォーマンスは似ていますが、PPO は TRPO よりも実装がはるかに簡単です。

KLダイバージェンス:作用距離。アクションを実行する確率分布 距離。

PPO アルゴリズムには、近接ポリシー最適化ペナルティ (PPO ペナルティ) と近接ポリシー最適化クリッピング (PPO クリップ) という 2 つの主なバリエーションがあります。

ここに画像の説明を挿入します

同様のパフォーマンスで実装が容易
トラストゾーン戦略の最適化 (信頼領域ポリシー最適化(TRPO)
近接戦略の最適化 (近接政策最適化、 PPO
近接ポリシー最適化ペナルティ (PPOペナルティ
近接戦略最適化の調整 (PPOクリップ

——————————
P10 報酬が少ない問題
1. 報酬をデザインする。 ドメインの知識が必要
関連する各アクションに最終的な報酬を割り当てるのはどうでしょうか?

2. 好奇心
本質的好奇心モジュール (ICM)
入力: 、 st a_t、s_tで1つのt,st
出力: s ^ t + 1 ハット s_{t+1}s^t+1
ネットワークの予測値 s ^ t + 1 ハット s_{t+1}s^t+1 真の価値を持って st + 1 s_{t+1}st+1 似ていないほど、 rti r_t^irt 大きな方

rti r_t^irt : 将来の状態を予測するのが困難であればあるほど、そのアクションに対する報酬は大きくなります。冒険と探検を奨励します。

  • 指標が単一すぎて、無駄なことしか学べない可能性があります。

特徴抽出器

ネットワーク 2:
入力: ベクトル ϕ ( st ) {bm ファイ}(s_{t})ϕ(st) そして ϕ ( st + 1 ) {bm ファイ}(s_{t+1})ϕ(st+1)

アクションを予測する a ^ 帽子 a1つの^ 実際のアクションに近いほど良いです。

ここに画像の説明を挿入します

3. コース学習

簡単→難しい

逆カリキュラム学習:
最後の最も理想的な状態 [これをゴールド状態と呼びます] から始めて、次の状態に進みます。黄金状態に最も近い状態を見つけるエージェントに到達してもらいたい、段階的な「理想的な」状態として。もちろん、このプロセスでは、いくつかの極端な状態、つまり簡単すぎる状態や難しすぎる状態を意図的に削除します。

4. 階層型強化学習 (HRL)
エージェントの戦略は、高レベルの戦略と低レベルの戦略に分かれており、高レベルの戦略は、現在の状態に基づいて低レベルの戦略を実行する方法を決定します。

————————
P11 模倣学習
ご褒美シーンがよくわからない

模倣学習 (IL)
デモンストレーションから学ぶ
見習い学習
見て学ぶ

明確な報酬があります: ボードゲーム、ビデオゲーム
明確な報酬を与えることができない: チャットボット

専門家のデモンストレーションを収集: 人間の運転記録、人間の会話

逆に、専門家はどのような報酬関数でこれらの行動をとるのでしょうか?
逆強化学習というのは、まず報酬関数を求めます、報酬関数を見つけた後、強化学習を使用して最適なアクターを見つけます。

三人称模倣学習技術

————————
P12 深い決定論的政策勾配 (DDPG)

ここに画像の説明を挿入します

エクスペリエンスリプレイ戦略を使用する

アブレーション実験[変数制御法]解析あらゆる制約戦闘の結果に影響を与えます。


ジョワール:

DDPG_継続

必要としている確実戦略と継続的なアクション宇宙を前提とすると、このタイプのアルゴリズムは比較的安定したベースライン アルゴリズムになります。

継続的なアクション スペースの DQN

深い決定論的ポリシー勾配アルゴリズム (DDPG)

エクスペリエンス再生メカニズムにより、サンプル間の相関関係が低減され、サンプルの効果的な利用が向上し、トレーニングの安定性が向上します。

欠点:
1. 離散的な動作空間では使用できません
2、ハイパーパラメータに大きく依存する
3. 非常に敏感な初期条件。 アルゴリズムの収束とパフォーマンスに影響を与える
4. 局所最適に陥りやすい。

  • 決定論的戦略の採用により、アルゴリズムが局所的な最適化に陥り、全体的な最適な戦略を見つけることが困難になる可能性があります。探索可能性を高めるには、ノイズ戦略を追加したり、他の探索方法を使用したりするなど、いくつかの対策を講じる必要があります。

ソフト アップデートの利点は、よりスムーズで遅いため、急激すぎるウェイト アップデートによって引き起こされるショックを回避し、トレーニングの発散のリスクを軽減できることです。

二重遅延決定論的ポリシー勾配アルゴリズム (ツイン遅延 DDPG、TD3)

二重遅延決定論的ポリシー勾配アルゴリズム

3 つの改善点: Double Q ネットワーク、遅延アップデート、ノイズ正則化
ダブルキューネットワーク : 2 つの Q ネットワーク。Q 値が小さい方を選択します。 Q値の過大評価問題に対処し、アルゴリズムの安定性と収束性を向上させます。

更新の遅延: アクターの更新頻度を批評家の更新頻度よりも低くします。

  • 考え直してください

ノイズはもっと似ています正則化そのような方法で値関数の更新もっとスムーズ

OpenAIジムライブラリ_振り子_TD3

TD3 に関する OpenAI ドキュメント インターフェイスのリンク

TD3 論文 PDF リンク

PPO_連続/離散アクション スペース [OpenAI 201708]

強化学習で最もよく使用される PPO アルゴリズム
離散 + 連続
高速かつ安定しており、パラメータの調整が簡単
ベースラインアルゴリズム

PPO未定

実際には、クリップ制約がより単純で計算コストが低く、より良い結果が得られるため、一般に使用されます。

オフポリシーアルゴリズムでは、歴史的な経験を活かすために、通常はエクスペリエンスのリプレイを使用して、以前のエクスペリエンスを保存して再利用します。データ活用効率が高い

PPO はポリシーに基づくアルゴリズムです

  • 重要度サンプリング部分は古いアクター サンプリングからのサンプルを使用しますが、これらのサンプルは、戦略を更新するために直接使用されるわけではありません。代わりに、重要度サンプリングは、2 つのサンプル分布の差が可能な限り小さくなったとしても、異なるデータ分布によって引き起こされる誤差を最初に修正するために使用されます。つまり、重要度サンプリング後のサンプルは旧戦略によるサンプリングでは得られるものの、更新されたポリシーからおおよそ取得つまり、最適化したいアクターとサンプリングするアクターは同じです。

——————————————————

—— OpenAI ドキュメント_PPO

OpenAI ドキュメント
論文 arXiv インターフェイス リンク: 近接ポリシー最適化アルゴリズム

PPO: オンポリシー アルゴリズム。離散または連続アクション スペースに適しています。可能な局所最適値

PPO の動機は TRPO と同じです: 既存のデータを活用する方法戦略において可能な限り最大の改善ステップを踏み出すあまり変更せずに、誤ってパフォーマンスクラッシュを引き起こしていませんか?
TRPO は洗練された 2 次アプローチでこの問題を解決しようとしますが、PPO は他のトリックを使用して新しい戦略を古い戦略に近づける 1 次アプローチです。
PPO メソッドは実装がはるかに簡単で、経験的には少なくとも TRPO と同等のパフォーマンスを発揮します。

PPO には、PPO-ペナルティと PPO-クリップという 2 つの主なバリエーションがあります。

  • PPO ペナルティは、TRPO と同様に KL 制約の更新を近似的に解決しますが、目的関数の KL 発散をハード制約にする代わりにペナルティを課し、適切にスケーリングされるようにトレーニング中にペナルティ係数を自動的に調整します。
  • PPO-Clip には KL 発散がなく、目的関数に制約もありません。代わりに、新しい戦略が古い戦略から離れようとするインセンティブを取り除く目的関数の特定の調整に依存します。
    PPO-Clip (OpenAl で使用される主要なバリアント)。

ここに画像の説明を挿入します

PPO-Clip アルゴリズムの疑似コード

ここに画像の説明を挿入します

アルゴリズム: PPO クリップ
1: 入力: 初期戦略パラメータ θ 0 シータ_0θ0、初期値関数パラメータ ϕ 0 ファイ_0ϕ0
2: k = 0、1、2、…の場合、{bf for} ~ k=0、1、2、dots~ {bf do}のために =0,1,2, する
3:        ~~~~~~       環境内でポリシーを実行することによって π k = π ( θ k ) pi_k=pi(theta_k)π=π(θ) 軌道セットを収集する D k = { τ i } {cal D}_k={tau_i}={τ}
4:        ~~~~~~       報酬を計算する (今後の報酬) R ^ t は R_t~~~~~R^t      R ^ t は R_tR^t 計算ルール
5:        ~~~~~~       現在値関数に基づいて利点の推定値を計算する V ϕ k V_{phi_k}ϕ A ^ t は A_t^t (任意の優勢推定方法を使用します)       ~~~~~       ▢ 現在の利点の推定方法は何ですか?
6:        ~~~~~~       PPO-Clip 目的関数を最大化してポリシーを更新します。
            ~~~~~~~~~~~            
θ k + 1 = arg ⁡ max ⁡ θ 1 ∣ D k ∣ T ∑ τ ∈ D k ∑ t = 0 T min ⁡ ( π θ ( at ∣ st ) π θ k ( at ∣ st ) A π θ k ( st 、 at ) 、 g ( ϵ 、 A π θ k ( st 、 at ) ) ) ~~~~~~~~~~~theta_{k+1}=argmaxlimits_thetafrac{1}{|{cal D}_k|T}sumlimits_{tauin{cal D}_k}sumlimits_{t=0}^TminBig(frac{pi_{theta} (a_t|s_t)}{pi_{theta_k}(a_t|s_t)}A^{pi_{theta_k}}(s_t,a_t),g(epsilon,A^{pi_{theta_k}}(s_t,a_t))大きい)           θ+1=arθ最大T1τt=0T(πθ(1つのtst)πθ(1つのtst)πθ(st,1つのt),(ϵ,πθ(st,1つのt)))       ~~~~~       ▢ 戦略更新式はどのように決定するか?
            ~~~~~~~~~~~            
            ~~~~~~~~~~~             π θ k パイシータkπθ : 更新前の戦略パラメータ ベクトル。 サンプリングを大切にします。古い戦略からのサンプリング。
            ~~~~~~~~~~~            
            ~~~~~~~~~~~            一般的な確率的勾配上昇 + アダム
7:        ~~~~~~       平均二乗誤差回帰適合値関数:
            ~~~~~~~~~~~            
ϕ k + 1 = arg ⁡ min ⁡ ϕ 1 ∣ D k ∣ T ∑ τ ∈ D k ∑ t = 0 T ( V ϕ ( st ) − R ^ t ) 2 ~~~~~~~~~~~~phi_{k+1}=arg minlimits_phifrac{1}{|{cal D}_k|T}sumlimits_{tauin{cal D}_k}sumlimits_{t=0}^TBig(V_phi(s_t)-hat R_tBig)^2           ϕ+1=arϕT1τt=0T(ϕ(st)R^t)2
            ~~~~~~~~~~~            
            ~~~~~~~~~~~            一般的な勾配降下法
8: bf終了〜終了終わり のために
             ~~~~~~~~~~~~             

$dots$ … ~~~ドット   

g ( ϵ , A ) = { ( 1 + ϵ ) A A ≥ 0 ( 1 − ϵ ) AA &lt; 0 g(epsilon,A)=左{(1+ϵ)    0(1ϵ)<0右。 (ϵ,)={(1+ϵ)    (1ϵ)0<0

ここに画像の説明を挿入します

紙の中で利点の推定:

A ^ t = − V ( st ) + rt + γ rt + 1 + ⋯ + γ T − t + 1 r T − 1 + γ T − t V ( s T ) ⏟ R ^ t ? ? ? 帽子 A_t=-V(s_t)+underbrace{r_t+gamma r_{t+1}+cdots+gamma^{T-t+1}r_{T-1}+gamma^{Tt}V(s_T)}_{textcolor{blue}{帽子 R_t???}}^t=(st)+R^t??? rt+γrt+1++γTt+1rT1+γTt(sT)

ここに画像の説明を挿入します

作る Δ t = rt + γ V ( st + 1 ) − V ( st ) Delta_t =r_t+gamma V(s_{t+1})-V(s_t)Δt=rt+γV(st+1)(st)
しかし rt = Δ t − γ V ( st + 1 ) + V ( st ) r_t=Delta_t - gamma V(s_{t+1})+V(s_t)rt=ΔtγV(st+1)+(st)

代わりの A ^ t は A_t^t 表現

A ^ t = − V ( st ) + rt + γ rt + 1 + γ 2 rt + 2 + ⋯ + γ T − tr T − 2 + γ T − t + 1 r T − 1 + γ T − t V ( s T ) = − V ( st ) + rt + γ rt + 1 + ⋯ + γ T − t + 1 r T − 1 + γ T − t V ( s T ) = − V ( st ) + Δ t − γ V ( st + 1 ) + V ( st ) + γ ( Δ t + 1 − γ V ( st + 2 ) + V ( st + 1 ) ) + γ 2 ( Δ t + 2 − γ V ( st + 3 ) + V ( st + 1 ) ) + ⋯ + γ T − t ( Δ T − t − γ V ( s T − t + 1 ) + V ( s T − t ) ) + γ T − t + 1 ( Δ T − 1 − γ V ( s T ) + V ( s T − 1 ) ) + γ T − t V ( s T ) = Δ t + γ Δ t + 1 + γ 2 Δ t + 2 + ⋯ + γ T − t Δ T − t + γ T − t + 1 Δ T − 1ˆt=(st)+rt+γrt+1+γ2rt+2++γTtrT2+γTt+1rT1+γTt(sT)=(st)+rt+γrt+1++γTt+1rT1+γTt(sT)=(st)+       Δtγ(st+1)+(st)+       γ(Δt+1γ(st+2)+(st+1))+       γ2(Δt+2γ(st+3)+(st+1))+       +       γTt(ΔTtγ(sTt+1)+(sTt))+       γTt+1(ΔT1γ(sT)+(sT1))+       γTt(sT)=Δt+γΔt+1+γ2Δt+2++γTtΔTt+γTt+1ΔT1 ^t=(st)+rt+γrt+1+γ2rt+2++γTtrT2+γTt+1rT1+γTt(sT)=(st)+rt+γrt+1++γTt+1rT1+γTt(sT)=(st)+       ΔtγV(st+1)+(st)+       γ(Δt+1γV(st+2)+(st+1))+       γ2(Δt+2γV(st+3)+(st+1))+       +       γTt(ΔTtγV(sTt+1)+(sTt))+       γTt+1(ΔT1γV(sT)+(sT1))+       γTt(sT)=Δt+γΔt+1+γ2Δt+2++γTtΔTt+γTt+1ΔT1

ここに画像の説明を挿入します

クリッピングは、政策の大幅な変更に対するインセンティブを除去することで、規則化の役割を果たします。ハイパーパラメータ ϵ イプシロンϵ 新しい戦略と古い戦略の間の距離に対応します

この種のクリッピングにより、最終的には古い戦略とはかけ離れた新しい戦略が生成される可能性は依然としてありますが、ここでの実装では特に単純な方法を使用します。早めにやめてください 。新しいポリシーと古いポリシーの平均 KL 乖離がしきい値を超える場合、勾配ステップの実行を停止します。

PPO 目的関数の単純な導出リンク
PPO-Clip の目的関数は次のとおりです。
  ~  
L θ k CLIP ( θ ) = E s , a ∼ θ k [ min ⁡ ( π θ ( a ∣ s ) π θ k ( a ∣ s ) A θ k ( s , a ) , clip ( π θ ( a ∣ s ) π θ k ( a ∣ s ) , 1 − ϵ , 1 + ϵ ) A θ k ( s , a ) ) ] L^{rm CLIP}_{theta_k}(theta)=underset{s, asimtheta_k}{rm E}Bigg[minBigg(frac{pi_theta(a|s)}{pi_{theta_k}(a|s)}A^{theta_k}(s, a), {rmクリップ}Big(frac{pi_theta(a|s)}{pi_{theta_k}(a|s)},1-epsilon, 1+epsilonBig)A^{theta_k}(s, a)Bigg)Bigg]θクリップ(θ)=s,1つのθ[(πθ(1つのs)πθ(1つのs)θ(s,1つの),クリップ(πθ(1つのs)πθ(1つのs),1ϵ,1+ϵ)θ(s,1つの))]
  ~  
$underset{s, asimtheta_k}{rm E}$ E s , a ∼ θ k ~~~アンダーセット{s, asimtheta_k}{rm E}   s,1つのθ
  ~  
いいえ。 えーっ 反復の戦略パラメータ θ k シータkθ ϵ イプシロンϵ 小さなハイパーパラメータです。
設定 ϵ ∈ ( 0 , 1 ) イプシロニン(0,1)ϵ(0,1)、 意味
F ( r , A , ϵ ) ≐ min ⁡ ( r A , clip ( r , 1 − ϵ , 1 + ϵ ) A ) F(r,A,epsilon)doteqminBigg(rA,{rm clip}(r,1-epsilon,1+epsilon)ABigg)(r,,ϵ)(r,クリップ(r,1ϵ,1+ϵ))
いつ A ≥ 0 年齢q00
F ( r , A , ϵ ) = min ⁡ ( r A , クリップ ( r , 1 − ϵ , 1 + ϵ ) A ) = A min ⁡ ( r , クリップ ( r , 1 − ϵ , 1 + ϵ ) ) = A min ⁡ ( r , { 1 + ϵ r ≥ 1 + ϵ rr ∈ ( 1 − ϵ , 1 + ϵ ) 1 − ϵ r ≤ 1 − ϵ } ) = A { min ⁡ ( r , 1 + ϵ ) r ≥ 1 + ϵ min ⁡ ( r , r ) r ∈ ( 1 − ϵ , 1 + ϵ ) min ⁡ ( r , 1 − ϵ ) r ≤ 1 − ϵ } = A { 1 + ϵ r ≥ 1 + ϵ rr ∈ ( 1 − ϵ , 1 + ϵ ) rr ≤ 1 − ϵ } 右辺の範囲より = A min ⁡ ( r , 1 + ϵ ) = min ⁡ ( r A , ( 1 + ϵ ) A )begin{aligned}F(r,A,epsilon)&=minBigg(rA,{rm clip}(r,1-epsilon,1+epsilon)ABigg)\ &=AminBigg(r,{rm clip}(r,1-epsilon,1+epsilon)Bigg)\ &=AminBigg(r,left{begin{aligned}&1+epsilon~~&rgeq1+epsilon\ &r &rin(1-epsilon,1+epsilon)\ &1-epsilon &rleq1-epsilon\ end{aligned}right}Bigg)\ &=Aleft{右}\ &=A左{right}~~~~~textcolor{blue}{右側の範囲による}\ &=Amin(r, 1+epsilon)\ &=minBigg(rA, (1+epsilon)ABigg) end{aligned} (r,,ϵ)=(r,クリップ(r,1ϵ,1+ϵ))=(r,クリップ(r,1ϵ,1+ϵ))=(r, 1+ϵ  r1ϵr1+ϵr(1ϵ,1+ϵ)r1ϵ )= (r,1+ϵ)  (r,r)(r,1ϵ)r1+ϵr(1ϵ,1+ϵ)r1ϵ = 1+ϵ  rrr1+ϵr(1ϵ,1+ϵ)r1ϵ      右の範囲に応じて=(r,1+ϵ)=(r,(1+ϵ))
  ~  
いつ A &lt; 0 A&lt;0<0
F ( r , A , ϵ ) = min ⁡ ( r A , クリップ ( r , 1 − ϵ , 1 + ϵ ) A ) = A max ⁡ ( r , クリップ ( r , 1 − ϵ , 1 + ϵ ) ) = A max ⁡ ( r , { 1 + ϵ r ≥ 1 + ϵ rr ∈ ( 1 − ϵ , 1 + ϵ ) 1 − ϵ r ≤ 1 − ϵ } ) = A { max ⁡ ( r , 1 + ϵ ) r ≥ 1 + ϵ max ⁡ ( r , r ) r ∈ ( 1 − ϵ , 1 + ϵ ) max ⁡ ( r , 1 − ϵ ) r ≤ 1 − ϵ } = A { r r ≥ 1 + ϵ rr ∈ ( 1 − ϵ , 1 + ϵ ) 1 − ϵ r ≤ 1 − ϵ } 右辺の範囲に従って = A max ⁡ ( r , 1 − ϵ ) = min ⁡ ( r A , ( 1 − ϵ ) A )right}Bigg)\ &=Aleft{右}\ &=A左{right}~~~~~textcolor{blue}{右側の範囲による}\ &=Amax(r, 1-epsilon)\ &=textcolor{blue}{min}Bigg(rA,(1-epsilon) ABigg) 終わり{整列} (r,,ϵ)=(r,クリップ(r,1ϵ,1+ϵ))=メートル1つのバツ(r,クリップ(r,1ϵ,1+ϵ))=最大(r, 1+ϵ  r1ϵr1+ϵr(1ϵ,1+ϵ)r1ϵ )= 最大(r,1+ϵ)  最大(r,r)最大(r,1ϵ)r1+ϵr(1ϵ,1+ϵ)r1ϵ = r  r1ϵr1+ϵr(1ϵ,1+ϵ)r1ϵ      右の範囲に応じて=最大(r,1ϵ)=メートル(r,(1ϵ))
  ~  
要約すると: 定義可能 g ( ϵ , A ) g(イプシロン,A)(ϵ,)
g ( ϵ , A ) = { ( 1 + ϵ ) A A ≥ 0 ( 1 − ϵ ) AA &lt; 0 g(epsilon,A)=左{右。 (ϵ,)={(1+ϵ)    (1ϵ)0<0
ここに画像の説明を挿入します

この定義により、新しい戦略が古い戦略から大きく逸脱することが防止されるのはなぜですか?
効果的な重要度のサンプリングには新しい戦略が必要 π θ ( a ∣ s ) π_theta(a|s) についてπθ(1つのs) そして古い戦略 π θ k ( a ∣ s ) pi_{theta_k}(a|s)πθ(1つのs) 2 つの分布の差が大きすぎることはできません

1. アドバンテージがプラスの場合

L ( s 、 a 、 θ k 、 θ ) = min ⁡ ( π θ ( a ∣ s ) π θ k ( a ∣ s ) 、 1 + ϵ ) A π θ k ( s 、 a ) L(s、a、theta_k、 theta)=minBigg(frac{pi_theta(a|s)}{pi_{theta_k}(a|s)}、 1+epsilonBigg)A^{pi_{theta_k}}(s、 a)(s,1つの,θ,θ)=(πθ(1つのs)πθ(1つのs),1+ϵ)πθ(s,1つの)
利点関数: より多くの報酬を持つ特定の状態-アクションのペアを見つけます -&gt; 状態-アクションのペアの重みを増加します。

状態とアクションのペアが ( s 、 a ) (s 、 a)(s,1つの) が肯定的な場合、アクションが ああ1つの 実行される可能性が高くなります。つまり、 π θ ( a ∣ s ) π_theta(a|s) についてπθ(1つのs) 増やせば目標も上がります。
この項目の min は、目的関数を特定の値までのみ増加するように制限します。
一度 π θ ( a ∣ s ) &gt; ( 1 + ϵ ) π θ k ( a ∣ s ) pi_theta(a|s)&gt;(1+epsilon)pi_{theta_k}(a|s)πθ(1つのs)>(1+ϵ)πθ(1つのs)、最小トリガー数、この項目の値を次のように制限します ( 1 + ϵ ) π θ k ( a ∣ s ) (1+イプシロン)pi_{theta_k}(a|s)(1+ϵ)πθ(1つのs)
新しいポリシーは、古いポリシーから大きく離れることで利益を得ることはありません。
新しい戦略は、古い戦略から離れても利益を得られません。

2. アドバンテージがマイナスの場合

L ( s 、 a 、 θ k 、 θ ) = max ⁡ ( π θ ( a ∣ s ) π θ k ( a ∣ s ) 、 1 − ϵ ) A π θ k ( s 、 a ) L(s、a、theta_k、 theta)=maxBigg(frac{pi_theta(a|s)}{pi_{theta_k}(a|s)}、 1-epsilonBigg)A^{pi_{theta_k}}(s、 a)(s,1つの,θ,θ)=最大(πθ(1つのs)πθ(1つのs),1ϵ)πθ(s,1つの)

状態とアクションのペアが ( s 、 a ) (s 、 a)(s,1つの) 利点がマイナスの場合、アクションが ああ1つの 可能性はさらに低い、つまり、 π θ ( a ∣ s ) π_theta(a|s)πθ(1つのs) 減少すると、目的関数は増加します。ただし、この項の最大値により、目的関数をどれだけ増加できるかが制限されます。
一度 π θ ( a ∣ s ) &lt; ( 1 − ϵ ) π θ k ( a ∣ s ) pi_theta(a|s)&lt;(1-epsilon)pi_{theta_k}(a|s)πθ(1つのs)<(1ϵ)πθ(1つのs)、最大トリガー数、この項目の値を次のように制限します ( 1 − ϵ ) π θ k ( a ∣ s ) (1-イプシロン)pi_{theta_k}(a|s)(1ϵ)πθ(1つのs)

繰り返しますが、新しいポリシーは、古いポリシーから大きく離れることによって利益を得るわけではありません。
新しい戦略は、古い戦略から離れても利益を得られません。

TD3_連続のみ: Twin Delayed Deep Deterministic Policy Gradient [ICML 2018 (カナダ) マギル大学]

ここに画像の説明を挿入します
画像ソース

OpenAI ドキュメント_TD3
ペーパーリンク

DDPG は優れたパフォーマンスを実現できる場合もありますが、ハイパーパラメーターやその他の種類のチューニングとなると不安定になることがよくあります。
一般的な DDPG 障害モードは、学習された Q 関数が Q 値を大幅に過大評価し始め、Q 関数のエラーを悪用するためにポリシーが壊れるというものです。
Twin Delayed DDPG (TD3) は、次の 3 つの主要な技術を導入することでこの問題を解決するアルゴリズムです。
1、切り捨てられた二重 Q 学習

  • TD3 は、1 つではなく 2 つの Q 関数 (したがって「ツイン」) を学習し、2 つの Q 値の小さい方を使用してベルマン誤差損失関数のターゲットを形成します。

2、ポリシー更新の遅延

  • TD3 は、Q 機能よりも低い頻度でポリシー (およびターゲット ネットワーク) を更新します。この論文では、Q 機能が 2 回更新されるたびにポリシーを更新することを推奨しています。

3. ターゲット戦略の平滑化。

  • TD3 はターゲット アクションにノイズを追加し、アクションの変更全体で Q を平滑化することで、ポリシーが Q 関数のエラーを悪用することをより困難にします。

TD3 はオフポリシーのアルゴリズムです。継続的なアクションスペースの環境。

TD3アルゴリズムの擬似コード

ここに画像の説明を挿入します

アルゴリズム: TD3
ランダムなパラメータを使用する θ 1 、 θ 2 、 ϕ θ_1、 θ_2、 ファイθ1,θ2,ϕ 批評家ネットワークを初期化する Q θ 1 、Q θ 2 Q_{theta_1}、Q_{theta_2}質問θ1,質問θ2、および俳優ネットワーク π ϕ パイファイπϕ
ターゲットネットワークの初期化 θ 1 ′ ← θ 1 、 θ 2 ′ ← θ 2 、 ϕ ′ ← ϕ theta_1^primeleftarrowtheta_1、 theta_2^primeleftarrowtheta_2、 phi^primeleftarrow phiθ1θ1,θ2θ2,ϕϕ
再生バッファセットを初期化する BカロリーBB
t = 1 から T まで {bf について}~t=1 ~{bf から} ~T までのために t=1  T
       ~~~~~~       探索ノイズのあるアクションを選択 a ∼ π ϕ ( s ) + ϵ , ϵ ∼ N ( 0 , σ ) asimpi_phi(s)+epsilon,~~epsilonsim {cal N}(0,sigma)1つのπϕ(s)+ϵ,  ϵいいえ(0,σ)、観察報酬 rrr そして新たなステータス s ′ s^プライムs
       ~~~~~~       遷移タプル ( s 、 a 、 r 、 s ′ ) (s、 a、 r、 s^プライム)(s,1つの,r,s) に預ける BカロリーBB 真ん中
       ~~~~~~       から BカロリーBB 小さなバッチのサンプリング NNいいえ トランジション ( s 、 a 、 r 、 s ′ ) (s、 a、 r、 s^プライム)(s,1つの,r,s)
a ~ ← π ϕ ′ ( s ′ ) + ϵ , ϵ ∼ clip ( N ( 0 , σ ~ ) , − c , c ) ~~~~~~widetilde aleftarrow pi_{phi^prime}(s^prime)+epsilon,~~epsilonsim{rm clip}({cal N}(0,widetilde sigma),-c,c)      1つの πϕ(s)+ϵ,  ϵクリップ(いいえ(0,σ ),,)
y ← r + γ min ⁡ i = 1 , 2 Q θ i ′ ( s ′ , a ~ ) ~~~~~~yleftarrow r+gamma minlimits_{i=1,2}Q_{theta_i^prime}(s^prime,widetilde a)      ええr+γ=1,2質問θ(s,1つの )
       ~~~~~~       更新批評家 θ i ← arg ⁡ min ⁡ θ i N − 1 ∑ ( y − Q θ i ( s , a ) ) 2 theta_ileftarrowargminlimits_{theta_i}N^{-1}sum(y-Q_{theta_i}(s, a))^2θarθいいえ1(ええ質問θ(s,1つの))2
       ~~~~~~        もし t % d {bf もし}~t~ % ~dもし t % d
            ~~~~~~~~~~~            決定論的なポリシー勾配による更新 ϕ ファイϕ
∇ ϕ J ( ϕ ) = N − 1 ∑ ∇ a Q θ 1 ( s 、 a ) ∣ a = π ϕ ( s ) ∇ ϕ π ϕ ( s ) ~~~~~~~~~~~~~~~~~nabla _phi J(phi)=N^{-1}合計nabla_aQ_{theta_1}(s、 a)|_{a=pi_phi(s)}nabla_phipi_phi(s)                 ϕJ(ϕ)=いいえ11つの質問θ1(s,1つの)1つの=πϕ(s)ϕπϕ(s)
            ~~~~~~~~~~~            ターゲット ネットワークを更新します。
θ i ′ ← τ θ i + ( 1 − τ ) θ i ′ ~~~~~~~~~~~~~~~~~~theta_i^primeleftarrowtautheta_i+(1-tau)theta_i^prime~~~~~                 θτθ+(1τ)θ      τ タウτ: 目標更新速度
ϕ ′ ← τ ϕ + ( 1 − τ ) ϕ ′ ~~~~~~~~~~~~~~~~~~~phi^primeleftarrowtauphi+(1-tau)phi^prime                 ϕτϕ+(1τ)ϕ
終了if ~~~~~~{bf 終了 ~if}      終わり もし
終了 {bf 終了 ~for}終わり のために

Soft Actor-Critic: SAC_Continuous/Discrete Action Space [Google Brain 最新バージョン 201906]

ここに画像の説明を挿入します

画像ソース

ポリシーのエントロピーを最大化して、ポリシーをより堅牢にします。

決定的な戦略 同じ状態であれば、常に同じアクションを選択することを意味します
ランダム性戦略 これは、特定の状態で選択できるアクションが多数あることを意味します。

決定的な戦略ランダム性戦略
意味同じ状態、同じ動作を実行同じステータス、さまざまなアクションを実行する可能性があります
アドバンテージ安定性と再現性局所的な最適解に陥ることを回避し、グローバルな検索機能を向上させます。
欠点がある探索力に欠け、敵に捕まりやすいこれにより、戦略の収束が遅くなり、効率とパフォーマンスに影響を与える可能性があります。

実際の適用では、条件が許せば、使ってみてくださいランダム性戦略、A2C、PPO など、より柔軟で、より堅牢で、より安定しているためです。

最大エントロピー強化学習では、現在成熟したランダム性戦略、つまり AC などのアルゴリズムがあるにもかかわらず、最適なランダム性はまだ達成されていないと考えています。したがって、それは、情報エントロピーコンセプト、で政策のエントロピーを最大化しながら累積報酬を最大化する、戦略をより堅牢にし、最適なランダム性戦略を実現します。

——————————————————

—— OpenAI ドキュメント_SAC

OpenAI ドキュメント_SAC インターフェイス リンク
  ~  
ソフトアクタークリティック: 確率的アクターによるオフポリシー最大エントロピー深層強化学習、Haarnoja et al、201808 ICML 2018
ソフトアクタークリティックアルゴリズムとアプリケーション、ハーノジャら、201901
深層強化学習による歩行学習、Haarnoja et al、201906 RSS2019

Soft Actor Critic (SAC) は、ポリシーに従わない方法でランダムな戦略を最適化します。

DDPG + 確率的戦略の最適化

TD3 (同時期にリリース) の直接の後継ではありません。

これにはクリップされたダブル Q トリックが組み込まれており、SAC の戦略に固有のランダム性があるため、最終的には次のような利点もあります。ターゲットポリシーのスムージング

SAC の中心的な機能は次のとおりです。 エントロピー正則化 エントロピー正則化
このポリシーは、期待される報酬とエントロピーの間のトレードオフを最大化するようにトレーニングされています。エントロピーはポリシーのランダム性の尺度です
これは、探索と活用の間のトレードオフに密接に関係しています。つまり、エントロピーの増加は、さらに探索する、これで結構ですその後の学習を加速する 。大丈夫ですポリシーが時期尚早に不適切な局所最適値に収束するのを防ぐ

連続動作空間と離散動作空間の両方で使用できます。

存在する エントロピー正則化強化学習、エージェントは取得し、このタイムステップでのポリシーのエントロピー比例報酬。
現時点で、RL 問題は次のように説明されます。

π ∗ = arg ⁡ max ⁡ π E τ ∼ π [ ∑ t = 0 ∞ γ t ( R ( st 、 at 、 st + 1 ) + α H ( π ( ⋅ ∣ st ) ) ) ] pi^*=argmaxlimits_pi underset{tausimpi}{rm E}Big[sumlimits_{t=0}^inftygamma^tBig(R(s_t、a_t、s_{t+1})textcolor{blue}{+alpha H(pi(·|s_t))}Big)Big]π=arπ最大τπ[t=0γt(R(st,1つのt,st+1)+αH(π(st)))]

α &gt; 0 アルファ &gt; 0α>0 はトレードオフ係数です。
各タイムステップでのエントロピー報酬を含む状態値関数 VπV^ππ のために:

V π ( s ) = E τ ∼ π [ ∑ t = 0 ∞ γ t ( R ( st , at , st + 1 ) + α H ( π ( ⋅ ∣ st ) ) ) ∣ s 0 = s ] V^pi(s)=underset{tausimpi}{rm E}Big[sumlimits_{t=0}^inftygamma^tBig(R(s_t,a_t,s_{t+1})+alpha H(pi(·|s_t))Big)Big|s_0=sBig]π(s)=τπ[t=0γt(R(st,1つのt,st+1)+αH(π(st))) s0=s]

最初のタイム ステップを除くすべてのタイム ステップのエントロピー報酬を含むアクション値関数 QπQ^π (円周率)質問π:

Q π ( s , a ) = E τ ∼ π [ ∑ t = 0 ∞ γ t ( R ( st , at , st + 1 ) + α ∑ t = 1 ∞ H ( π ( ⋅ ∣ st ) ) ) ∣ s 0 = s , a 0 = a ] Q^pi(s,a)=underset{tausimpi}{rm E}Big[sumlimits_{t=0}^inftygamma^tBig(R(s_t,a_t,s_{t+1})+alpha sumlimits_{t=1}^infty H(pi(·|s_t))Big)Big|s_0=s,a_0=aBig]質問π(s,1つの)=τπ[t=0γt(R(st,1つのt,st+1)+αt=1H(π(st))) s0=s,1つの0=1つの]

  • いくつかの論文 QπQ^π (円周率)質問π 最初のタイムステップのエントロピー報酬が含まれます

VπV^ππ そして QπQ^π (円周率)質問π 間の関係は次のとおりです。

V π ( s ) = E a ∼ π [ Q π ( s , a ) ] + α H ( π ( ⋅ ∣ s ) ) V^pi(s)=underset{asimpi}{rm E}[Q^pi(s, a)]+alpha H(pi(·|s))π(s)=1つのπ[質問π(s,1つの)]+αH(π(s))

について QπQ^π (円周率)質問π ベルマン式は次のとおりです。

Q π ( s , a ) = E s ′ ∼ P a ′ ∼ π [ R ( s , a , s ′ ) + γ ( Q π ( s ′ , a ′ ) + α H ( π ( ⋅ ∣ s ′ ) ) ) ] = E s ′ ∼ P [ R ( s , a , s ′ ) + γ V π ( s ′ ) ] 質問π(s,1つの)=1つのπs[R(s,1つの,s)+γ(質問π(s,1つの)+αH(π(s)))]=s[R(s,1つの,s)+γπ(s)]

SAC はポリシーを同時に学習します π θ π_シータπθ そして2つ QQ質問 関数 Q ϕ 1 、Q ϕ 2 Q_{phi_1}、Q_{phi_2}質問ϕ1,質問ϕ2
現在、標準 SAC には 2 つのバリアントがあります。1 つは固定の SAC を使用します。エントロピー正則化係数 α アルファα、トレーニング中に変更することでもう1つ α アルファα エントロピー制約を強制します。
OpenAI のドキュメントでは、エントロピー正則化係数が固定されたバージョンが使用されていますが、実際にはそれが好まれることがよくあります。エントロピー制約変異体。

以下に示すように、 α アルファα 修正版では、明らかな利点がある最後の画像を除いて、他の画像にはわずかな利点しかなく、基本的には同じです。 α アルファα 学習バージョンは同じままです。 α アルファα 中央の 2 つの図では、学習バージョンに利点があることがより明らかです。

ここに画像の説明を挿入します
画像ソース

SAC VSTD3:
  ~  
同じ点:
1. 両方の Q 関数は、単一の共有目標への回帰によって MSBE (平均二乗ベルマン誤差) を最小化することによって学習されます。
2. ターゲット Q ネットワークを使用して共有ターゲットを計算し、トレーニング プロセス中に Q ネットワーク パラメータに対してポリアック平均を実行して、ターゲット Q ネットワークを取得します。
3. 共有ターゲットは、切り詰められたダブル Q 手法を使用します。
  ~  
違い:
1. SAC にはエントロピー正則化項が含まれています
2. SAC 目標で使用される次の状態アクションは次のものから来ます。現在の戦略、ターゲット戦略ではなく。
3. スムージングには明確な目標戦略がありません。 TD3 は、次の状態に向けたアクションを通じて決定論的なポリシーをトレーニングしますランダムノイズを追加する滑らかさを実現するために。 SAC はランダム ポリシーをトレーニングします。ランダム性によるノイズは同様の効果を達成するのに十分です。

SACアルゴリズムの擬似コード

ここに画像の説明を挿入します

アルゴリズム: ソフト アクター - 批評家 SAC
入力: θ 1 、 θ 2 、 ϕ theta_1、theta_2、phi~~~~~θ1,θ2,ϕ      初期化パラメータ
パラメータの初期化:
       ~~~~~~       ターゲット ネットワークの重みを初期化します。 θ ˉ 1 ← θ 1 、 θ ˉ 2 ← θ 2 バー theta_1leftarrowtheta_1、 バー theta_2leftarrowtheta_2θˉ1θ1,θˉ2θ2
       ~~~~~~       再生プールは空になるように初期化されます。 D ← ∅ {cal D}左矢印空セット
{bf のため}のために 各反復 する {bf する}する
       ~~~~~~        {bf のため}のために 環境の各ステップ する {bf する}する
            ~~~~~~~~~~~            ポリシーからのアクションの例: において ∼ π ϕ ( において ∣ st ) a_tsimpi_phi(a_t|s_t)~~~~~1つのtπϕ(1つのtst)      ▢こちら π ϕ ( ∣ st ) pi_phi(a_t|s_t) についてπϕ(1つのtst) 定義方法は?
            ~~~~~~~~~~~            環境からの遷移の例: st + 1 ∼ p ( st + 1 ∣ st 、 at ) s_{t+1} の p(s_{t+1}|s_t、a_t) が成り立つst+1p(st+1st,1つのt)
            ~~~~~~~~~~~            トランジションを再生プールに保存します。 D ← D ∪ { ( st 、 at 、 r ( st 、 at ) 、 st + 1 ) } {cal D}leftarrow{cal D}~cup~{(s_t、a_t、r(s_t、a_t),s_{t+1})}  {(st,1つのt,r(st,1つのt),st+1)}
       ~~~~~~        終了 {bf 終了 ~for}終わり のために
       ~~~~~~        {bf のため}のために 各グラデーションステップ する {bf する}する
            ~~~~~~~~~~~            更新する QQ質問 関数パラメータ: の i ∈ { 1 , 2 } iin{1,2}{1,2} θ i ← θ i − λ Q ∇ ^ θ i JQ ( θ i ) theta_ileftarrowtheta_i-lambda_Qhat nabla_{theta_i}J_Q(theta_i)~~~~~θθλ質問^θJ質問(θ)      ▢こちら JQ ( θ i ) J_Q(theta_i)J質問(θ) 定義方法は?
            ~~~~~~~~~~~            戦略の重みを更新します。 ϕ ← ϕ − λ π ∇ ^ ϕ J π ( ϕ ) phileftarrowphi-lambda_pihat nabla_phi J_pi (phi)~~~~~ϕϕλπ^ϕJπ(ϕ)      ▢こちら J π ( ϕ ) J_pi (ファイ)Jπ(ϕ) 定義方法は?
            ~~~~~~~~~~~            温度を調整します: α ← α − λ ∇ ^ α J ( α ) alphaleftarrowalpha-lambdahatnabla_alpha J(alpha)~~~~~ααλ^αJ(α)      ▢こちら J ( α ) J(アルファ)J(α) 定義方法は?ここの温度をどのように理解すればよいでしょうか?
            ~~~~~~~~~~~             ターゲット ネットワークの重みを更新します: i ∈ { 1 , 2 } iin{1,2}{1,2} θ ˉ i ← τ θ i − ( 1 − τ ) θ ˉ i バー theta_ileftarrow tau theta_i-(1-tau)バー theta_i~~~~~θˉτθ(1τ)θˉ      ▢ これをどう理解するか τ タウτ ? ——&gt;目標平滑化係数
       ~~~~~~        終了 {bf 終了 ~for}終わり のために
終了 {bf 終了 ~for}終わり のために
出力: θ 1 、 θ 1 、 ϕ theta_1、theta_1、phi~~~~~θ1,θ1,ϕ     最適化されたパラメータ

∇ ^ ハットナブラ^: 確率的勾配

$emptyset$ ∅ ~~~~空集合    

ここに画像の説明を挿入します

ここに画像の説明を挿入します

深層強化学習による歩行学習 バージョン:
  ~  
ここに画像の説明を挿入します
ここに画像の説明を挿入します
ここに画像の説明を挿入します

α α α は温度パラメータであり、エントロピー項と報酬の相対的な重要性を決定し、それによって最適な戦略のランダム性を制御します。
α アルファα 大: 探索する
α アルファα 小: エクスプロイト

J ( α ) = E at ∼ π t [ − α log ⁡ π t ( at ∣ st ) − α H ˉ ] J(alpha)=underset{a_tsimpi_t}{mathbb E}[-alphalog pi_t(a_t|s_t)-alphabar{cal H}]J(α)=1つのtπt[α見よπt(1つのtst)αHˉ]