やらなイカ?

たぶん、iOS/Androidアプリの開発・テスト関係。

ML-Agentsに入門するならUnity LearnのML-Agents: Penguinsがおすすめ

個人差があるとは思いますが、最初のチュートリアルとして良いサイズだと思うので(そしてUnity Learnの検索で出てこないので)紹介します。

おすすめポイントは、

  • ダウンロードするファイルはペンギン等のfbxのみ
  • コードは説明付きで小分けに提示されていて、コピペするにしても内容を把握しながらできる*1
  • 学習用Python環境のセットアップも解説されている(Anacondaを使用)

なお、Unity Learnは無料で提供されています。

ML-Agents: Penguins

learn.unity.com

このコンテンツ、内容が古いためかUnity Learnの検索で出てきません。 Unity ML-Agents Toolkitは2020年5月に晴れてバージョン1.0がリリースされ、最新版はRelease 12です*2 *3。 一方、このPenguinsチュートリアルはBeta 0.13をベースとしています。

そのため、上記ページそのままではなく、チュートリアルを提供しているImmersive Limit LLCが別に公開しているアップデート情報*4を元に進めます。

www.immersivelimit.com

以下、個人的な補足です。

  • Unity packageはUPM、Python packageはpipで取得できるため、Unity ML-Agents Toolkit リポジトリのclone取得は不要です*5
  • UnityのPackage Managerウィンドウでは ML-Agents 1.0.6 (verified) までしか出ませんが、Packages/manifest.jsonを直接編集すれば 1.7.2-preview も指定できます
  • Anacondaは必須ではありません。ただし何かしらのPythonパッケージ+環境管理ソリューション*6は使ったほうがよさそう
  • Anacondaで環境を作るとき、名前は ml-agents より、Python packageのバージョンを加えて ml-agents-0.23 などとするのがよさそう
  • gitリポジトリで管理するとき、ML-Agentsの生成するファイルは.gitignoreに下記を追加することでトラッキング対象外にできます
Assets/ML-Agents*
results/

自分で学習させたペンギンが動くのはかわいくて、ずっと見てても飽きないですね。

f:id:nowsprinting:20210223225822p:plain

その他のUnity Learnコンテンツについて

Karting Mod:スマートカートのトレーニングガイド

learn.unity.com

日本語対応しているものですが、以下の理由で最初にはおすすめしません。

  • Penguins同様 0.13 ベースで古い(ML-Agentsはプロジェクトに内包しているので動かしてみるだけなら問題はない)
  • Penguinsに比べて要素が多い

ML-Agents: Hummingbirds

learn.unity.com

こちらはバージョン1.0 (Release 1) 時点でのコンテンツです。 動画による前提の説明もあり、「強化学習なんもわからん」人にはこちらから入ってもいいかもしれません。

ただ、説明がほとんど動画で時間もかかるので途中までで止めてしまいました。 続きを進めたらこの記事を更新するつもりです。

参考

Unity ML-Agents Toolkit に入ってるexamplesの解説

ml-agents/Learning-Environment-Examples.md at release_12_docs · Unity-Technologies/ml-agents · GitHub

Unity ML-Agents Toolkit のマイグレーション情報

ml-agents/Migrating.md at main · Unity-Technologies/ml-agents · GitHub

ML Agents 1.0以降に入った変更などの話

https://blogs.unity3d.com/jp/2020/12/28/happy-holidays-from-the-unity-ml-agents-team/blogs.unity3d.com

*1:完成プロジェクトで説明される場合、どこまでML Agentsでどこから自作した機能なのかわからないことが起こりがち

*2:Unity packageとPython packageで別々のバージョンが振られているためこの表現。ちなみにRelease 12のUnity packageは1.7.2、Python packageは0.23.0

*3:これを書いた2日後にRelease 13が出ました

*4:ML-Agents Release 10 向けアップデートとなっていますが、Release 12でもそのまま動きました

*5:多数のExamplesがあるので次のステップとして触ってみるには良いと思います

*6:Minicondaとかvenvとか