最初に
どうも、ろっさむです。
今回はUnityで機械学習を行う際に使用できる有名なオープンソースプラグインである**「ML-Agents」**に関して調べたことをざっくりまとめた記事となります。
「機械学習かー、興味はあるんだけどねー…でもUnityでできるなら…」
という方の、導入になれば幸いです。
(自分がそうです)
ML-Agentsとは何か
Unity初の機械学習ができるオープンソースプラグインであり、正式名称は**「Machine Learning Agents」**となります。2017年9月17日にリリースされて以降、現在もアップデートを重ねています。
気になるGitHubのリンクは以下となります。
Unityでの公式ページは以下の通りです。
このプラグインの目的としては、機械学習の最新の技術をゲーム開発者がUnityをプラットフォームとして扱えるようにすることです。
上記のライブラリの中にはエージェント(学習者)を定義するためのC#のSDKと、2D、3D及びVR/AR環境用のエージェントをトレーニングするための最先端の機械学習ライブラリが含まれています。
ここでのC#のSDKはゲームやUnity環境に簡単に組み込めるようになっており、APIも機能が豊富で、安定しているようです。
ライブラリは4つのパッケージで構成されており、1つのUnityパッケージと3つのPythonパッケージとなっています。
フレームワークの内部ではUnityとPython間の通信を行っており、Pythonパッケージ側で機械学習アルゴリズムを使用してゲーム内のキャラクターを学習させることができます。
今後の展望として、ML-Agentsを使用してローカルマシンで機械学習を行うことには限界があるため、クラウドサービスを提供し、ML-Agentsのユーザーがスケーラブルなクラウド環境で機械学習を行うことができるようにしていくみたいです。これによって、トレーニングを多数のマシンで同時に行ったりして、より速く結果を求められるようになります。
ML-AgentsCloudへの早期アクセスも始まっているみたいです。
ML-Agentsを使用することで、2つの深層強化学習アルゴリズム、Proximal Policy Optimization(PPO)とSoft Actor-Critic(SAC)を使用したトレーニングが可能となります。
「なんだか難しそうな単語が並んでるな…」と思ったらまずはお試しで触れそうな記事から見ていきましょう。
上から順番に難易度順です(個人の独断と偏見によります)。
そして最後に「Unityではじめる機械学習・強化学習 Unity ML-Agents実践ゲームプログラミング」という本があるので、がっつり触ってみたい!という人はこちらを参照すると良いかと思います。