ML-agents에 관한 모든 포스팅 내용은 https://github.com/Unity-Technologies/ml-agents 에 있는 내용을 바탕으로 만들어졌습니다.
배경지식
ML-agents 툴킷은 아래 세가지의 High-level 컴포넌트들로 생각할 수 있다.
-
Learning Environment - Unity scene을 포함한 모든 게임 캐릭터들
-
Python API - Macine Learning과 관련된 학습과 알고리즘으로 구성된 코드. 혼동하지 말아야 할 점은 Python API는 유니티의 일부가 아니라는 점이다. 파이썬은 외부프로그램이지만 작동하지만 위의 그림처럼 External Communicator를 사용하면 유니티와 함께 작동시킬 수 있다
-
External Communicator - 학습환경과 Python API를 연결해 주는 도구.
Learning Environment (학습 환경)
학습환경은 아래 3개의 세부 컴포넌트들로 구성된다. (컴포넌트는 유니티 C#코드에서 실제로 사용됩니다)
- Agents - 게임 오브젝트에 부착되는 컴포넌트인데, observation(관찰), action(행동), reward(보상) 을 관리한다. 그리고 중요한 점은 각각의 에이젼트가 자신의 Brain과 연결되어 있다는 점이다.
- Brains - 어떻게 행동을 내릴지에 대한 정보를 캡술화 한 것이다. 따라서 Brain은 각각의 agent가 어떤 Policy를 적용하여 행동해야하는 가에 대한 정보를 가지고 있다. 더욱 자세하게 설명하면, 에이젼트로부터 관찰(Observation)과 보상(Reward)을 입력받아 action을 리턴해주는 컴포넌트이다.
- Academy - 학습이 잘 이뤄질 수 있도록 도와주는 컴포넌트이다. 이 컴포넌트를 통해 환경을 얼마나 크게 만들지, 랜더링 품질은 어떻게 할지, 학습속도는 어떻게 지정할지, 외부 통신은 어떻게 할지와 같은 것들을 지정할 수 있다.
'컴퓨터 공학 > 머신러닝' 카테고리의 다른 글
[ML-agents] 란 무엇 인가? (0) | 2019.04.24 |
---|---|
[ML-agents]의 공식 문서에는 무엇이 있나? (0) | 2019.04.24 |
[ML-agents]관찰, 행위, 보상이란? (0) | 2019.04.24 |
[모두를 위한 머신러닝/딥러닝 요약] 1강-7강 (0) | 2019.03.24 |