본 논문에서는 오델로 게임의 각 진행 상황에서 형세 판단을 위해 프로 기사들의 기보를 ANN을 통해서 학습하고 이 결과를 탐색에 적용하여 현 상황에서
최적의 수를 결정하는데 이용한다. 학습시키고자 하는 신경망은 오델로 게임의 특정 상황을 입력으로 하며 이에 대해 형세(승패의 예측 확률)를 출력하는
구조이다. 신경망의 학습을 위해 하나의 기보는 진행되는 각 수별로 상황을 분해하여 각 진행 상황에 대해 승패의 결과를 1(승)과 0(패)로 부여하며
전체 기보 데이터에 대해 이를 누적함으로써 수많은 다양한 상황에 대한 학습데이터를 구성하여 사용하는 방법을 제안하여 이용한다.
2.1 ANN 학습데이터 생성 및 지도학습
오델로, 바둑, 장기, 체스와 같은 지능적 보드 게임에서 플레이어는 게임의 각 진행 단계에서 최선의 선택을 위해 게임이 몇 단계 진행되었을 경우의
상황을 예측하고 이러한 가능성 있는 여러 가지 예측 상황에서 승패의 유·불리(형세)에 대한 평가를 수행하여 이를 바탕으로 최선의 수를 결정하게 된다.
본 논문에서는 게임이 진행되었을 경우 발생할 수 있는 여러 가지 예측 상황에서의 형세를 평가하는 모델로서 인공신경망을 사용하고 이를 바탕으로 최선의
수를 결정하기 위해 탐색 알고리즘을 적용한다.
본 논문에서 제안하여 사용하는 인공신경망은 예측된 특정 게임 상황이 주어졌을 경우 이에 대한 형세를 평가하여 제공하는 역할을 하므로 게임의 특정 상황을
입력으로 하고 형세를 나타내는 척도로서 승패의 유·불리에 대한 확률을 학습결과로 출력하는 구조를 갖는다. 이를 위해 본 논문에서는 게임이 진행되는
각 상황을 상태 s로 정의하고 상태 s에 대한 승패의 유·불리 정도를 가치함수 v(s)로 정의하여 사용한다.
그림. 1은 게임의 특정 상황을 상태 s로 표현하는 과정을 나타낸다. 본 논문에서는 8×8 크기의 보드에서 이루어지는 오델로 게임을 대상으로 하고 있으며 게임의
상태 s는 8×8 공간의 각 위치에 부여된 64개의 원소 e로 표현된다. 게임의 상황은 8×8 공간에서 흑돌, 백돌, 돌이 놓이지 않은 곳의 상대적
위치에 의해 결정되므로 이는 상태 원소 e에 돌이 없는 곳은 0, 흑돌이 놓인 곳은 1, 백돌이 놓인 곳은 2의 값을 부여하여
그림. 1에서와 같이 행렬 형태로 표현할 수 있고 이는 1차원 벡터 형식으로 변환하여 인공신경망의 입력으로 사용한다.
그림. 1. 상태의 표현
Fig. 1. Representation of the state
본 논문에서는 인공신경망의 학습을 위한 학습 데이터로 프로기사들의 실제 대국을 기록한 기보를 사용하였다. 본 논문에서 사용한 기보 데이터는 1977년부터
2018년까지 진행된 모든 세계대회에서의 프로기사 대국의 기록으로 약 15만개의 기보를 사용하였으며 기보의 두 가지 예와 그 구성을 제시하면
표 1과 같다.
표 1. 학습에 사용된 기보의 구성
Table 1. Configuration of records used for learning
기 보
|
결 과
|
F5F6E6F4F3D6C6D3G6E7G5D7C7H5C3
H6E3B6C5D8C8B8A6B5G4D2E1C1F2H4
A5E2F8B3F7G1H3H2G3A4C4B4C2B1A3
A7A8E8B7B2A1A2D1G8H8G2G7H7F1H1
|
흑 승
|
F5F6E6F4F3C5G6E3D3G5B6C4C3D6H6
G4H3D2E2H5H4C2E1D1C1B3E7C6G3D7
C8F1F2B1B4A5C7B5A6F8A4A3A2D8E8
B8B2G1G2A1B7A7A8F7G8H1G7H2H7H8
|
백 승
|
기보는 대국의 진행에 따라 돌이 놓여진 위치를 순서대로 기록한 것으로 오델로 보드의 가로축 위치를 나타내는 알파벳과 세로축 위치를 나타내는 숫자의
조합을 한 쌍으로 하여 진행된 수에 따라 순차적으로 나열한 것이다. 대국은 기본형에서 시작하여 최대 60수까지 진행되므로 기보는 최대 120개의 문자열로
구성되어 있다.
본 논문에서 사용하는 인공신경망은 게임의 상태 s에 대해 형세를 나타내는 가치함수 v(s)를 학습결과로 출력하는 구조이므로 기보를 그 자체로서 그대로
학습데이터로 사용하지 않고 게임의 진행 단계에 따라 상태별로 분해하고 승패에 대한 값을 부여하며 이러한 데이터를 전체 기보에 대해 통합하여 각 상태별
학습데이터를 생성하여 학습한다.
그림. 2는 본 논문에 적용된 학습데이터의 생성과정을 나타낸다.
그림. 2. 2 학습데이터 생성과정
Fig. 2. Process of learning data generation
약 15만개의 기보로 이루어진 집합 R을 상태에 따라 분해하고 조합하여 약 730만개의 상태 s에 대한 학습 데이터의 집합 S를 구성하여 사용하였다.
상태별로 분류된 각각의 학습데이터를 사용하여 상태 s에 대한 승패의 기보 확률 v
b(s)는 다음
식(1)과
식(2)와 같이 구한다.
식(1)에서 z는 승패여부를 판단하여 누적하기 위한 값으로 흑을 기준으로 승: z
k(s)=1, 패: z
k(s)=0로 설정하여 사용하였다.
식(2)에서 n은 상태 s가 기보에서 등장한 총 회수를 나타낸다. 따라서 상태 s에 대한 승패의 기보 확률 v
b(s)는 기보에서 등장한 상태 s에 대해 흑을 기준으로 승리한 경우의 확률을 의미하므로 상태 s에 대한 승패의 유·불리 즉, 형세를 나타내는 척도로
사용하였다.
본 논문에서 사용한 기보 데이터들을 분석해 본 결과 비기는 경우는 많지 않았기 때문에 학습에서 제외시켰으며 게임 플레이어가 백일 때의 상태 가치 함수
v
w(s)는 다음
식(3)과 같이 구할 수 있다.
표 2는 기보 데이터를 통해 구한 상태별 빈도, 승리 회수, 가치함수에 대한 몇 가지 예를 나타낸다.
표 2의 상단의 4개 상태들은 오델로 게임의 진행 초반을 나타내는 것으로 출현빈도(n)가 높고 승패의 기보 확률 v(s)(흑일 경우 v
b(s), 백일 경우 v
w(s))가 0.5에 가까운 것을 알 수 있고 하단의 3개 상태들은 비교적 초기 진행 상태에서 흑의 승률이 높았던 상태들을 보여주고 있다.
표 2. 기보로 생성한 가치평가 테이블.
Table 2. Evaluation table generated from game records
State vector
|
n
|
win
|
v(s)
|
0000000000000000000000000002100000011100000000000000000000000000
|
122250
|
55336
|
0.452
|
0000000000000000000000000002100000012100000002000000000000000000
|
41221
|
19155
|
0.465
|
0000000000000000000000000002100000011100000012000000000000000000
|
40498
|
18941
|
0.478
|
0000000000000000000000000002220000011200000012000000000000000000
|
40498
|
18941
|
0.478
|
0000000000000000000000000002220000011100000000000000000000000000
|
1384
|
864
|
0.624
|
0000000000000000000010000002120000011100000000000000000000000000
|
1241
|
803
|
0.647
|
0000000000000000000000000002100000112100000202000000000000000000
|
335
|
257
|
0.767
|
오델로 게임 플레이어는 게임 진행의 각 단계에서 최선의 선택을 위해 탐색하는 과정에서 탐색의 말단 노드에서의 형세 즉, 상태에 대한 가치함수의 값을
기반으로 최적의 경우를 선택하게 된다. 이러한 경우 가능한 모든 상태에 대해 가치함수가 정의되어야 탐색이 가능하며 가치함수의 정확도는 플레이어의 게임
성능을 결정하는 주요한 요소가 된다.
기보 데이터를 통해 표 2와 같이 상태에 대해 일대일 대응이 되는 가치 평가 테이블을 구성할 수는 있으나 8×8 공간을 가지는 오델로 게임의 모든
가능한 상태의 수는 대략 10
54 개로 모든 상태에 대한 가치 함수를 테이블로 표현하여 사용하기는 어렵다. 따라서 본 논문에서는 기보 데이터를 표 2와 같은 형태의 학습 데이터로
표현하여 이를 토대로 인공신경망을 학습하여 가치함수를 근사한다.
본 논문에서 가치평가함수를 근사하기 위해 사용한 인공신경망의 구성은
그림. 3과 같다. 은닉층은 총 3개 계층으로 구성되어 있고 각각 128, 256, 64개의 노드를 가지며 활성화 함수는 모두 ReLu 함수를 사용하였다.
출력층은 가치 함수를 출력하는 1개의 노드로 구성되어 있고 0~1사이의 값을 가지는 승률을 표현하기 때문에 sigmoid 함수를 활성화 함수로 사용하였다.
그림. 3. 학습에 사용된 인공신경망의 구조
Fig. 3. Structure of Artificial Neural Network used in Supervised-Learning
ANN 학습과정에서의 비용함수(Cost Function)는
식(4)와 같이 전체 학습 데이터 개수 N에 대한 상태 s의 상대적 출현 빈도 n(s)를 가중한 MSE(Mean Squared Error)를 사용하였고 이를
통해 인공신경망의 가치평가함수 v
θ(s)가 기보를 통해 구성한 가치평가 테이블 v(s)를 근사할 수 있도록 학습하였다.