[Unity] More observations () made than vector observation size (). The observations will be truncated. というエラーが出る原因と対処法。

(2024/08/09)

開発環境
Unityのバージョン:2022.3.27f1

More observations () made than vector observation size (). The observations will be truncated.が発生する原因。

このエラーは、ML-Agentsを使って、エージェントを学習させるときに、エージェントが収集しようとしている観測値の数が、設定された観測値ベクトルのサイズを超えていることと発生します。具体的には、

public override void CollectObservations(VectorSensor sensor)
{
    sensor.AddObservation(this.transform.position);
    sensor.AddObservation(rb.velocity.x);
    sensor.AddObservation(rb.velocity.y);
}

上記のようなコードでエージェントが収集する観測値を設定したときに、
Behavior ParametersのVector ObservationのSpace Sizeの値を本来ならば5(transform.positionは3つの値、velocity.xとyはそれぞれ1つの値なので、合計が5になるため)にしなけばいけないところを、5より小さい値にしてしまったときにこのエラーが発生します。

More observations () made than vector observation size (). The observations will be truncated.

Behavior ParametersのVector ObservationのSpace Sizeの値を、適切な値にすることで、このエラーが解消されます。実際のエラーには、More observations (6) made than vector observation size (4).のように数字が表示されるはずなので、More observationsの後の()内の数字を設定すれば解消されます。
(More observations (6) made than vector observation size (4).の場合では6を設定します。)