メインコンテンツまでスキップ

Academy スクリプトは、ML-Agents Toolkitにおける環境の管理やエピソードの制御を行うクラスです。Academyは、エージェントの学習環境を設定し、複数のエージェントやシーン全体の振る舞いを制御するために使用されます。以下に、Academy スクリプトの主要な要素とその役割について説明します。



Academy スクリプトの役割

  1. 環境の初期化とリセット:

    • 環境全体の初期化やリセットを行います。例えば、エピソードの開始時に環境をリセットする処理を記述します。
  2. エピソードの管理:

    • エピソードの開始や終了を管理します。エピソードが終了したときに、すべてのエージェントに対して適切な処理を行います。
  3. 環境全体の設定:

    • 学習環境全体の設定やパラメータを定義します。これには、シーンの設定やエージェントの初期位置の設定などが含まれます。
  4. シーン全体の管理:

    • 環境内の複数のエージェントやオブジェクトを管理するための機能を提供します。


Academy クラスの基本的な使用法

Academy クラスをカスタマイズするには、以下のようなサブクラスを作成します。これにより、環境全体の設定やエピソードの管理が可能になります。

基本的なコード例

using UnityEngine;
using Unity.MLAgents;
using Unity.MLAgents.Sensors;

public class MyAcademy : Academy
{
// 環境の初期化処理
public override void InitializeAcademy()
{
// 初期化コード
}

// エピソードの開始処理
public override void AcademyReset()
{
// エピソードリセット処理
}

// 環境の更新処理
public override void AcademyStep()
{
// 環境更新処理
}
}


主なメソッド

  • InitializeAcademy:

    • Academyが初期化されるときに呼び出されます。環境全体の初期設定をここで行います。
  • AcademyReset:

    • 新しいエピソードが始まる前に呼び出されます。環境やエージェントの状態をリセットするためのコードをここに記述します。
  • AcademyStep:

    • 各ステップごとに呼び出されます。環境全体の更新処理をここで行います。


注意点

  • Academy クラスはオプション:

    • 環境全体の管理が必要な場合にのみカスタムAcademyクラスを作成します。基本的なシンプルな環境では、Academyクラスを作成せずにエージェントだけで学習を行うこともできます。
  • シーンに1つだけ:

    • シーン内にAcademyのインスタンスを1つだけ配置するようにします。複数配置すると予期しない動作を引き起こす可能性があります。

Academy クラスは、ML-Agentsのトレーニング環境全体を管理するための強力なツールであり、学習プロセスを制御し、システム全体の整合性を保つために利用されます。