ML-Agentsの学習状況をTensorBoardで確認したい
これまでML-Agentsで機械学習をやってきたが、学習状況についてはPrompt画面で平均報酬と標準偏差を確認しているだけだった。今回はTensorFlow の可視化ツールキットであるTensorBoardで学習状況の統計情報を詳細に確認してみたい。
なお、参考文献の時点のML-AgentsはTensorFlowをつかっているが、最新のRelease 18ではPyTorchが使われている。ただ、PyTorchもTensorBoardをサポートしているため、TensorBoardを使うことはできる。
実行環境
Windows 10 64bit
Unity 2020.3.25f1
Anaconda 4.6.11 (Python 3.7.3)
ML-Agents Release 18
TensorFlowをインストールする
ML-AgentsでTensorFlowが使われていたときには、python上でML-Agentsをインストールすれば自動的にTensorFlowもインストールされたようだが、ML-AgentsのRelease 18ではPyTorchを使っているため、今回は手動でインストールする。
※TensorFlowをインストールしてから思ったけど、TensorFlowを使わないならTensorBoardだけインストールとかもできるのかも?
TensorFlowのインストール方法については公式ページを参照。
私はAnacondaに仮想環境をつくって使っているので、仮想環境に切り替えてpipコマンドでTensorFlowをインストールした。
# pip install --upgrade tensorflow
問題なくインストールが進めば準備は完了。
TensorBoardを実行する
Anaconda PromptなどでGitHubからcloneしたml-agentsディレクトリに移動し、以下を実行する。これによってresultsフォルダ内にある過去の学習ログが、TensorBoardで可視化される。
# tensorboard --logdir=./results --port=6006
これでGoogle ChromeなどのWebブラウザからhttp://localhost:6006/を開けば、TensorBoardで学習の情報を確認することができる。以下が実際に開いてみた様子。
左下のRunsから、見たい学習ログを選択すれば各種統計情報のグラフを見ることができる。グラフの詳しい見方はTensorBoardの公式ページや参考文献を参照。
これで学習状況を詳細に確認できるようになった。これまではPPO(Proximal Policy Optimization)という強化学習アルゴリズムを使って機械学習をやってきたが、次回は別の強化学習アルゴリズムを試してみたいと思う。
参考文献
基本的には以下の本を読みつつ勉強していき、最終的には自分で何かしらゲームを作っていく予定。最低限ML-Agentsを使うための流れはブログで書いていこうと思っているが、詳細については説明しないので、深く理解するには本を買って勉強してみることをオススメする。
古くなった情報を補完するため、本と合わせて以下のML-Agents Release 18の公式ドキュメントを参照している。
https://github.com/Unity-Technologies/ml-agents/tree/release_18_docs/
日記まとめ
この日記は以下でまとめてます。