「Unity ML-Agents 2.0」の「DodgeBall環境」についてまとめました。
前回
1. DodgeBall環境
「DodgeBall」は、プレイヤーがボールを拾って相手に投げつけるシューティングゲームの学習環境です。
以下の2つのモードが用意されています。
プレーヤーは最大4つのボールを拾うことができ、ダッシュすることで、ボールをかわしたり、生け垣を通過したりすることができます。
2. 学習方法
この学習環境は、「MA-POCA」「可変長観察」「セルフプレイ」を利用して、エージェントを学習しています。
3. DodgeBall環境の実行
DodgeBall環境の実行手順は、次のとおりです。
(1) DodgeBall環境をクローン。
DodgeBall環境のプロジェクトフォルダ(ml-agents-dodgeball-env)がクローンされます。
$ git clone --single-branch --branch dodgeball-env https://github.com/Unity-Technologies/ml-agents.git ml-agents-dodgeball-env
(2) Unityエディタv2020.2.6以降でプロジェクトフォルダを開く。
(3) 「Assets/Dodgeball/Scenes/TitleScreen.unity」を開き、Playボタンで実行。
事前学習されたエージェントと対戦することができます。
4. DodgeBall環境のシーン
「Assets/Dodgeball/Scenes/」には、以下の7つのシーンが含まれています。
5. 学習
「DodgeBall」環境は、「ML-Agents Release 18」で構築されています。学習には、「Elimination_Training.unity」「CaptureTheFlag_Training.unity」のいずれかを使用します。
学習設定YAML「DodgeBall.yaml」では、コンピュータの性能に応じて、コメントを解除し、環境の数(num_envs)を増やすことができます。
数千万のステップ(これには何時間もかかります)の後、エージェントは改善し始めます。他のセルフプレイの実行と同様に、時間の経過とともにELOが増加するのを観察する必要があります。学習の各段階で、どのような行動が予想されるかについては、以下の動画を参照してください。
6. 環境パラメータ
ブログ投稿の結果を生み出すために、このリポジトリのデフォルト環境を利用しました。 ただし、報酬機能を調整し、トレーナーから環境を制御するための環境パラメータも提供しています。
参考