REINFORCEがまったく機能しないのはなぜですか?
これは、サットンとバルトの本からの人気のあるポリシー勾配アルゴリズムのスクリーンショットです-
更新ルールの数学的導出は理解していますが、そもそもなぜこのアルゴリズムが機能するのかについての直感を構築することはできません。本当に気になるのは、間違ったポリシーから始めることです(つまり、パラメーターがわからない)$\theta$ まだ)、そして私たちはこのポリシーを使用してエピソードを生成し、結果として更新を行います。
REINFORCEがまったく機能しないのはなぜですか?結局のところ、グラデーションの更新に使用するエピソードは、パラメーターによってパラメーター化されたポリシーを使用して生成されます$\theta$ これらはまだ更新されていません(エピソードは最適なポリシーを使用して生成されていません-それを行う方法はありません)。
私の懸念が明確であることを願っています。なぜこれが機能するのかについて、直感的に説明してください。どういうわけか、間違ったポリシーからエピソードをサンプリングしているにもかかわらず、更新のたびに正しいエピソードに近づいているのではないかと思います(単調な改善)。あるいは、最適なポリシー(最適なパラメーターのセット)に近づくこともできます。$\theta$)平均して。
それで、ここで実際に何が起こっているのでしょうか?
回答
REINFORCEが機能するための鍵は、パラメーターがどのようにシフトされるかです。 $G \nabla \log \pi(a|s, \theta)$。
ご了承ください $ \nabla \log \pi(a|s, \theta) = \frac{ \nabla \pi(a|s, \theta)}{\pi(a|s, \theta)}$。これにより、更新が非常に直感的になります-分子は、リターンに比例して状態が与えられた場合に、アクションが繰り返される確率が最も高くなる方向にパラメーターをシフトします-これは本質的に勾配上昇であるため、簡単に確認できますステップ。分母は、実行されるアクションの確率に関して逆スケーリングすることにより、より頻繁に選択されるため、他のアクションよりも有利なアクションを制御します。高い報酬があったが、その時の行動があったかどうか想像してみてください$t$ 選択される確率が低い場合(例:0.1)、これによりリターンに10が乗算され、このアクションが最も選択される確率が高くなる方向の更新ステップが大きくなります(前述のように、分子が制御するものです)。 )。
それは直感のためです-なぜそれが機能するのかを見て、それから私たちが何をしたかを考えてください。目的関数を定義しました。$v_\pi(s)$、パラメータに関して最大化することに関心があること $\theta$。パラメータに関してこの目的の導関数を見つけ、次にパラメータに対して勾配上昇を実行して、目的を最大化します。つまり、最大化します。$v_\pi(s)$したがって、勾配上昇を実行し続けると、ポリシーパラメータは(最終的に)最大化する値に収束します $v$ したがって、私たちのポリシーは最適です。