본문 바로가기

유니티 ML Agents/ML Agents 개념

9. ML Agents 기본 예제 - 학습 환경 분석

유니티 게임 구조


3DBall의 구성을 먼저 살펴보자. Ball3DAcademy 한 개와 Ball3DBrain 한 개를 사용했다. 에이전트를 생성하기 위해 빈 객체(Empty Object)를 만들고 그 아래 Platform, Plane 그리고 Ball을 자식 객체로 넣었다. 빈 객체 이름을 Game으로 하고 프리팹을 생성하고 모두 12개를 복사했다.


프로젝트 에셋은 Materials, Prefabs, Scenes, Scripts 그리고 TFModels로 구성된다. 이와 같은 폴더 구조는 다른 ML 에이전트 프로그램에도 유사하게 적용된다. 여기에서 새로 나온 것이 TFModels인데 여기에는 학습된 모델이 저장된다.


ML 에이전트 학습 구성도


ML 에이전트 학습 기본 구성은 에이전트, 브레인, 아카데미이다. 3DBall에서는 에이전트로 Platform(큐브)을 사용했다. 학습 데이터를 수집하기 위해 Ball3DAgent 스크립트를 지원한다. 씬 뷰에 있는 모든 게임 오브젝트가 에이전트가 되는 것이 아니라 사용자가 플레이 하고자 하는 객체만 에이전트로 지정하고 브레인을 할당한다.


브레인으로는 Ball3DBrain을 사용했다. Heuristic 브레인 타입을 지원하기 위해 Ball3DDecision 스크립트를 지원하며 Internal 브레인 타입에서는 3DBall 모델을 사용하도록 설정되어 있다.


그리고 아카데미로는 Ball3DAcedemy를 만들었다. 아카데미의 기능을 정의하는 스크립트로는 Ball3DAcademy 파일을 지원한다.