問題タブ [reward]
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.
reinforcement-learning - DDPG Agent を使用したステップ関数処理用のカスタム環境 Gym
私は強化学習が初めてで、この手法を使用して音声信号を処理したいと考えています。Gym OpenAI私は、一般的な強化学習を手に入れるために平らにしたい基本的なステップ関数を構築しました。
そうするために、ターゲットが何であるかを知っているので、GoalEnv提供されたフラット信号を使用しています。OpenAIこれは、入力と目的の信号を含む画像です。
low_pass_filter_set_actionを実行するステップ関数呼び出しは、カットオフ周波数も入力として受け取ります。achieved_signal = convolution(input_signal,low_pass_filter) - offsetカットオフ周波数とオフセットは、出力信号を取得するために観測に作用するパラメーターです。L2-norm設計された報酬関数は、入力信号と目的の信号の間のフレーム間を負に戻し、大きなノルムにペナルティを課します。
作成した環境は以下です。
次に、環境を変数にインスタンス化し、FlattenDictWrapperここでアドバイスされているようにフラット化できますhttps://openai.com/blog/ingredients-for-robotics-research/ (ページの最後)。
エージェントは の DDPG エージェントですkeras-rl。アクションは、環境で記述された連続した action_space で任意の値を取ることができるためです。なぜアクターと批評家のネットが追加の次元を持つ入力を必要とするのか疑問に思います.input_shape=(1,) + env.observation_space.shape
最後に、エージェントは次のようにトレーニングされます。
問題は次のとおりです。エージェントは、環境の同じインスタンスのすべてのエピソードで常に出力値の同じ近傍に固執しているようです。
エージェントが負の報酬を得ることを許可したので、累積報酬は負です。例として、OpenAI コードの一部であるhttps://github.com/openai/gym/blob/master/gym/envs/robotics/fetch_env.pyから使用しました。1 つのエピソードで、入力ステップ信号を出力フラット信号に近づける (cutoff_final、offset_final) に向かって収束するアクションのさまざまなセットを取得する必要がありますが、これは明らかにそうではありません。また、連続するエピソードでは、異なるアクションを取得する必要があると考えました。

