2017-06-10 13 views
2

私は補強学習の初心者です。この危険な地形を簡単にナビゲートするためのフレームワーク/モジュールを探しています。私の検索では、2つのモジュールkeras-rl & OpenAI GYMを見てきました。keras-rl/OpenAI GYMでカスタム環境を実装するには?

WIKIで共有している例では、両方とも2つの作業を行うことができますが、あらかじめ定義された環境があり、独自のカスタム環境の設定方法に関する情報はほとんどまたはまったくありません。

誰かがチュートリアルに向けて私を指摘したり、ゲーム以外の環境をセットアップする方法について私に説明することができたら、本当に感謝しますか?

答えて

7

私はしばらくの間、これらのライブラリに取り組んでおり、私の実験のいくつかを共有することができます。

私たちは最初、カスタム環境の一例として、カスタム環境のためにhttps://github.com/openai/gym/blob/master/gym/envs/toy_text/hotter_colder.py

をテキスト環境を考える、物事のカップルを定義する必要があります。

  1. Constructor__init__方法
  2. アクションスペース
  3. 観測空間
  4. _seed方法(それは必須だとわからない)(それはデータ構造)のようなものだ(利用可能なすべてのジムスペースのhttps://github.com/openai/gym/tree/master/gym/spacesを参照してください) _stepメソッドは、アクションをパラメータとして受け取り、観測(アクション後の状態)、報酬(新しい観測状態への遷移)、完了(ブール型フラグ)、およびオプションの追加情報を返します。
  5. _resetエピソードの新しい開始のロジックを実装するメソッド。

オプションで、

def _render(self, mode='human', **kwargs): 
     outfile = StringIO() if mode == 'ansi' else sys.stdout 
     outfile.write('State: ' + repr(self.state) + ' Action: ' + repr(self.action_taken) + '\n') 
     return outfile 

ようなもので_renderメソッドを作成することができ、また、より良いコードの柔軟性のために、あなたは行動を取ってからの観測空間に_get_reward方法や変更であなたの報酬のロジックを定義することができます_take_actionメソッドで。

+2

_seedメソッドは必須ではありません。実装されていない場合、カスタム環境はgym.Envから_seedを継承します。同様に_renderも実装するのはオプションのようですが、1つ(または少なくとも少なくとも1つ)のクラス変数である 'metadata'を含める必要があるように見えますが、これは辞書の一つのキー' render.modes'がリスト許容レンダリングモードのうちの1つである。 _renderを実装していない場合、正しい値は[human]と思われます – user1245262

関連する問題