tf2rl

less than 1 minute read

Published:

tf2rl: TensorFlow2 Reinforcement Learning

この記事は強化学習苦手の会 Advent Calendar 2020の21日目の記事です。(遅れてすみません…!)

本記事では、tf2rlの開発経緯や開発して良かった点・苦労している点を紹介します。

tf2rlとは

tf2rlはTensorFlow2系で書かれた深層強化学習ライブラリで、強化学習の研究でよく使われる下記の基本的なアルゴリズムをサポートしています。

使い方など、詳しくはREADMEを参照してください。

開発経緯

開発した経緯やモチベーションを簡単にまとめました。

  • 開発当時(2019年中頃)に色々なRLライブラリを使ったが、あまり自分が気に入るものがなかった
  • 理論をより深く理解するために自分でコーディングしたかった
    • これは効果抜群でした。時間がある方にはお勧めしたいです
    • 論文投稿しているロボットの研究とかにも実際使っています
  • TensorFlow2系を使ってみたかった
    • もともと1系を使っていたがかなり使いにくかった
    • 今もう一度始めるならPyTorchを使います笑

このように、誰かに使ってもらうというよりは自分の研究開発のために書いたコードでしたが、そこそこ使ってもらっている(2020/12/30時点で327 Star)みたいで良かったです。

深層強化学習ライブラリを作った感想

  • 良かった点
    • 新しい機能・アルゴリズムを試すのがめちゃくちゃ楽
    • 単純に開発が楽しい(Starもらえるととても嬉しいです)
  • 苦労している点
    • 計算機資源不足のため実装したコードの性能評価が困難(特にAtariで実験するDQN系)
    • 業務として開発できないのでコーディング時間の捻出が難しい

実行例

使い方はREADMEに書かれた通りなので、ここではいくつか実際に動かした例を挙げます。

Ant SACCartPole CURLReacher iLQG

これらは、下記のような非常に簡単なコマンドで学習できるので、興味ある方は是非試してみてください。

$ python examples/run_sac.py --env-name Ant-v2
$ python examples/run_curl.py --env-name cartpole
$ python examples/run_ilqg.py --env-name Reacher

今後の予定

以下の機能を実装する予定です。

  • Batch/Offline RL
  • Image-input model-free RL
  • Google Colabを使ったサンプル(導入を易しくしたい)

また、サポートが必要な方はSlackで質問に対応しているので興味ある方は気軽にTwitter相談ください!(相談いただくことでバグが見つかったりしてとても助かっています!)

Tags: