ウィリアムズによって提案されたREINFORCEアルゴリズムのサンプルコードはありますか?


9

ウィリアムズがペーパー「ニューラルネットワークでの強化学習のための勾配推定アルゴリズムのクラス」で提案したアルゴリズムの例を知っている人はいますか?http://incompleteideas.net/sutton/williams-92.pdf


いつここに来るか忘れますが、openAIのgithub.com/pytorch/examples/blob/master/reinforcement_learning/…を実際にスケーラブルなオブジェクト指向スタイルにリファクタリングするところです。pingを実行して、ここに投稿します
Gulzar

私はそれをここに実装しました:Luaコード。それが役に立てば幸い!
xenomeno

回答:


11

このスライド21は、ポリシーグラディエントメソッドに関するデビッドシルバーのRL講義から、エピソードの補強アルゴリズムの疑似コードです。これは、基本的に、予測されるリターンがエピソードから直接サンプリングされるグラジエントベースのメソッドです(学習したもので推定するのではなく)関数)。この場合、期待されるリターンは、実際にはそのステップ以降の一時的な報酬の合計です。Gt

初期化θ

ポリシー doからサンプリングされた各エピソード{ }についてπ θs1,a1,r2...sT1,aT1,rTπθ

    以下のための TへT = 1から1 DO

        θθ+αθlogπθ(st,at)Gt

    終わり

終わり

サンプリングされた報酬はエピソードごとに大きく異なる可能性があるため、このアルゴリズムは変動が大きいため、通常、このアルゴリズムはベースラインをポリシーから差し引いて使用されます。これは、コードサンプルを備えたより詳細な説明です。


エピソードの最後に一度更新するのではなく、タイムステップごとに重みを更新するのはなぜですか?私の理解は、は軌道全体の順方向パスで変更されないことですθ
eric2323223

@ eric2323223 David Silverのコース(推奨)では、それについて徹底的に説明しています。REINFORCEはモンテカルロ法です。より頻繁な更新を行うことができますが、これは多くの場合に適しています。私がここで与えることができるものよりもはるかに良い説明を得るためにビデオを見てください。一般的に、彼はより頻繁な方法を「時間差」または「TD」と呼び、「TD(lambda)」と呼ばれる最適化を使用しています
Gulzar

REINFORCEはポリシー上のアルゴリズムですか?
GoingMyWay

2

ポリシー勾配強化学習のREINFORCEアルゴリズムは、単純な確率勾配アルゴリズムです。エピソードが適度に短く、多くのエピソードをシミュレートできる場合に有効です。価値関数の方法は、1つのエピソードが終了する前に学習を開始できるため、長いエピソードには適しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.