深層強化学習のための物理シミュレーション環境構築(PyBullet)
深層強化学習のための物理シミュレーション環境
深層強化学習関連の本を読んで、PyBlletというライブラリの物理シミュレーション環境を構築したのでメモ。
Linux(Ubuntu)、Apple Silicon(M1) Macで環境構築しています。
Intel MacでのOpen AI Gymの環境構築に関しては以前、以下記事にまとめました。
自分環境構築ばっかしてますね…
PyBulletの環境構築
Ubuntu 18.04
以下実行すればOKです。簡単ですね。
$ pip3 install pybullet
$ pip3 install numpy
Mac(Intel/Apple Silicon)
Python環境をMiniForgeで構築します。理由と方法は以下記事参照ください。
MiniForgeをインストールしたら、以下実行してPython3.8の環境を構築してアクティベートします。
$ conda create --name python38 python=3.8
$ conda activate python38
続いて、以下コマンドでPyBulletをMiniForgeでインストールします。
$ conda install pybullet
もし、PackagesNotFoundError
とパッケージが見つからないエラーが出たら、pipでインストールしてください。
$ pip install pybullet
PyBullet使い方
PyBulletを動かしてみましょう。
$ git clone --depth 1 https://github.com/bulletphysics/bullet3
$ cd bullet3/examples/pybullet/examples
$ python3 humanoid_manual_control.py
以下のような人の人形が表示されたらOKです。
PyBulletで深層強化学習
TensorFlow/TF-Agentsのインストール
PyBullet上で深層強化学習を動かすには、TensorFlow, TF-Agentsも必要です。Apple SiliconのTensorFlow/TF-Agentsに関しては少し複雑なのでこちらの記事参照ください。
UbuntuやIntel Macなら以下コマンドでTensorFlow/TF-Agentsをインストールします。
$ pip install tensorflow
$ pip install tf_agents
PyBulletでの深層強化学習サンプル動作
サンプルは以下の要領で動かせます。
$ python -m pybullet_envs.examples.enjoy_TF_HumanoidFlagrunHarderBulletEnv_v1_2017jul
無事起動すると、以下のようなやばいサンプルが動き出します(笑)
他のサンプルも試してみたいですね。サンプルプログラムの場所は以下コマンドで探せます。
$ find / -name 'enjoy_TF_Humanoid*'
Intel Macだと以下の場所にありました。
/Users/karaage/miniforge3/pkgs/pybullet-3.09-py38hbd83c44_2/lib/python3.8/site-packages/pybullet_envs/examples/
Apple Silicon Macだと以下になりました。
/Users/karaage/miniforge3/envs/python38/lib/python3.8/site-packages/pybullet_envs/examples/
以下実行して、enjoy_xxx.py
というプログラムを動かすと、楽しいです。
$ cd /Users/karaage/miniforge3/envs/python38/lib/python3.8/site-packages/pybullet_envs/examples/
その他、冒頭で紹介した「TensorFlowによる深層強化学習入門」という書籍のサンプルプログラムが以下にあります。
プログラムの詳細は、書籍を読むと理解が深まるかと思います。
まとめ
PyBullet、そこまで重くなく試せそうなので、書籍を読みながら色々遊んでみたいと思います。この次はUnity…かな?
参考
Discussion