★ 머신러닝(ML)이란 ★

-1. 기계학습 또는 머신러닝은 인공지능의 한 분야이다

-2. 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야

-3. 대량의 데이터나 알고리즘을 통해 '학습' 을 시켜 수행하는 방식이다

(기초 데이터를 주지 않아도 스스로 학습을 통하여 결과를 만들어낸다)

(ex) 예로 이메일이 스팸인지 아닌지를 구분할 수 있다



★ 학습 종류 ★

-1. 강화 학습(PPO)

-2. 모방 학습

-3. 커리큘럼 학습

-4. 관찰학습



★ Unity ML(머신러닝) - 에이전트 훈련 주기 ★

-1. Agent 행동

-2. Environment (환경) 상태 변경

-3. Agent 에게 보상 제공




★ Unity ML(머신러닝) - 에이전트 내부 구조 ★


에이전트(Agent)

-1. 각각의 에이전트는 고유의 상태 및 관측 값을 가지고 있다

-2. 환경 내에서 고유의 행동을 하며 환경에서 일어나는 이벤트에 따라 고유의 보상을 받는다

-3. 각 에이전트의 행동은 에이전트가 연결된 브레인에 의해 결정된다



브레인

-1. 각 브레인은 특정 상태와 행동 공간을 정의한다

-2. 연결된 에이전트가 어떤 행동을 취할지 결정한다

현재버전 행동결정

- External - TensorFlow 를 사용하여 파이썬 API 를 통해 개방형 소켓으로 통신하여 행동을 결정

- Internal(실험 단계) - TensorFLowSharp 을 통해 프로젝트에 탑재된 훈련된 모델을 활용하여 행동을 결정

- Player - 플레이어의 입력을 통해 행동을 결정

- Heuristic - 직접 코딩한 동작을 기반으로 행동을 결정



아카데미

-1. 씬에 포함된 아카데미 오브젝트는 해당 환경에 포함된 모든 브레인을 자식으로 포함한다

-2. 각 환경은 한개의 아카데미만 포함하며 그 정의는 다음과 같다

-엔진 설정 : 훈련 및 추론 모드 상에서 게임 엔진의 속도와 렌더링 품질 설정

- 프레임 스킵 : 각 에이전트가 새로운 결정을 내릴때 생략할 엔진 단계의 개수

- 글로벌 에피소드 길이 : 에피소드가 지속될 길이를 의미, 에피소드가 이 길이에 도달하면 모든 에이전트가 완료 상태로 변경




★ 유니티 머신러닝 ★

소개 페이지 : https://blogs.unity3d.com/kr/2017/09/19/introducing-unity-machine-learning-agents/

깃 허브 : https://github.com/Unity-Technologies/ml-agents

Document : https://github.com/Unity-Technologies/ml-agents/blob/master/docs/Readme.md

+ Recent posts