ML-Agents 공부 (3) 190818
글 작성자: Doublsb
본 카테고리는 "공부"입니다. 정보를 얻으실 때 사실과 다르거나 부정확한 정보가 들어있을 수도 있습니다.
#은 공부하면서 스스로가 적는 코멘트입니다.
1) Academy 스크립트 작성
참 편리하게도 추상 클래스로 되어 있기 때문에, Academy를 상속받기만 하면 됨.
상속받으면 빈 프로젝트여도 Academy로 작동한다. #후에 라이브러리 공부하기
Inspector 창에서 Academy의 상세 정보 설정 가능.
- Time Scale : 배속. 15로 잡으면 15배속으로 학습이 이루어진다.
- Target Frame Rate : 목표로 하는 화면의 프레임.
2) Agent 스크립트 작성
Agent를 상속받으면 해당 스크립트는 에이전트로 판단됨.
- AgentReset
Agent 초기화 함수. - CollectObservations
Agent 주변 사항을 수집해서 보냄. - AddVectorObs
수치 값을 수집함. 이 때, -1에서 +1 사이로 값을 정규화해 전달하면 퍼포먼스가 상승한다. - AgentAction
에이전트에 텐서플로우로부터 받은 값을 입력함. - AddReward(float)
지정한 값의 보상을 줌. (상/벌점) - Done
현재까지의 시행 결과를 텐서플로우로 보내 저장하고, 설정값에 따라 AgentReset을 호출.
액션 함수에 값을 입력할 때, 두 가지의 방법으로 입력됨.
- Discrete : 각 입력 통로에 미리 정해진 값 중 하나를 집어넣는다. [-1, 0, 1, 2]라면 그 중 하나 전송.
- Continuous : 각 입력 통로에 (-1 ~ +1) 사이의 값을 집어 넣음.
AgentAction에서는 vectorAction[N]을 받아오고, AddReward(N)으로 보상을 주는 방식으로 이루어짐.
3) 강화학습 수행 (윈도우 환경)
Anaconda Prompt에서 activate ml-agents 명령어 수행으로 개발환경 활성화
유니티 프로젝트 폴더에 trainer_config.yaml 파일을 옮김 (하이퍼 파라미터가 설정된, 설정할 수 있는 파일)
mlagents-learn --train trainer_config.yaml 명령어로 학습 수행 가능.
- slow
현실의 시간 단위로 학습 수행 가능. - load
저장된 이전 단계의 값들을 불러와서 진행함. - run-id = "string"
string 이름인 파일 생성/불러오기로 이해할 수 있음.
반응형
'프로그래밍 > Unity' 카테고리의 다른 글
Unity UGUI InputField의 한글 입력 문제 해결하기 (1) | 2020.12.15 |
---|---|
그래픽(스프라이트) 없이도 UI Raycast하기 (0) | 2020.08.04 |
Unity : Child를 Destroy 후 ChildCount를 참조할 때 문제상황 (1) | 2019.11.28 |
ML-Agents 공부 (2) 190818 (0) | 2019.08.18 |
ML-Agents 공부 (1) 190818 (0) | 2019.08.18 |
댓글
이 글 공유하기
다른 글
-
그래픽(스프라이트) 없이도 UI Raycast하기
그래픽(스프라이트) 없이도 UI Raycast하기
2020.08.04 -
Unity : Child를 Destroy 후 ChildCount를 참조할 때 문제상황
Unity : Child를 Destroy 후 ChildCount를 참조할 때 문제상황
2019.11.28 -
ML-Agents 공부 (2) 190818
ML-Agents 공부 (2) 190818
2019.08.18 -
ML-Agents 공부 (1) 190818
ML-Agents 공부 (1) 190818
2019.08.18