GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

keras-rl

keras-rl – Kerasのための深層強化学習

投稿日:

Kerasのための深層強化学習。 http://keras-rl.readthedocs.io/

ケラスの深い強化学習

ニュース

03/20/2018 – Travisビルドが機能し、Keras v2.1.5とgym v0.10.3がサポートされるようになりました

03/13/2018 – マティアスを助けるために、 シカラのメンテナーがこのレポに参加しました。 次の数週間のロードマップは次のとおりです。

  • Kervis v2.1.5用Travisのビルドとアップデートを修正
  • ドキュメントを追加する
  • レビューの問題とPR
  • 最先端のアルゴリズム(A3C、DDPG)を追加

それは何ですか?

keras-rlは、Pythonでいくつかの最新の深層強化学習アルゴリズムを実装し、深い学習ライブラリKerasとシームレスに統合します。 Kerasと同じように、 TheanoまたはTensorFlowのどちらでも動作します。 つまり 、アルゴリズムをCPUまたはGPUで効率的に学習できます。 さらに、 keras-rlOpenAI Gymと一緒に動作します。 つまり、さまざまなアルゴリズムを使って評価して遊ぶのは簡単です。 もちろん、自分の必要に応じてkeras-rlを拡張することができます。 ビルトインのKerasコールバックとメトリックを使用することも、自分で定義することもできます。 さらに、簡単な抽象クラスを拡張するだけで、独自の環境やアルゴリズムを実装することは簡単です。

簡単に言えば、 keras-rlは、最先端の深部強化学習アルゴリズムを実行することを非常に簡単にし、Keras、したがってTheanoまたはTensorFlowを使用し、OpenAIジムを念頭に構築されました。

含まれているものは?

今日の時点で、以下のアルゴリズムが実装されています。

  • Deep Q Learning(DQN) [1][2]
  • ダブルDQN [3]
  • 深い決定的な政策勾配(DDPG) [4]
  • 連続DQN(CDQNまたはNAF) [6]
  • クロスエントロピー法(CEM) [7][8]
  • 結核ネットワークDQN(Dueling DQN) [9]
  • 深いSARSA [10]

各エージェントの詳細については、 ドキュメントに記載されています。

私は現在、次のアルゴリズムについて作業しています。これはexperimentalブランチにあります:

  • 非同期アドバンテージアクタークリティカル(A3C) [5]

これらは実験的なものであり、現在実行されていない可能性があることに注意してください。

どうすればインストールできますか?

keras-rlインストールは簡単です。 次のコマンドを実行するだけでよいです。

pip install keras-rl

これによりkeras-rlと必要なすべての依存関係がインストールされます。

例を実行したい場合は、OpenAIによってgymもインストールする必要があります。 インストール手順を参照しください。 UbuntuとMac OS Xではとても簡単でうまく動作します。また、次のコマンドを使用してインストールできるモデルウェイトをロードして保存するには、 h5pyパッケージが必要です。

pip install h5py

すべてをインストールしたら、簡単な例を試すことができます:

python examples/dqn_cartpole.py

これは非常に簡単な例で、比較的早く収束しなければならないので、始めるには最適な方法です! また、トレーニング中のゲームを視覚化するので、学習することができます。 それはどれくらい涼しいですか?

残念ながら、 keras-rlドキュメントは現在ほとんど存在していません。 ただし、DQN(離散アクションのタスク)とDDPG(継続的なアクションを持つタスク)の両方の使用法を示す数例を見つけることができます。 これらの例は適切な文書を置き換えるものではありませんが、すぐに始めることができ、自分で学習した強化の魔法を見るのに十分なはずです。 OpenAI Gymには他の環境(OpenAIジムにはたくさんあります)を試してみることをお勧めします。

ご質問や問題がある場合は、問題を提出するか、さらには問題を自分で修正してプルリクエストを提出してください。

自分でモデルを訓練する必要がありますか?

トレーニングの時間は、環境の複雑さに応じて非常に長くなる可能性があります。 このレポは、 keras-rl含まれる例を実行して得られたいくつかの重みを提供します。 それぞれのエージェントでload_weightsメソッドを使用してウェイトをロードできます。

要件

  • Python 2.7またはPython 3.5
  • Keras > = 1.0.7

それでおしまい。 ただし、サンプルを実行する場合は、次の依存関係も必要です。

keras-rlTensorFlowでも動作します Theanoの代わりにTensorFlowを使用する方法については、Kerasのドキュメントを参照してください。

ドキュメンテーション

私たちは現在、適切なドキュメントを手に入れようとしています。 最新版のドキュメントはオンラインで入手できます ドキュメントへのすべての貢献は大変ありがとう!

サポート

質問をして開発ディスカッションに参加することができます:

Githubの問題に バグレポートや機能リクエスト (!のみ)を投稿することもできます

テストの実行

テストをローカルで実行するには、まず次の依存関係をインストールする必要があります。

pip install pytest pytest-xdist pep8 pytest-pep8 pytest-cov python-coveralls

次のコマンドを使用して、すべてのテストを実行できます。

py.test tests/.

ファイルがPEP8スタイルのガイドラインに準拠しているかどうかを確認するには、次のコマンドを実行します。

py.test --pep8

引用

研究でkeras-rlを使用する場合は、次のように引用できます。

@misc{plappert2016kerasrl,
    author = {Matthias Plappert},
    title = {keras-rl},
    year = {2016},
    publisher = {GitHub},
    journal = {GitHub repository},
    howpublished = {\url{https://github.com/keras-rl/keras-rl}},
}

謝辞

このライブラリの基礎は、 カールスルーエ工科大学(KIT)の 高性能ヒューマノイド技術(H²T)ラボでの作業中に開発されました。 それ以来、汎用ライブラリになるようになっています。

参考文献

  1. 深い強化学習を伴うアタリ演奏 、Mnih et al。、2013
  2. 深い強化学習による人間レベルの制御 、Mnih et al。、2015
  3. ダブルQ学習による深層強化学習 、van Hasselt et al。、2015
  4. 深い強化学習による継続的な制御 、Lillicrap et al。、2015
  5. 深い強化学習のための非同期法 、Mnihら、2016
  6. モデルベースの加速を用いた連続的な深いQ学習 、Gu他、2016
  7. 騒々しいクロスエントロピー法を用いたテトリスの学習 、Szita et al。、2006
  8. 深層強化学習(MLSS講義ノート) 、Schulman、2016
  9. 深層強化学習のためのDueling Network Architectures 、Wang他、2016
  10. 強化学習:導入 、Sutton and Barto、2011

トドス

  • ドキュメンテーション:ドキュメンテーションの作業が始まったが、すべてがコードで文書化されているわけではない。 さらに、エージェントの背後にある基本的なアイデアを説明するガイドを各エージェントに持たせるのはすばらしいことです。
  • TRPO、優先度ベースのメモリ、A3C、非同期DQN、…







-keras-rl
-, , , , ,

執筆者: