- Today
- Total
프로그래밍 농장
Unity ML-Agents 2.0 머신러닝 - 1 [ Unity ] 본문
유니티 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 학습을 진행해보도록하겠습니다.
'Unity' 카테고리의 다른 글
Unity ML-Agents 2.0 Parameter description [ Unity ] (0) | 2022.02.28 |
---|---|
ML-Agents 학습 알고리즘 이론 [ Unity ] (0) | 2022.02.25 |
Unity ML-Agents 2.0 환경설정 및 설치 - 2 [ Unity ] (0) | 2022.02.21 |
Unity ML-Agents 2.0 환경설정 및 설치 - 1 [ Unity ] (0) | 2022.02.17 |
Animation Layer / Blend Tree 이론 [ Unity ] (0) | 2022.02.14 |