Unityで機械学習をやってみたい
前回の記事で書いたように、ML-AgentsをつかってUnityで強化学習を試してみる。基本的には以下の本を参考にして進めていきたいと思っているが、内容が古くなっている部分もあるので公式のドキュメントも参照しながら、実際にやった手順をブログに残していきたいと思う。まずは環境づくりからだが、Unityを使う前にPython(私はAnacondaを使った)とML-Agentsをgitからcloneするまでを書く。
※2022/10/15追記↓
この記事ではML-AgentsのRelease 18をインストールしているが、その後Release 19がリリースされた。最新版を使いたい人は以下の記事にインストール方法を書いてるので、こちらを参照。
開発環境
Windows 10
Anaconda 4.6.11 (Python 3.7.3)
ML-AgentsをCloneしてローカル環境に持ってくる
本で動作確認しているUnity ML-AgentsのバージョンはRelease 3になっているが、Unity ML-Agentsは開発ペースが速く、現在ではRelease 18まで出ている。
機械学習のプラットフォームがTensorflowからPyTorchに変更になったりと大きな変更も加わっているため、残念ながら環境構築については本の通りやってもうまくいかないと思う。ということで、今回は以下の公式ドキュメントを参照しながら進める。
https://github.com/Unity-Technologies/ml-agents/blob/release_18_docs/docs/Installation.md
ML-AgentsはGitHubから持ってくるが、Release18のドキュメントを読むとgitでcloneしないとexampleの環境などにアクセスできないと書いてある(本ではzipをダウンロードして持ってくる方法で書かれているので注意)。
といわけで、git bashなどを使って以下のコマンドでrelease18をcloneしてローカル環境に持ってくる。
# git clone --branch release_18 https://github.com/Unity-Technologies/ml-agents.git
AnacondaからPython 3.7の仮想環境をつくって必要なモジュールをインストールする
普通にpythonを使っても良いのだが、私のPCにはすでにAnacondaをインストールしてあったので、今回はAnacondaをつかって環境を構築する。Anaconda PromptでAnacondaとPythonのversionを以下のコマンドで確認すると
# conda --version conda 4.6.11
# python --version Python 3.7.3
となっている。ドキュメントを読むとInstall Python (3.6.1 or higher)と書いてあり、version的には問題は無さそうなのでこのまま進める。
まずは以下のコマンドでAnacondaに、ml-agentsという名前でPythonの仮想環境を作成する。仮想環境をつくらずにAnacondaのbase環境でpipを使うと、Anacondaの動作がおかしくなることがあるので注意。
# conda create -n ml-agents python=3.7
# conda activate ml-agents
無事に仮想環境が切り替わったら、ドキュメントに従って以下の用意pytorchとmlagetnsモジュールをインストールする。
# pip3 install torch~=1.7.1 -f https://download.pytorch.org/whl/torch_stable.html
# python -m pip install mlagents==0.27.0
これでML-AgentsとPythonの設定はひとまずはOK。次回はUnityでExampleプロジェクトを実行して、強化学習のテストもやってみる。
参考文献
基本的には以下の本を読みつつ勉強していき、最終的には自分で何かしらゲームを作っていく予定。最低限ML-Agentsを使うための流れはブログで書いていこうと思っているが、詳細については説明しないので、深く理解するには本を買って勉強してみることをオススメする。
古くなった情報を補完するため、本と合わせて以下のML-Agents Release 18の公式ドキュメントを参照している。
https://github.com/Unity-Technologies/ml-agents/tree/release_18_docs/
日記まとめ
この日記は以下でまとめてます。