Unity에서 ML-Agent 멀티로 학습시키기
#Unity3D #MLAgent #Multi-Agent #Training
안녕하세요 이번 포스팅은 ML-Agent 학습을 멀티로 시키는 것을 해보겠습니다. 지난 포스팅에서 단일 환경으로 학습을 시키니 학습시간이 매우 오래걸리는 것을 경험하셨을 겁니다. 그래서 50만 Step을 설정해놓고 10만 Step에서 학습을 중단했었죠. 멀티 환경으로 학습을 시키게 되면 학습시간이 비약적으로 상승합니다. 여러분도 꼭 해보세요.
지난 포스팅에서 만들었던 '축구공 굴리기' 게임환경에서 훈련을 진행하겠습니다. Hierarchy창에서 TrainingArea를 Project창에 드래그해주세요. 그러면 프리팹이 만들어집니다. 만든 프리팹을 다시 Hierarchy창에 드래그해주거나 복사해줍니다. 저는 9개만 만들겠습니다.
위와 같이 같은 Scene에 여러개의 Agent가 있으면 서로 영향이 있지 않나 우려할 수도 있는데요, 그래서 충분한 거리를 두고 배치했습니다. 또한, 각 환경에서 아래와 같이 local position을 사용하기 때문에, 상위 오브젝트(TrainingArea) 내에서 독립적인 position값을 부여받습니다.
그래서 카메라는 아래와 같이 설정해주시고,
각 TrainingArea의 X, Z position을 아래와 같이 격자로 입력해줍니다.
(0, 0), (20, 0), (40, 0) (0, 20), (20, 20), (40, 20) (0, 40), (20, 40), (40, 40) ** 만들었던 프리팹으로 들어가서 아래와 같이 '훈련모드'로 세팅해줍니다.
이제 훈련을 시작해보겠습니다. 이번에는 훈련ID에 'multi'를 넣어서 지난번과 구별하겠습니다.
1
mlagents-learn config/rollerball_config.yaml --run-id=RollerBall_multi
[영상]
확실히 지난번 싱글 훈련에 비해 몇배가 빨라진 것을 체감할 수 있습니다.
여기까지 멀티 훈련 포스팅을 마치겠습니다. 감사합니다.







