1. Unity프로젝트 생성
Unity SDK는 템플릿으로 사용할 수 있는 유니티 프로젝트 폴더이다.
여기에는 유니티 ML-Agent에서 쓰이는 유니티 프로젝트 구성이 모두 들어가 있다.
템플릿 프로젝트를 훼손하지 않도록 복사해서 사용하는 것이 좋다.
그런 다음 유니티로 이 프로젝트를 열어주도록 한다. (2017.04버전 이상이어야 사용 가능)
그러면 ML-Agents라는 폴더가 보인다.
여기 안에는 구동할 수 있는 소스와 사용 예제들이 있다.
2. 아카데미 생성
아카데미는 유니티 외부에 있는 파이썬 프로그램과 유니티 내부에 있는 브레인들을 이어주는 역할을 한다.
- 스크립트 생성 / 오브젝트 생성
Player_Academy라는 이름의 스크립트와 Academy라는 오브젝트를 생성해준다.
- 네임스페이스 선언
- Academy 상속
이 Academy는 아카데미에서 동작하기 위한 코드들이 작성돼있다. (Academy는 추상 클래스)
- Academy기능 확인
Max Step : 현재 에피소드를 종료하고 다음 에피소드로 강제로 리셋하는 간격
(0으로 되어있으면 아카데미가 강제로 넘기지 않고 파이썬 프로그램에서 설정한 간격을 따른다.)
Training Configuration : 강화 학습을 시작할 때 사용하는 설정(해상도, 프레임 제한)
Inference Configuration : 이미 강화 학습된 결과를 실시간으로 실행할 때 사용하는 옵션
3. 트레이닝 환경 구성
아래 그림과 같이 간단한 훈련을 시키기 위해 세팅을 해준다.
Plane : 보여주기 위한 초록색 땅
Player : 훈련을 시킬 에이전트
Target : Player가 먹을 아이템 (Tag를 goal로 바꿔준다)
DeadZone : 플레이어가 닿으면 죽는 곳
(DeadZone의 Tag는 콜라이더 충돌 시 체크하기 위해 변경해준다)
3. Agent스크립트 작성
새로운 스크립트를 만든 후 아카데미와 마찬가지로 네임스페이스 추가와 Agent를 상속받도록 한다.
에이전트 기본 세팅
작성한 Agent스크립트를 Player에 붙이고 Pivot과 Target을 넣어준다.
학습참고
'유니티 > 머신러닝' 카테고리의 다른 글
ML-Agents) 강화학습 #4 (0) | 2019.09.17 |
---|---|
ML-Agents) 브레인 생성 (0) | 2019.09.17 |
ML-Agents)개발환경 셋팅 (Window) (0) | 2019.09.17 |