Game AI

Learning (3) - 플레이어 행동 예측

tsyang 2023. 10. 29. 23:39

개요

플레이어의 행동을 예측하는 것은 여러 성향의 플레이어들에게 대항하는 AI를 만드는 데 도움이 된다. 많은 연구 결과에 따르면 인간은 무작위로 행동하는데 잼병이라 이를 이용하여 플레이어의 행동을 어느정도 예측할 수 있다.

 

예제로 간단하게 플레이어가 왼쪽을 고르는지, 오른쪽을 고르는지 맞추는 게임이 있다고 하자. 그렇다면 플레이어의 행동을 다음과 같은 방법으로 예측해볼 수 있다.

 

 

 

그냥 확률로 계산

그냥 지금까지 통계적으로 플레이어가 어떤 행동을 했는지를 이용하는 것. 이 방법은 구현이 매우 간단하지만, 플레이어가 이를 눈치채고 다르게 행동할 가능성이 높다.

 

 

N-Gram

플레이어가 왼쪽을 골랐으면 "L" 오른쪽을 골랐으면 "R"이라는 문자를 이용하여 플레이어가 지금까지 한 행동을 문자열로 표현할 수 있다. 아마 "LRRLRLLLRRLRLRR" 이런 식이 될 것이다.

 

N-Gram에서 N은 Window Size인데, 주어진 데이터에서 한 번에 관심을 가질 데이터의 갯수정도를 의미한다고 할 수 있다.

 

가령 N = 3이라면 "LRR, RRL, RLR... LRR"이런식으로 데이터를 3개씩 쪼개어 볼 수 있고, 이를 다시 활용하면 데이터 두 개를 알 때 다음 데이터는 뭐가 나왔는지에 대한 통계를 구할 수 있다.

 

위의 예제 "LRRLRLLLRLRRLLR"을 3-Gram으로 나타내보면..

 

  다음에 L이 등장할 확률 다음에 R이 등장할 확률
LL 1/2 1/2
LR 3/5 2/5
RL 3/4 1/4
RR 0/2 2/2

위와 같은 표를 만들 수 있다. 

 

그리고 위와 같은 확률을 통해 다음에 등장할 문자를 예측해볼 수 있을 것이다.

 

그렇다면 Window Size는 얼마가 적당할까? 이건 상황에 따라 다르므로, 직접 측정을 해보는 것이 좋다. 주로 초반에는 Window Size가 클 수록 확률이 올라가는 경향을 보이지만, Window Size가 너무 커진다면 성능이 점점 떨어진다. 이것은 Sequence가 길 수록 더 많은 랜덤성을 가지고 있기 때문이다.

 

Window Size는 적당히 큰 게 좋지만, 메모리에 대한 문제도 고려해야 한다.

 

초반에 데이터가 적을 때는 큰 Window Size가 충분히 통계적인 데이터를 쌓지 못했을 수 있다. 이런 경우 Window size를 계층적으로 사용할 수 있는데, 데이터가 없는 초반에는 적은 갯수의 Window Size를 쓰다가 점점 사이즈를 키워나가는 것이다. 

 

'Game AI' 카테고리의 다른 글

Decision Tree Learning - 1  (0) 2023.11.26
Decision Learning(1) - Naive Bayes Classifiers  (0) 2023.11.12
Learning (2) - 파라미터 학습  (0) 2023.10.22
Learning (1) - 기초  (1) 2023.10.09
Rule-Based System (3) - Rete  (0) 2023.01.22