Feb 15, 2025

마르코프 의사결정 과정

게임은 단순한 오락을 넘어, 플레이어가 창조한 세계를 탐험하는 매력적인 경험을 제공합니다. 그러나 많은 게임들이 정해진 경로를 따라 진행되기 때문에, 플레이어의 탐험이 진정한 창조로 이어지지 않는 경우가 많습니다. 저는 이러한 한계를 극복하고, 플레이어와 캐릭터가 함께 만들어가는 동적인 게임 세계를 구현하고자 합니다.

게임 속 세계의 탐험

게임 속에서 플레이어가 경험하는 세계는 마치 살아있는 유기체와 같습니다. 각 플레이어의 선택과 행동이 그 세계를 변화시키고, 새로운 이야기를 만들어냅니다. 제가 즐겨 했던 포켓몬 시리즈나 엘더스크롤과 같은 게임들은 이러한 탐험의 즐거움을 잘 보여줍니다. 하지만, 그 안에서 느끼는 아쉬움은 항상 존재했습니다.

새로운 가능성의 탐구

다잉라이트 2와 같은 게임들은 플레이어의 탐험을 강조하며 마케팅을 하곤 했습니다. 그러나 저는 한 발자국 더 나아가고 싶습니다. 게임 속 세계를 플레이어와 캐릭터가 함께 창조하는 것입니다. 현재의 기술로는 이 목표를 완전히 실현하기 어렵지만, 이 시리즈를 통해 그 가능성과 상품성을 탐험해보고자 합니다.

마르코프 의사결정 과정 (MDP)

오늘은 이 시리즈의 첫 번째 주제로, 게임 인공지능의 기초가 되는 마르코프 의사결정 과정(MDP)을 소개하겠습니다. 처음 접하는 분들에게는 다소 어려울 수 있지만, 제가 이해한 바를 바탕으로 쉽게 설명드리겠습니다.

MDP의 핵심 요소

MDP는 의사결정 문제를 수학적으로 모델링하는 방법으로, 주로 환경에서 최적의 행동을 찾는 데 사용됩니다. 여기서 가장 중요한 요소는 상태, 행동, 그리고 보상입니다.

- 상태: 현재의 상황을 나타내며, 게임 내에서 캐릭터가 처한 환경을 의미합니다.

- 행동: 캐릭터가 선택할 수 있는 다양한 옵션을 의미합니다.

- 보상: 특정 행동을 취했을 때 얻는 결과로, 캐릭터의 학습과 성장에 중요한 역할을 합니다.

# 플레이어는 (2, 3)에 있고, 목표물은 (5, 5)에 있습니다.
상태 벡터: [플레이어_x, 플레이어_y, 목표물_x, 목표물_y]상태 = [2, 3, 5, 5]
# 행동 벡터: [위로 이동, 아래로 이동, 왼쪽으로 이동, 오른쪽으로 이동]
행동 = [0, 1, 0, 0]
# 목표에 가까워져서 긍정적인 보상을 받음
보상 = 10

이 외에도 다음 상태로 전이할 확률이 존재합니다. 예를 들어, 벽에 붙어 있을 때 벽을 뚫고 이동할 확률은 0입니다. 이러한 확률은 게임의 규칙과 환경에 따라 달라질 수 있습니다. 결국, 위에서 언급한 세 가지 요소인 상태, 행동, 보상을 코드로 구현하는 것이 목표입니다. 이 구현 방식은 게임의 특징과 목적에 따라 달라질 것입니다.

위에 언급한 요소들은 일반적으로 게임에서 이미 정해져 있습니다.


- 레이싱 게임에서 차는 이동 방향과 속도를 바꾸는 행동을 선택할 수 있습니다.

- 자동차가 출발선에 가까운 상태, 중간에 뒤집어진 상태 그리고 결승선에 가까운 상태가 있습니다.

- 보상은 결승선에 도달했을 때 얻는 것이 가장 높습니다. 따라서 플레이어는 결승선에 가까운 상태로 가기위해 차를 조종합니다.

이를 위해 우리가 컴퓨터에게 학습 시키는 변수 혹은 요소가 무엇인지 알아보겠습니다.


- 정책: 특정 상태에서 행동을 선택하는 방법을 의미합니다. 예를 들어 눈 앞에 결승선이 있는 경우 결승선을 향해 가는 것이 좋은 행동입니다. 그리고 왼쪽 혹은 뒤로 움직이는 행동은 결승선을 향해 가는 것보다 나쁜 행동입니다. 행동을 하는 주체가 무슨 행동을 할지 결정하는 것이 정책입니다. 일반적으로 좋은 정책은 보상이 높은 행동을 선택하는 것입니다.

- Value (V): 특정 상태의 잠재적 가치를 평가합니다. 이는 그 상태에서 시작하여 최적의 정책을 따를 때 기대되는 장기적인 보상을 의미합니다.

- Q-value (Q): 특정 상태에서 특정 행동을 취했을 때의 잠재적 가치를 평가합니다. 이는 그 행동을 취한 후 최적의 정책을 따를 때 기대되는 장기적인 보상을 의미합니다.

위 3가지 요소는 방법론에 따라 다르게 구현 될 수 있습니다. 해당 방법론들은 나중에 다시 보겠습니다.

결론

이것이 강화 학습의 초기 단계에서 배우는 핵심 개념들입니다. 다양한 구현 방식이 존재하며, 이는 우리의 상상력에 따라 무궁무진한 가능성을 열어줍니다. 이러한 개념을 통해 더욱 창의적이고 몰입감 있는 게임 세계를 만들어낼 수 있습니다.

Follow me on other channels

Follow me on other channels

Follow me on other channels