프로그래밍 농장

Unity ML-Agents 2.0 머신러닝 - 1 [ Unity ] 본문

Unity

Unity ML-Agents 2.0 머신러닝 - 1 [ Unity ]

Tennessee201 2022. 2. 23.
728x90

유니티 ML-Agents 2.0 및 release 버전에 맞는 Python환경까지 준비가 되었다면, 아래와 같이 새 Scene에서 3DBall을 오픈해준다.

여기서 Scene은, 게임의 모든 오브젝트를 포함하고 있음으로서, 간단한 게임은 하나의 Scene으로도 구동될수있다.

좌측 Hierachy의 3DBall - Agent 의 Inspecter를 들여다보면, 확인해봐야 할 컴포넌트는 크게 아래 4가지가 있다.

- Behavior Parameters 

- Ball 3D Agent

- Decision Requester

- Model Overrider 


- Behavior Parameters 

해당 요소에서 에이전트의 학습에 관련된 다양한 Parameter들을 수정할수있으며 반드시 포함되어야한다. 

Vector Observation : 환경의 수치적 관측 관련 설정 , Space size를 통해 관측의 크기 결정 , Stacked Vector를 통해 관측의 누적 횟수 결정 ( ex. 시간(step) 에 따른 관측변화 . . )

Actions : 에이전트의 행동 관련 설정 ( 이산적, 연속적 . .(Branches size . .) )

Model : 실제 학습의 결과를 확인하기 위해 학습된 모델을 적용 ( Inference Device : 사용 장치 설정 ) 


- Ball 3D Agent ( Script )  

Max Step : 한 에피소드 당 최대 스텝의 수 

Specific to Ball3D : Agent 스크립트 내의 public 변수

 

스크립트에서의 간단한 코드정리

- Initialize : 환경이 실행될 떄 호출되는 초기화 함수

- CollectObservations : Agent에게 Vector Observation 정보를 전달해 주는 함수 

- OnActionReceived : Agent가 결정한 행동을 전달, 보상 업데이트, 에피소드 종료 

- OnEpisodeBegin : 각 에피소드가 시작될 떄 호출되는 함수

- Heuristic : 개발자가 직접 명령을 내리는 휴리스틱 모드에서 사용 


- Decision Requester

- Agent의 행동을 정책에게 요청하는 컴포넌트 : Decision Period : 정책 결정 시간 


- Model Overrider ( Script )

해당 컴포넌트는 학습이 완료된 후 모델의 유효성을 검사하기 위해 내부적으로 사용되는 클래스이다.


이후 Build 를 통해 해당 프로젝트 (Scene) 을 저장할 경로 및 파일을 아래와 같이 생성하고 Build를 진행해준다 .

 

정상적으로 Build 된 모습


다음 포스팅에서는 빌드된 3DBall Project를 이용하여 ML-Agents 학습을 진행해보도록하겠습니다. 

728x90