Paper Tasting
[Paper Tasting] 강화학습으로 무한히 즐길 수 있는 게임 환경을 만들기
value_creator
2023. 10. 22. 22:06
- Motive
- 게임, 특히 패키지 게임은 몇 번 플레이하다보면 익숙해져 질리게 되고 게임을 졸업하게 된다. 이 때문에 플레이어에게 무한히 새로운 경험을 제공해 주는 것은 게임 개발자들의 바램이자 오래된 숙제이다. 이런 숙제를 해결하는 방법을 Procedural Contents Generation(PCG)로 그동안 많은 게임 개발자들이 연구하고 적용해 왔다. 그러나 이러한 방식은 개발자가 정의한 일련의 절차와 랜덤성을 결합하여 변화를 준 방식에 머물러 있어, 다양성이나 난이도 통제에 있어 정교한 설계를 요구한다. 컨텐츠 생성을 강화학습을 통해 학습된 Agent가 할 수는 없을까?
- 논문 제목: [2021] Adversarial Reinforcement Learning for Procedural Content Generation
- Arxiv 주소: https://arxiv.org/abs/2103.04847
- 주요 내용 및 평가
- 이 논문이 제시한 방법의 핵심은 게임 환경을 생성하는 Generator와 게임을 플레이하는 Solver를 Adverarial하게 학습하자는 것이다. 즉, Generator는 Solver가 적절한 난이도로 플레이할 수 있는 게임환경을 생성하는 행동을 하도록 강화학습되고, Solver는 Generator가 생성한 게임 환경을 클리어하는 법을 배우도록 강화학습된다. GAN에 익숙하다면 쉽게 이해할 수 있는 방식이다.
- Generator에는 현재 만들고 있는 게임 환경 정보 외에 "어떤 게임 환경을 만들지"에 대한 명령을 의미하는 control variable도 입력으로 제공된다. 예를 들어 레이싱 트랙을 만든다고 한다면 트랙의 길이, 트랙의 경사 변화, 커브 갯수 등을 입력으로 제공할 수 있을 것이다.
- Generator의 Reward는 internal reward와 external reward로 정의된다. internal reward는 입력으로 준 control variable에 따라 게임 환경을 요구조건에 맞도록 생성할 때 주어진다. external reward는 Solver의 play결과에 따라 주어지는 reward이다. Solver가 적절한 성공률 또는 성적으로 게임을 플레이할 때 보상이 주어지도록 설계한다.
- 제안된 방법은 일견 매우 이상적인 PCGRL방법으로 생각되며, 큰 틀에서는 활용해야할 framework라고 생각한다. 그러나 현실적으로 Generator와 Solver를 동시에 안정적으로 학습하기는 쉬운 일이 아닐 것이며, Generator의 경우 Reward가 Solver의 play 후에 주어지므로 매우 긴 학습시간이 걸릴 것이다. 상용 게임에 이 framework를 적용하려면 이에 대한 해결 방법을 고민해야할 것이다. 즉, 아직 갈길이 멀다.
- 기타 참고 사항
- 여기서는 Generator와 Solver를 번갈아 가며 학습하였다고 하며 Generator의 episode길이가 짧아 Generator를 10배 더 길게 학습했다고 한다.
- Generator와 Solver를 적대 관계로 이해하기 보다는 공생 관계로 이해하는 것이 더 정확한 이해이다.
- control variable을 학습 시 uniform random으로 주기 보다는 양 극단값을 포함하여 quantized value로 해야 극단값의 경우에 대해 충분히 경험을 쌓을 수 있다. 그리고 policy가 충분히 멀리 퍼질 수 있다.
- Script Solver를 이용하여 Generator를 만들면 Solver에 과적합된 게임 환경만 만들 수 있는 Generator가 될 우려가 있다.