Unity Scene = 유니티 내부 프로그램을 뜻 함.
그 외부에 있는 ML-Agents와 Tensorflow는 유니티와는 독립적으로 따로 동작함.
즉, 강화학습에서 머신러닝과 관련된 모델이나 수학적인 처리들 그리고 Low Level의 일들을 유니티 외부에서 진행함.
유니티는 강화학습을 하기 위한 환경을 마련한 것이다.
이 구조에서 유니티 내부의 Agent들은 Brain과 Academy를 통해 외부로 보내고 외부에서는 모델과 관측 된 환경에서
무엇을 선택해낼지에 대한 정보를 Academy를 걸쳐서 Brain으로 보내고 그 Brain에서 Agent로 보내는 것이다.
- 에이전트(Agent) = Actor
자신의 속도나 주변 지형 등 주변 정보를 인지 할 수 있는 기능을 가지고 있다. 그 관측 된 정보를 바탕으로 어떤 선택이 결정이 돼었을 때 그 결정을 행동으로 옮긴다. 보상과 처벌을 주며 우리가 원하는 방향으로 Agent의 행동이 유도 됨.
- 브레인(Brain) = Agent의 선택을 실제로 결정해 주는 결정자
선택을 위한 모델을 갖고 있으며, 모델은 어떤 상황에서 무엇을 선택해야할 지 판단해야하는 논리 집합이다.
Agent 행위에 방향성, 정책, 경향을 결정한다. 하나의 Brain은 동시에 여러개의 Agent의 정보를 받고 여러개의 결정을
내릴 수 있다.
단, 브레인을 공유하는 에이전트가 서로 정보를 교환하는 것은 아니다.
브레인(Brain)
ML-Agent엔 4가지의 Brain Type이 존재한다.
1. External(외부)
- 가장 많이 사용하며 기본 값임.
- 이 브래인이 사용하는 결정 모델은 유니티 외부에 파이썬 프로그램에서 전송 해 줌.
- 스스로 모델을 가지고 있지 않음.
- 관측 한 정보, 보상이나 처벌 등을 Academy를 통해서 외부 파이썬 모델로 전송해주고 다시 외부에서 역으로 전송해줌.
- 외부에서 실제로 강화학습이 진행 되면 그 결과를 실시간으로 External Brain이 가져와서 적용한다.
2. Internal(내부)
- 이미 학습이 진행 된 모델 파일을 유니티에 임포트해서 사용하는 것.
- 외부와 통신 할 필요가 없음, 하지만 더 나아가서 기존 모델에 덧붙여서 학습을 진행 할 수 없다.
- 이미 학습된 모델을 시연할 때 사용한다.
3. Player
- 사용자 입력을 그대로 Brain을 거쳐서 Agent로 전달하는 것.
- 모방 학습에 사용 됨.
(모방 학습 = Imitation 학습이라 부르며, Player의 조작을 다른 Agent들이 보고 따라하는 방식으로 배워 나가는 타입)
4. Heuristic
- 프로그래머가 하드코딩을 한 모델
- 머신러닝을 통해 탄생한 인공지능과 어떤 차이가 있는지 대조군으로 사용됨.
아카데미(Academy)
- Brain들과 Agent들을 관리하며, 학습에 에피소드 단위로 관리함.
- 에피소드는 환경이 리셋되는 분기이며, 적당한 시점에서 아카데미가 모든 것을 리셋한 다음에 다음 라운드를 시작하자고 알려주는 것.
- 현재 에피소드를 리셋 시킨 다음에 다만 학습 된 모델을 그대로 챙긴채로 다음 에피소드를 진행해서 계속 루틴을 돌린다.
- 외부 프로그램과 브레인을 연결시켜주며, 아카데미가 없으면 External Brain이 동작하지 않는다.
이미지 출처 : https://www.youtube.com/watch?v=7zKEGYYTWp8&list=PLctzObGsrjfwYHL1obWlVdPRbpubkuKWp&index=4
'게임프로젝트' 카테고리의 다른 글
1차 정리된 데모 (0) | 2020.06.30 |
---|---|
ML-Agents 사용 및 기능 설명 (0) | 2020.05.12 |
ML-Agents 개발 환경 세팅 (0) | 2020.05.09 |