본문 바로가기

프로그래밍/Unity-ML

Unity-ML 강화학습 테스트 및 수정

강화학습을 하는 방법

1. 깃 클론이 있는 폴더에서 config > trainer_config.yaml를 복사해서 해당하는 프로젝트에 추가

2. 아나콘다 프롬포트에서 activate ml-agents 로 ml-agents를 활성화

3. mlagents-learn --train --run-id="Player Train 0" trainer_config.yaml 입력

3-1. Player Train 0는 해당하는 학습의 이름, trainer_config.yaml 는 해당하는 학습을 구성하는 파라미터값을 저장해둔 파일이다. 이를 하이퍼 파라미터라 한다.

4. 정상적으로 작동 했다면 유니티를 플레이 하면 학습을 시작한다.

이제 학습을 시작했는데 학습을 했더니

이렇게 멈춰버리고 말았다. 그래서 패널티를 수정해서 다시 진행했지만 또다시 멈추고 말았다.

따라서 아에 값을 수정하여 목표과 플레이어와의 거리값을 주었더니 목표를 찾았지만 자꾸 떨어졌다. 이에 여러 조언을 들은 결과 차후 수정사항은 다음과 같다.

1. 앞으로는 유니티의 비디오 레코드 기능을 사용하여 레코드를 통해서 학습을 지켜볼 것

2. 학습을 범용적으로 사용하기 위한 환경구축 중 이 경우 레이케스트를 쓰는 것이 가장 효과적

3. 텐서보드를 통해서 학습이 잘 되고 있는지 체킹하고 잘되고 있지 않을 때는 추가적인 학습스탭은 불필요

4. 유니티에서 제공하는 예제 중심으로 살펴 볼 것

 

텐서보드의 사용법

참고한 블로그: https://mindrich.tistory.com/35?category=755803

 

Unity ML 기초 3. 강화학습 교육학습 예제 (3DBall)

★ 개요 ★ 3DBall Scene 을 이용해 강화 학습을 공부하기 위함 ★ Arcademy ★ - Training Configuration - 교육을 하는동안 사용되는 Properties 이다 (External) - Inference Configuration - (1) 교육을 진행..

mindrich.tistory.com

1. ml -agents 디렉토리에서 cmd 창에 tensorboard --logdir=summaries 입력

2. 브라우저 https://<데스크톱 이름>:6006 으로 이동

3번째 학습때의(멈춰버린) 텐서보드

텐서보드에서 주로 봐야할 스탯

1. Cumulative Reward : 보상 누적, 효율적인 트레이닝이라면 시간이 지날수록 상승해야한다. 스무스를 걸었음에도 지그재그가 심하다면 학습에 문제가 있는 것이다.

2. Policy Loss - 정책 기능 업데이트의 평균 손실정책 (작업 결정 프로세스) 변경되는 정도와 관련됩니다 훈련의 규모는 성공적인 훈련 기간 동안 감소해야합니다.

3. Value Loss -  함수 업데이트의 평균 손실입니다모델이  상태의 가치를 예측할 수있는 정도와 상관 관계가 있습니다성공적인 교육 세션 동안이 값이 감소해야합니다.

'프로그래밍 > Unity-ML' 카테고리의 다른 글

Unity-ML 카메라 환경  (0) 2019.10.15
Unity-ML의 구조  (0) 2019.10.01
Unity-ML 비디오 레코더  (0) 2019.09.26
Unity-ML 강화학습 예제 작성  (0) 2019.09.18
UNITY-ML 설치 및 세팅  (1) 2019.09.18