Unity ML-Agents 0.14.0 のエージェントのコンポーネント
「Unity ML-Agent」の「エージェント」で利用するコンポーネントをまとめました。
1. Behavior Parameters
エージェントには、必ず「Behavior Parameters」を追加します。
・Behavior Name : ビヘイビア名。訓練設定ファイルのセクションとして利用。
・Vector Observation
・Space Size : Vector Observationのサイズ。
・Stacked Vectors : 過去の状態をスタックし観察対象に含める。
・Vector Action
・Space Type : 行動種別(Continuous / Discrete)。
・Continuous
・Space Size : 行動のサイズ。
・Discrete
・Batches Size : バッチのサイズ。
・Batche X Size : バッチXのサイズ。
・Model : 推論に利用するモデルの参照。
・Inference Device : 推論デバイス(CPU/ GPU)
・Behavior Type : 振る舞い種別(Default / Heuristic Only / Inference Only)
・Team Id : セルフプレイのチームID。
・Use Child Sensors : のエージェントの子ゲームオブジェクトのセンサーの利用。
2. Decision
[観察 → 決定 → 行動 → 報酬]のサイクルは、エージェントが「決定」(Decision)を要求するたびに実行されます。「決定」の要求方法は次の2つです。
・Decision Requestr : 定期的に決定を要求
・RequestDecision() : 任意のタイミングで決定を要求
◎ Decision Requestr
エージェントに「Decision Requestr」を追加すると、定期的に「決定」が実行されるようになります。
・ Decision Period : 何ステップ毎に「決定」を実行するかを指定。
・ Repeat Action : 「決定」が要求されないステップでAgentAction()が呼ばれるかどうか。
・ Offset Step : エージェントの「決定」をランダムなオフセットで開始するかどうか。
◎ RequestDecision()
エージェントのRequestDecision()を呼ぶことで、任意のタイミングで「決定」を実行することができます。ターン制ゲームなど、「決定」が定期的でない学習環境で役立ちます。
3. Visual Observationのセンサー
「Visual Observation」を使うときは、以下のセンサーを使います。
・Camera Sensor Component : Cameraの映像を観察として利用
・Render Texture Sensor Component : RenderTextureの映像を観察として利用
◎ Camera Sensor Component
Cameraの映像を観察として利用するには、「Camera Sensor Component」を追加します。
・Camera : カメラの参照。
・Sensor Name : センサー名。
・Width : 画像の幅(ピクセル)。
・Height : 画像の高さ(ピクセル)。
・Grayscale : グレースケールかどうか
・Compression : 圧縮(PNG / None)
◎ Render Texture Sensor Component
RenderTextureの映像を観察として利用するには、「Render Texture Sensor Component」を追加します。
・Render Texture : レンダーテクスチャの参照。
・Sensor Name : センサー名。
・Grayscale : グレースケールかどうか
・Compression : 圧縮(PNG / None)
4. Raycast Observationのセンサー
「Raycast Observation」を使うときは、以下のセンサーを使います。
・Ray Perception Sensor Component 3D : 3Dのレイキャスト観察。
・Ray Perception Sensor Component 2D : 2Dのレイキャスト観察。
◎ RayPerceptionSensorComponent3D
3Dのレイキャスト観察を行うには、「Ray Perception Sensor Component 3D」を使います。
・Sensor Name : センサー名。
・Detectable Tags : 検出可能タグ。
・Rays Per Direction : 中心から左右のレイの数。
・Max Ray Degrees : 最外のレイの正面からの角度。
・Sphere Cast Radius : レイとして飛ばす球の半径。ラインのみ衝突反転は0に指定。
・Ray Length : レイの長さ。
・Ray Layer Mask : レイが衝突するレイヤーの制限。
・Observation Stacks : 過去の状態をスタックし観察対象に含める。
【Debug Gizmos】
・Ray Hit Color : レイの衝突時の色。
・Ray Miss Color : レイの未衝突時の色。
・Use World Positions : レイキャスト時にワールド空間で描画するかどうか。
【3D Properties】
・Start Vertical Offset : レイの始点の上下オフセット。
・End Vertical Offset : レイの終点の上下オフセット。
◎ RayPerceptionSensorComponent2D
2Dのレイキャスト観察を行うには、「Ray Perception Sensor Component 2D」を使います。
・Sensor Name : センサー名。
・Detectable Tags : 検出可能タグ。
・Rays Per Direction : 中心から左右のレイの数。
・Max Ray Degrees : 最外のレイの正面からの角度。
・Sphere Cast Radius : レイとして飛ばす球の半径。ラインのみ衝突反転は0に指定。
・Ray Length : レイの長さ。
・Ray Layer Mask : レイが衝突するレイヤーの制限。
・Observation Stacks : 過去の状態も観察対象とするか。
【Debug Gizmos】
・Ray Hit Color : レイの衝突時の色。
・Ray Miss Color : レイの未衝突時の色。
・Use World Positions : レイキャスト時にワールド空間で描画するかどうか。
この記事が気に入ったらサポートをしてみませんか?