戦略勾配
価値機能を強化学習の値に基づく方法が近似して、ポリシーと同様のアイデア、戦略を使用してベースの\(\ piは\)含むパラメータとして記述することができます\(\シータ\)機能
\ [\ PI _ {\シータ}(S)= P(| sは、\シータ)\約\ PI(| S)\]
我々は戦略があると仮定することができます| \(S)\ \ pi_ \シータ(A) 、その後、我々は実際に確率を持っている\(P-(S「| S、Aを)\)それはパラメータの対象となる、状態遷移確率を表し、\( \シータ\)効果、全体のパスがあってもよい(\タウの\)\表し
\ [\ underbrace {P _ {\シータ} \左(\ mathbf {S} _ {1}、\ mathbf {} _ {1}、\ ldots、\ mathbf {S} _ {T}、\ mathbf {A } _ {T} \右)} _ {P _ {\シータ}(\タウ)} = P \左(\ mathbf {S} _ {1} \右)\ prod_ {T = 1} ^ {T} \ PI _ {\シータ} \左(\ mathbf {} _ {T} | \ mathbf {S} _ {T} \右)P \左(\ mathbf {S} _ {T + 1} | \ mathbf {S } _ {T}、\ mathbf {} _ {T} \右)\]
私たちの目的は、最適化することですので、\(\シータ\)を最大トータルリターンを期待するように、
\ [\シータ^ * = argを\ MAX_ \シータE _ {\タウ\ SIM P_ \シータ(\タウ)} \左[\ sum_t \ガンマ(s_t、A_tと)\] \右]
私たちは直接、複数のサンプリングすることにより、所望の値を取得するために、専用の環境との相互作用により、予想トータルリターンを計算する方法がありませんので。
このことから、我々は目的関数に類似した機械学習を取得し、複数のサンプリングを使用するように近似することができます
\ [J(\シータ)= E _ {\タウ\ SIM P_ \シータ(\タウ)} \左[\ sum_t \ガンマ(s_t、A_tと)\ \ {1} {N} \約\ FRAC]右sum_ { I = 1} ^ N \ sum_t \ガンマ(S_ {I、T}、A_ {I、T})\]
スライド幾分矛盾、\(P_ \シータ(\タウの)\)と\(\ pi_ \シータ(\タウ)\) 同等、推論のチェーンを通して、戦略表される目的関数の導関数を得ることができます
\ [\ Nabla_ \シータJ(\シータ)= E _ {\年\ SIM \ PI _ {\シータ}(\年)} \ [左\ナブラ_ {\シータ} \ログ\ PI _ {\シータ}(\年) R(\年)\] \]右
我々は、より正確な式を得るために推定及び誘導体アイテム0式の一連を通して除去することができます。
![1584633176232](https://images.cnblogs.com/cnblogs_com/lepeCoder/1682355/o_2003271129351584633176232.png?a=1585308685071)
\ [\ナブラ_ {\シータ} J(\シータ)= E _ {\タウ\ SIM \タウ_ {*}(\タウ)} \左\ [左(\ sum_ {T = 1} ^ {T} \ nabla_ { \シータ} \ログ\ PI _ {\シータ} \左(\ mathbf {} _ {T} | \ mathbf {S} _ {T} \右)\右)\左(\ sum_ {T = 1} ^ {T} R \左(\ mathbf {S} _ {T}、\ mathbf {} _ {T} \右)] \] \右)\右
上記勾配方程式で、我々は最初の与えられたことができます\(\シータ\)期待収益を高めるために、目的関数の勾配を得るために、そして環境相互作用を。、サンプリングによって更新されていること\(\シータ\) 。
次に、ポリシー\(\ piは\)特定の形式は何ですか?
ソフトマックス関数がどのような状態を満たすために必要に政策以来、個別の行動空間のポリシーで使用されている\(S \でS \)持っている\(\ sum_a \ PI(A | S)= 1 \。)この目的のために、導入の好み機能の動作をポリシー嗜好としての作用のソフトマックス値によって
\ [\ PI(| S; \シータ)= \ FRAC {E ^ {H(S、; \シータ)}} {\ sum_ {^ {\プライム}}左E ^ {H \(S、 ^ {\プライム}; \シータ\右)}} \]
対応する微分値は、決定された関数であることができます
\ [\ナブラ_ {\シータ} \ログ\ PI _ {\シータ}(S)= \ PHI(S) - \ mathbb {E} _ {\ PI \シータ} [\ PHI(S) ] \]
一般的なガウスポリシー連続行動空間、ガウス分布からその挙動\(\ mathbb {N} \左(\ PHI(\ mathbf {S})^ {\ mathrm {T} _ \シータ} \シグマ^ {2 } \右)\)その対応する機能ログの誘導体には、生成されます
\ [\ナブラ_ {\シータ} \ログ\ PI _ {\シータ}(S)= \ FRAC {\左(A- \ PHI(S)^ {T_ \シータ} \右)\ PHI(S)} {\シグマ^ {2}} \]
先に述べました
\ [J(\シータ)= E _ {\タウ\ SIM P_ \シータ(\タウ)} \左[\ sum_t \ガンマ(s_t、A_tと)\ \ {1} {N} \約\ FRAC]右sum_ { I = 1} ^ N \ sum_t \ガンマ(S_ {I、T}、A_ {I、T})\]
サンプリングされたN回は、目的関数の勾配を推定することができます
\ [\ナブラ_ {\シータ} J(\シータ)\約\ FRAC {1} {N} \ sum_ {I = 1} ^ {N} \左(\ sum_ {T = 1} ^ {T} \ nabla_ {\シータ} \ログ\ PI _ {\シータ} \左(\ mathbf {} _ {I、T} | \ mathbf {S} _ {I、T} \右)\右)\左(\ sum_ { T = 1} ^ {T} R \左(\ mathbf {S} _ {I、T}、\ mathbf {} _ {I、T} \右)\右)\]
今のところ、我々は我々の強化学習アルゴリズムを与えることができます:
- サンプル\(\ {\タウ^ I \} \)から(\ pi_ \シータ(A_tと| s_t)\)\(ポリシーを実行します)
- 上記の式を用いて勾配の勾配を計算します
- \(\シータ\ LEFTARROW \シータ+ \アルファ\ nabla_ \シータJ(\シータ)\)
あなたは見ているかもしれない疑問がある-ポリシー\(\ pi_ \シータ(A_tと | s_t)\) 特に何をしますか?私たちは自動操縦装置の一例を与えることができ、状態s戦略は、現在の道路状況で、アクションが左折、右折、実装、パラメータがあり、\(\シータ\)ニューラルネットワーク、バイアスの重いウェイトされます。
そのため、サンプリングの不確実性のため、アルゴリズムの前にばらつきがたくさんあるでしょう。
だから、どのようなアルゴリズムの分散を減らすために??
基本原理は、時間tでのそのポリシーである「時刻tでの報酬に影響を与えることができないときT <T」(後者のポリシーが報酬に影響を与えません前)
![1584799716446](https://images.cnblogs.com/cnblogs_com/lepeCoder/1682355/o_2003271129281584799716446.png)
\(\ハット{Q} _ {I、T} \) 部分を表す(I \)\からサブサンプリング(\ T)\最終的に得られる報酬までの時間
\ [\ナブラ_ {\シータ} J(\シータ)\約\ FRAC {1} {N} \ sum_ {I = 1} ^ {N} \ sum_ {T = 1} ^ {T} \ナブラ_ {\シータ} \ログ\パイ_ {\シータ} \左(\ mathbf {} _ {I、T} | \ mathbf {S} _ {I、T} \右)\帽子{Q} _ {I、T} \ ]
改善がありますベースライン
目的は、効果が明らかな学習となり、報酬が良いアクション10001であれば、その後、報酬の悪い選択は10000で、悪い選択の確率を減らすために良い選択を強化学習の確率を高めることです。明らかな改善が報酬の平均を引きました
\ [\ nabla_ \シータJ(\シータ)\約\ FRAC {1} {N} \ sum_ ^ N \ nabla_ \シータ\ログ\ pi_ \シータ(\タウ)\ [左\ガンマ{iは1 =}( \タウ)-b \右] \]
\ [B = \ {1} {N自由} \ sum_ {i = 1} ^ N \ガンマ(\タウ)\]
ポリシー勾配がある上、ポリシー
あなたは政策環境と再サンプルの相互作用の必要性を変更するたびに、この手段は、新たなサンプルを取得します。
https://github.com/pytorch/examples/blob/master/reinforcement_learning/reinforce.pyのpytorch実装コード強化