問題タブ [openai-gym]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
804 参照

deep-learning - Deep Q 学習のしくみ

モデルをトレーニングしているとき、次のセグメントがあります。

wheres_t, a_は、現在の状態と、それらの状態で実行されたアクションにそれぞれ対応します。の出力があり、その状態で実行されたアクションの値のみを出力することを除いてmodel2、 と同じです。modelmodel2num_actionsmodel

私が奇妙だと思うのは(そして実際にこの質問の焦点です)、train_data私が持っている関数にあります:

奇妙な部分は、モデルを使用してモデルを生成し、y_batchトレーニングしているという事実です。これはある種の自己充足的予言になりませんか?私の理解が正しければ、モデルは予想される最大報酬を予測しようとします。同じモデルを使って試して生成y_batchするということは、それが真のモデルであることを意味していますね。

問題は、1.同じモデルを使用して y_batch を生成し、それらをトレーニングすることの背後にある直感は何ですか。2. (オプション) 損失値は何かを意味しますか。プロットすると、収束していないように見えますが、報酬の合計は増加しているように見えます (下のリンクのプロットを参照)。

完全なコードはここにあります。これは、CartPole-v0 問題での Deep Q Learning の実装です。

他のフォーラムからのコメント:

  1. y = r + gamma*np.max(model.predict(s_t_batch), axis=1) は完全に自然であり、y は真のステート アクション値に収束します。そして、経験のリプレイ(またはより優先度の高い経験のリプレイ)のようなものとの連続した更新間の相関関係を打破しないと、モデルは発散します。また、DDQN、Dueling Network などの優れたバリアントもあり、より優れたパフォーマンスを発揮します。
  2. y_batch には報酬が含まれます。ターゲット ネットワークとオンライン ネットワークはどちらも推定値です。DQN の価値関数は過度に楽観的であるため、これは確かにある程度自己実現的な予言です。そのため、数か月後に Double DQN が追加されました。
  3. y は収束しますが、必ずしも真の (最適という意味だと思います) ステート アクション値に収束するとは限りません。収束した値が最適値であることは誰も証明していませんが、これは私たちが持っている最良の近似値です。ただし、十分に単純な問題 (例: grid-world) の真の値に収束します。
0 投票する
1 に答える
195 参照

tensorflow - 配列からの tensorflow プレースホルダーのフィード

Q 学習を使用して CatPole-v0 をトレーニングしようとしています。経験を積んでリプレイ バッファを更新しようとすると、次のエラーが発生します。

関連するコード スニペットは次のとおりです。

フィードされるプレースホルダーは

このエラーを解決するために action_dim を使用する方法を明確にすることはできますか?

0 投票する
2 に答える
10197 参照

random - OpenAI 環境 (ジム) は env.seed(0) をどのように使用する必要がありますか?

私は非常に単純な OpenAI ジム ( banana-gym) を作成しましたが、実装する必要があるかどうか、またはどのように実装する必要があるかを考えていますenv.seed(0)

たとえば、https://github.com/openai/gym/issues/250#issuecomment-234126816を参照してください。