Neural Network Librariesを用いた深層強化学習ライブラリ、nnablaRLを公開しました!
nnablaRLは、人間のエキスパートを超えるAIを実現する技術の1つとして、近年、深層学習と並び注目されている強化学習をNeural Network Librariesを通じて簡単に扱えるようにするライブラリです。
nnablaRLは以下のような特徴があります。
簡単に学習コードを記述可能
nnablaRLでは次のように3行のpythonコードを記述するだけで、学習を始めることが出来ます。
import nnabla_rl
import nnabla_rl.algorithms as A
from nnabla_rl.utils.reproductions import build_atari_env
env = build_atari_env("BreakoutNoFrameskip-v4") # 1
dqn = A.DQN(env) # 2
dqn.train(env) # 3
もちろん、アルゴリズムの細かなカスタマイズにも対応しています。例えば、アルゴリズムのパラメータ(batch_size)は次のように変更することが出来ます。
import nnabla_rl
import nnabla_rl.algorithms as A
from nnabla_rl.utils.reproductions import build_atari_env
env = build_atari_env("BreakoutNoFrameskip-v4")
config = A.DQNConfig(batch_size=100)
dqn = A.DQN(env, config=config)
dqn.train(env)
この他にも、学習対象の深層学習モデルやOptimizerといった学習を行うためのコンポーネントを柔軟に変更可能です。詳しくはドキュメントやサンプルコードをご覧ください。
豊富な実装済みアルゴリズム
DQNを始めとして、DDPGやSAC、さらには最先端のMunchausen RLなど、17の強化学習アルゴリズムが既に実装されており、すぐにこれらのアルゴリズムを利用して学習を始めることができます。
各アルゴリズムの使い方はドキュメントや下記のサンプルコードで確認することができます。
また、実装済みアルゴリズムはこちらから確認することができます。
online/offline学習の切り替え
強化学習には、大きく分けて、データを収集しながら行うonline学習と事前に用意したデータを利用するoffline学習の2つの学習方法があります。nnablaRLでは、この2つの学習方法を柔軟に切り替えながら学習を実行することが可能です。例えば、次のように、ロボットをシミュレータでonline学習を行った後に、ロボットの実機データを利用してoffline学習するといったことが簡単にできます。
import nnabla_rl
import nnabla_rl.algorithms as A
simulator = get_simulator() # 例:ロボットシミュレータを用意
dqn = A.DQN(simulator, config=config)
dqn.train_online(simulator)
real_data = get_real_data() # 例:ロボットの学習用データを取得
dqn.train_offline(real_data)
クイックスタート
サンプルコードはgoogle colaboratoryですぐに始めることが可能なnotebook形式と一般的なpythonスクリプトの両形式で提供しています。nnablaRLをすぐに試してみたい方は、まずはcolaboratoryのデモをお試しください。
デモはこちらから試すことが出来ます。
nnablaRLの開発は現在積極的に行っており、今後も最先端のアルゴリズムや手法の導入を続けていきます。また、nnablaRLをより良いものにするため、皆様からのフィードバック・コントリビューションをお待ちしています!
リソース
- Documentation: https://nnabla-rl.readthedocs.io/
- Code: https://github.com/sony/nnabla-rl
- Python Package hosted on PYPI, install with:
pip install nnabla-rl
参考文献
- [Mnih15] Mnih, Volodymir et al. “Human-level control through deep reinforcement learning”, Nature, 2015
- [Lillicrap16] Lillicrap, Timothy et al. “Continuous control with deep reinforcement learning”, 4th International Conference on Learning Representations (ICLR 2016), 2016
- [Haarnoja18] Haarnoja, Tuomas et al. “Soft Actor-Critic: Off-Policy Maximum Entropy Deep Reinforcement Learning with a Stochastic Actor”, Thirty-fifth International Conference on Machine Learning (IMCL 2018), 2018
- [Vieillard20] Vieillard, Nino et al. “Munchausen Reinforcement Learning”, 34th Conference on Neural Information Processing Systems (NeurIPS 2020), 2020