글 작성자: 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 이름인 파일 생성/불러오기로 이해할 수 있음.
반응형