-
Notifications
You must be signed in to change notification settings - Fork 0
2. Introduction
SONG edited this page Jul 21, 2021
·
3 revisions
python 의 gym 라이브러리와 같이 에뮬레이터에 step 명령어로 환경을 직접 제어하면서 진행하는 강화학습은 널리 알려져있지만 Unity ML Agent 외에 상용 엔진을 이용해 강화학습을 진행하는 방법을 찾기는 힘들었다.
그래서 소켓통신을 이용해 Unreal Engine과 Python으로 강화학습을 진행해보았다.
만든 후 결과를 코드를 몇가지 특징이 있었다.
- 완벽하게 게임 엔진을 제어하지 않는다.
- Brain(Part 5 에서 설명)에서 UR Game을 통제한다.
- 프레임마다 통신하지 않고 약속한 주기마다 통신한다.
- 데이터 통신량이 적기 때문에 모든 데이터를 활용한다.
- DQN Algorithm을 활용하였다.
- DQN 의 state 가공 Algorithm을 변형하였다.
DQN은 state를 4 프레임 쌓아 Q network의 input으로 활용하였고 4 프레임마다 Action을 하고 나머지 프레임은 나온 Action을 그대로 진행하였는데 데이터가 부족하기 때문에 길이가 4 인 큐에 데이터를 집어 넣고 그 데이터를 Q network의 입력 데이터로 하였다.