Unityの公式から、ML-Agentsという強化学習ライブラリが配信されています。
今回はこのライブラリのサンプルであるサッカーを開いて、動作を確認してみます。
ML-Agentsのダウンロード
GitHubからダウンロードできます。
インストール方法は、公式のドキュメンテーションで詳しく解説されていたので、そちらをご覧ください。
下記リンクはRelease 12のものです。
https://github.com/Unity-Technologies/ml-agents/blob/release_12_docs/docs/Installation.md
サンプルを試してみた
今回はサッカーのサンプルを試してみます。
動画での確認はこちら
2対2でサッカーをする「SoccerTwos」というサンプルと、2人のキッカーと1人のキーパーがゴールを死守する「StrikersVsGoalie」というサンプルがありました。
プログラムを見てみると、ボールに触れるか点数を入れるとプラスの報酬が与えられ、時間経過か点数を入れられることでマイナス報酬が与えられていました。なお、得点による報酬を最重視しているようで、数値が高くプログラムされていました。
SoccerTwosのデモシーン
ゲームが開始すると、中央にボールが生成されます。得点を入れるか、制限時間を超えるとリセットされます。
StrikersVsGoalieのデモシーン
こちらのシーンもSoccerTwosと同様、ゲーム開始と同時に中央でボールが生成されます。得点か制限時間の時間のオーバーでリセットされます。
相違点はプレイヤーの人数とゴールが片方塞がれている点です。
感想
AIの強化学習の様子は人間の学習方法と類似していて、興味を持ちました。
ゲームエンジンのUnity・ライブラリ共に無料で利用できるので、気になった方は試してみてはいかがでしょうか?