# ML-Agents Behavior Parameters

# Behavior Parameters

  • Behavior Name : Behavior Parameters의 이름을 결정함, 여러개의 파라미터를 사용하는 경우 이들을 구분하기 위한 것
  • Vector Observation
    1. Space Size : 현재 환경에서 사용할 벡터 관측의 크기를 설정
    2. Stacked Vectors : 벡터 관측의 누적 횟수를 결정, 시간에 따른 누적으로 해당 누적 횟수만큼 시간 스텝에 대해 벡터 관측을 누적 - Why ? : 속도나 방향과 같이 시간에 대한 정보가 필요한 경우에는 상태를 누적해야함
  • Actions : 에이전트의 행동과 관련된 설정

3DBall 게임 같은경우 X,Z축을 회전시키면서 박스를 제어해야 하므로 2개의 축에대한 제어를 위해 Continuous Actions을 2로 설정

Continuous Actions이 0이고 Discrete Braches가 1, Branch 0 Size가 4일 경우 에이전트가 위, 아래, 왼쪽, 오른쪽으로 갈 수 있는 Action이 4개임!

Continuous Actions이 0이고 Discrete Braches가 2, Branch 0 Size가3일 경우 , Branch 1 Size가3일 경우

첫 번째 Branch의 경우 행동을 정지, 위, 아래, 두 번째 Branch에서 행동을 정지, 왼쪽, 오른쪽 3개로 설정해보자(가정임)

첫 번째 Branch에서 위, 두 번째 Branch에서 왼쪽으로 가면 왼쪽 대각선으로 이동, 즉 조합하면 9개의 Action을 취할 수 있음

 

 

Model : ML-Agents에서 제공하는 알고리즘으로 학습하는 방식인 mlagents-learn을 통해 학습된 에이전트의 모델을 적용할 수 있음

저번 시간에 학습시킨 녀석임! 확장자는 nn 혹은 onnx임

 

Behavior Type Default, Inference Only, Heuristic Only 3가지로 설정가능

  1. Default : 위에서 살펴본 파라미터의 모델에 학습모델이 적용돼 있다면 해당 모델의 학습 결과대로 에이전트가 행동을 수행, 빌드 후 수행하려면 Default로 해놔야함
  2. Inference Only : 적용된 모델을 통해서만 에이전트의 행동을 결정
  3. Heuristic Only : 사용자가 직접 정한 규칙에 의해서만 에이전트를 제어

Team ID : 에이전트간 공유할 정책 index, 같은 Team ID를 가진 에이전트들은 정책을 공유하여 업데이트 함, 여러 에이전트가 존재하는 환경에서 Team ID를 몇 개의 에이전트에 대해서는 0으로 몇 개의 에이전트에 대해 1로 설정할 수 있다, 이때 같은 Team ID가진 에이전트들은 서로 협력하고, 다른 Team ID를 가진 에이전트들은 서로 경쟁하며 학습을 수행하는 Multi-Agents 강화학습 환경을 만들 수 있다