• 검색 결과가 없습니다.

Full-board position evaluation of 50 AlphaGo vs AlphaGo games, using influence function

N/A
N/A
Protected

Academic year: 2021

Share "Full-board position evaluation of 50 AlphaGo vs AlphaGo games, using influence function"

Copied!
10
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

게임 프로그래밍

Received: May. 10. 2021 Revised: Jun. 10. 2021 Accepted: Jun. 13. 2021

Corresponding Author: Byung-Doo Lee (YongIn University) E-mail: [email protected]

ISSN: 1598-4540 / eISSN: 2287-8211

Ⓒ The Korea Game Society. All rights reserved. This is an open-access article distributed under the terms of the Creative Commons Attribution Non-Commercial License (http://creativecommons.otg/licenses/by-nc/3.0), which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.

세력 함수를 활용한 알파고 간의 50개 대국에 대한 형세 판단

이병두 용인대학교 AI학부 [email protected]

Full-board position evaluation of 50 AlphaGo vs AlphaGo games, using influence function

Byung-Doo Lee

School of Artificial Intelligence, Yong-In University

요 약

바둑에서의 형세 판단은 현재 대국 중인 흑백 대국자 간의 유불리를 판단하는 척도가 되며, 이를 통해 곧바로 적절한 전술과 전략을 구사하게 된다. 본 논문에서는 거리에 따라 반감하는 세력 함수를 활용하여 알파고 간의 50개 대국의 형세 판단을 하고자 했다. 실험 결과에 따르면 단지 세력 함수만을 사용하여 형세 판단을 하게 되면 정확한 판단을 함에 한계가 있음이 밝혀 졌다. 이를 극복하기 위해 사석 처리를 위한 사활문제 해결이 필요하며, 이를 보강하게 되면 바 둑에서의 정밀한 형세 판단을 할 수 있음을 보였다.

ABSTRACT

Full-board position evaluation in Go is a measurement of judging the advantages and disadvantages between black and white players during a game playing, and through this, the proper tactics and strategies would be undertaken in the near future. In this paper, we tried to evaluate the full-board positions of the 50 AlphaGo vs AlphaGo games using influence function that halved according to the distance. According to the experimental results, there is a limit to making accurate evaluation when the full-board position is assessed only by influence function. In order to overcome this, it is necessary to solve life-and-death problems to deal with dead stones, and it showed that if this is reinforced, we can precisely evaluate the full-board position in Go.

Keywords : Go(바둑), full-board position evaluation(형세 판단), influence function(세력함수),

life-and-death problems(사활문제)

(2)

1. 서 론

2,500년 이상의 역사를 가진 바둑은 오랫동안 컴퓨터가 인간을 제압하지 못했던 마지막 보드게 임이었으나, 2016년 알파고는 세계 최정상급 프로 기사인 이세돌 9단을 4:1로 완승하고 인간이 범접 할 수 없는 수준으로 진화했다[1].

바둑에서의 형세 판단(full-board position evaluation)은 매우 중요한 상위 개념이 되며[2], 형세 판단을 통해 현재 대국 1) 의 유불리를 판단할 수 있고, 이를 통해 향후 적절한 대응 전략과 전술 을 구사할 수 있다. 참고로 [Fig. 1]은 백16까지 진행 중인 대국으로 흑이 16집 정도를 이기고 있 는 장면이 된다[3].

[Fig. 1] Exemplary full-board position evaluation with a result favoring black[3]

본 연구에서는 [Fig. 2]와 같이 이미지 형태의 기보 2) 를 문자형 기보로 변환한 후 세력 함수를 이 용하여 흑백 간의 세력을 계산하였고, 이에 대한 세력 지도와 형세 판단을 하였다.

[Fig. 2] Procedure of influence utilization

2. 관련 연구

바둑에서의 형세 판단을 위해 K. Chen은 거리

에 따른 간단한 세력 함수인

  

   를 제안 하여 그의 컴퓨터 바둑 3) 인 Go Intellect에서 형세 판단을 했다[4]. M. Müller는 그의 컴퓨터 바둑인 Explorer를 통해, (1) 분리자(divider)와 잠재 분리 자(potential divider) 개념을 도입하여 현재 대국 상태에서의 흑백 간의 영역을 분리한 후 (2) 분리 된 각 영역에 대한 계가 4) 를 통해 전체 국면 5) 에 대한 형세 판단을 했다[2]. 또한 A. Hwang 등은 12계층의 합성곱 신경망(CNN: Convolutional Neural Network)을 이용하여 현재 대국 상황에서 의 형세 판단 및 차기 착점 6) 을 예측했으며, 차기 착점에 대한 예측률은 프로 5단의 실력인 55% 정 도의 높은 정확도를 보였다[5].

본 연구에서는 2017년 인류사 최고의 명국들을 남기고 은퇴한 알파고 간의 50개 대국에 대해 세 력함수를 적용하여 대국 결과에 대한 유불리를 파 악하고자 했다[6].

3. 배경 이론

3.1 세력 함수

세력은 바둑판 내에 놓은 흑돌과 백돌이 빈 곳 에 미치는 잠재적인 영향력의 정도를 파악하는 바 둑의 상위 개념이 된다[7]. 인간 대국자는 세력을 통해 대략의 형세 판단을 하며, 이를 통해 공격과 수비와 같은 대응 전략과 전술을 짜게 된다. 세력 의 크기를 추정하는 세력 함수는 주로 흑백 간의 가상 경계를 확정 짓는 데 사용되고 있으며, 대부 분의 컴퓨터 바둑 역시 세력의 크기를 통해 흑백 간의 가상 영역을 구분하고 있다[8]. 1968년에 컴 퓨터 바둑을 최초로 구현한 A.L. Zobrist 박사는 세력 함수를 활용하여 해시 함수(hash function) 를 제안하였다[9]. K. Chen은 간단한 세력 함수인

  

   를 제안하였으나 B.D. Lee는 세력 발생

(3)

지와 인접한 세력을 더욱 중시하여 식 (1)과 같은 세력 함수를 제안하였다[4].

′  ×exp

 ′

 (1)

여기서

′

 는 세력 발생지인

와 세력의 영 향을 받는 곳인

′

와의 거리가 되며, 상수

는 흑 돌과 백돌에 대해 각각 +64와 -64를 부여했다.

[Fig. 3] Two influence functions[4]

바둑판 내의 빈 곳인

′

는 바둑판 위에 놓인 모 든 흑돌과 백돌로부터 세력

′

 를 받고 있으며, 그 크기는 식 (2)와 같이 계산된다.

′ 

′

′

∀

∈

∈

(2)

즉, 바둑판 내의 모든 빈 곳인

′

의 세력값

′

 는 바둑판 위에 있는 모든 흑돌

와 백돌

간의 세력값인 

′

′

의 합으로 계

산된다.

3.2 세력 계산 알고리즘

[Fig. 4]에서 보듯이 바둑판 내 모든 빈 곳의 세력은 바둑판 내 놓인 모든 흑돌과 백돌에 의해

계산된다. 참고로 S는 1개의 빈 곳이 되며, F는 1 개의 흑돌이 놓인 위치가 된다.

[Fig. 4] Distance between two points

[Fig. 5]는 바둑판 내 모든 빈 곳들에 대한 세 력 값을 계산하는 알고리즘이 된다.

Algorithm 1 Influence Calculation(IC) 1: procedure IC

2: let Stones and Empties be queue 3:

Stones ← all colored stones in board

4:

Empties← all emptypoints in board

5: while

Empties ≠ null

do 6:

start ← node in Empties

7: while

Stones ≠ null

do 8:

finish ← node in Stones

9:

distance ← BFSstart finish

10: sum_influence += influence by finish [Fig. 5] Procedure of IC

자료구조인 큐(queue)를 사용하기 위해 놓인 돌

들과 빈 곳의 정보를 담는 2개의 큐인 Stones와

Empties를 각각 설정하였다. Empties가 null이 되

기 전까지 모든 빈 곳의 각 점을 시작점(start) 그

리고 모든 돌을 종료점(finish)으로 설정한 후,

BFS() 함수를 활용한 두 점 간의 최단 거리 계산

(4)

을 하였다. 이후 식 (1)에 있는 최단 거리에 따른 지수함수를 이용하여 빈 곳의 세력값을 계산했다.

한 예로 [Fig. 4]에서 보듯이 흑돌에 의한 빈 곳의 흑 세력값을 구하기 위해서는 시작점(S)과 종료점 (F) 간의 최단 거리를 먼저 구해야 한다.

너비우선탐색(BFS: Breadth-First Search)은 트리 또는 그래프에서의 특정 노드(node 또는 vertex)를 탐색하거나 방문하는 알고리즘이 되며, 장애물이 있는 두 점 간의 최단 경로를 찾기 위한 알고리즘으로도 사용된다.

[Fig. 6]은 장애물이 있는 두 점(start와 finish) 간의 최단 거리를 계산하는 BFS 알고리즘이 된다.

Algorithm 2 Breadth-First Search(BFS) 1: procedure BFS(start)

2: let Q be a queue 3:

Q ←start

4: while

Q ≠ null

do 5:

v ←Q

6: if v is the finish then return distance 7: for all edge w from v do

8: if w is not a valid point then continue 9: if w is a diagonal point then

10: distance += 



11: else if w is a V&H point then 12: distance += 1

13: Q ← w

[Fig. 6] Procedure of BFS[10]

사용되는 자료구조는 큐가 되며, 큐가 null이 되 거나 finish 점을 찾을 때까지 작업을 계속 수행한 다. 현재 노드에서 모든 이웃 노드를 방문하여 유 효한 노드에 대한 거리 계산을 수행한다. 참고로 유효하지 않은 노드는 바둑판에 놓인 흑돌과 백돌 이 되거나 이미 방문한 노드들이 해당이 된다. 거 리 계산을 위해서는 이웃 노드가 수직 또는 수평 (V&H)으로 배치되었는지와 대각선으로 배치되었 는지를 고려해야 하며, 최단 거리 계산을 위해 대 각선 노드(diagonal node)를 먼저 처리해야 하며, 이후 수직 또는 수평으로 이웃하는 노드를 큐에 추가시켜야 한다.

3.3 계가법

바둑에서의 계가법은 두 가지로 (1) 집을 세는 계가법(territory scoring)과 (2) 집과 돌을 세는 계가법(area scoring)으로 구분된다[11,12]. 한국과 일본에서는 집을 세는 계가법을 사용하며, 중국에 서는 집과 돌을 세는 계가법을 사용하고 있다.

[Fig. 7]과 같이 종료된 7줄 바둑에서의 계가를 살 펴보면

(1) 집을 세는 계가법: ⏹ 으로 표시된 흑의 집 은 19집, ○으로 표시된 백의 집은 9집이 되어 백 에게 6.5집의 공제 7) (komi)가 주어지면 흑은 3.5집 이기게 된다.

(2) 집과 돌을 세는 계가법: ⏹ 으로 표시된 흑 의 집 19점과 흑돌의 갯수인 11점을 합하면 흑은 30점이 되며, ○으로 표시된 백의 집 9점과 백돌 의 갯수인 10점을 합하면 19점이 되니, 백에게 7.5 집의 공제가 주어지면 흑은 3.5점 승이 되어 집을 세는 계가법의 결과와 같게 된다.

[Fig. 7] Final position

4. 실험방법 및 결과

4.1 실험방법

본 실험에서는 바둑에서의 형세 판단을 위해 세

력 함수를 이용하여 흑백 대국자 간의 우위를 계

산했다. 세력 함수 적용을 위한 컴퓨터 환경은

[Table 1]과 같고, 사용된 소스 프로그램은 C++이

(5)

되며 이미지와 그래픽 처리를 위한 유틸리티는 각 각 OpenCV 4.2와 MATLAB R2020b가 된다.

Desktop computer

CPU Intel(R) Core(TM) i5-8265U CPU @1.60 GHz

RAM 8.00GB

System 64 bit OS, x64 based processor

OS Windows 10 Pro

Compiler C++ in Microsoft Visual Studio 2019 Utilities OpenCV 4.2, MATLAB R2020b

[Table 1] Computer configurations

4.2 실험결과

4.2.1 기보 변환

[Fig. 2], [Fig. 8](a)에서 보듯이 우선 sgf 파일 형식으로 된 50개의 알파고 간의 초기 이미지 기 보를 OpenCV를 활용하여 [Fig. 8](b)와 같이 문 자형 데이터로 변환하였고, 이때 흑돌은 b , 백돌은

w

, 빈 곳은

으로 처리하였다.

(a) (b)

[Fig. 8] (a) Original image. (b) Text data

4.2.2 세력 계산

[Fig. 8](b)에 있는 문자형 데이터에 대해 [Fig.

5], [Fig. 6]에 있는 세력 계산 알고리즘과 너비우 선탐색 알고리즘을 적용하여 바둑판 내 빈 곳의 세력값을 구한 결과는 [Fig. 9]와 같다. [Fig. 9]에 서 보듯이 바둑판 내 놓인 흑돌과 백돌의 세력값 은 각각 +64, -64로 처리하였으며, 빈 곳의 세력 값이 양수이면 흑의 세력권, 음수이면 백의 세력권 이 된다.

4.2.3 세력 지도

세력 함수에 의해 생성된 [Fig. 9]와 같은 바둑 판 내 모든 곳의 세력값을 갖고 MATLAB을 활 용하여 3차원 세력 지도를 그려보면 [Fig. 10]과 같다. 참고로 봉우리가 높을수록 흑의 세력이 크 며, 반대로 골짜기가 깊을수록 백의 세력이 크다.

[Fig. 10] The 3-dimensional influence map

[Fig. 9] Influence values after applying the influence function to the full-board positions

(6)

4.2.4 형세 판단

형세 판단을 위해 중국식 계가법을 적용하였다.

즉, 흑백 대국자 각각에 대해 바둑판 내에 있는 돌 들과 집을 세어 계가하였으며, 이후 공제(또는 덤) 는 7.5집을 적용하였다.

흑백 대국자 각각에 대해 집의 규모를 파악하기 위해 [Fig. 9]에 있는 세력값을 갖고, 바둑판 내 빈 곳의 세력값이 +49.0 이상이면 흑의 집, -49.0 이하면 백의 집으로 간주하였다. 적용한 결과 [Fig. 11]과 같이 흑의 점수는 189.0점, 백의 점수 는 168.5점이 되어 흑이 20.5점을 앞서고 있다.

[Fig. 11] Full-board position evaluation

이와 같은 방법을 알파고 간의 50개 대국에 적 용 시 형세 판단의 실제 결과와 실험 결과는 [Table 2]와 같다. [Table 2]에서 보듯이 실제 결 과와 실험 결과는 상당한 오차를 보이고 있는데, 그 이유는 형세 판단을 위한 사석 8) 처리에 대한 부재가 된다. 한 예로 [Fig. 11]에서 보듯이 좌하 귀와 좌하변에 걸쳐 원으로 표시된 죽은 흑돌에 대해 사석 처리를 하여야 하나, 이를 수행하지 못 해 잘못된 형세 판단을 하고 있다. 참고로 [Table 2]에 있는 ‘백불계승’은 백이 절대 우세, ‘흑불계승’

은 흑이 절대 우세를 의미하며, 실험 결과의 양수 는 흑이 우세, 음수는 백의 우세를 의미한다.

대국 실제 결과 실험 결과 대국 실제 결과 실험 결과 1 백불계승 20.5 26 백불계승 22.5 2 백불계승 43.5 27 백불계승 -1.5

3 백불계승 -10.5 28 흑불계승 -17.5

4 백불계승 -17.5 29 백불계승 -35.5

5 흑불계승 -5.5 30 백불계승 -16.5

6 백불계승 8.5 31 백불계승 -4.5

7 백불계승 -1.5 32 백불계승 -0.5

8 백불계승 -32.5 33 백불계승 2.5

9 흑불계승 -3.5 34 흑불계승 18.5

10 백불계승 -31.5 35 백불계승 27.5

11 흑불계승 8.5 36 흑불계승 7.5

12 백불계승 -1.5 37 백불계승 -25.5

13 백불계승 10.5 38 백불계승 6.5

14 백불계승 -33.5 39 백불계승 -14.5

15 흑불계승 -17.5 40 백불계승 -5.5

16 백불계승 -7.5 41 백불계승 -17.5

17 백불계승 10.5 42 흑불계승 -0.5

18 백불계승 9.5 43 백불계승 7.5

19 백불계승 3.5 44 백불계승 11.5

20 흑불계승 0.5 45 백불계승 2.5

21 백불계승 1.5 46 흑불계승 -15.5

22 흑불계승 44.5 47 흑불계승 12.5

23 백불계승 -27.5 48 백불계승 -39.5

24 백불계승 13.5 49 백불계승 -4.5

25 백불계승 -37.5 50 백불계승 2.5

[Table 2] Comparison between actual and experimental results

5. 결론 및 제언

바둑에서의 형세 판단은 현재 대국의 유불리를 판단할 수 있고, 적절한 대응 전략과 전술을 구사 할 수 있는 바둑에서의 상위 개념이다. 본 실험에 서는 세력 함수를 활용하여 50개 알파고 간의 대 국에 대한 형세 판단을 하고자 하였다.

실험 결과에 의하면 단지 세력 함수만을 갖고 형세 판단을 하는 것은 한계가 있음이 입증되었다.

이를 보강하기 위해서는 사석 처리를 위한 사활 9)

문제 해결이 우선되어야 함을 알게 되었다. 결국

이러한 문제가 해결된다면 상당히 정밀한 형세 판

단을 할 수 있음을 보였다. 아울러 보완된 형세 판

단 기법은 대국 종료뿐만 아니라 대국 중에서도

유용하게 사용되어, 대국 중 적절한 대응 전략과

전술을 구사할 수 있음을 알 수 있었다.

(7)

[Fig. 12] Image data, text data, influence map, and territories of 50 alphaGo games(part 1)

(8)

[Fig. 13] Image data, text data, influence map, and territories of 50 alphaGo games(part 2)

(9)

ACKNOWLEDGMENTS

이 논문은 2020년도 용인대학교 학술연구조성비 재원으로 수행된 연구임

REFERENCES

[1] B.D. Lee, “Contour Tracing to Solve Life-and-Death Problem in Go”, Journal of Korea Game Society, Vol. 20, No. 2, pp.

91-100, 2020.

[2] M. Müller, “Counting the Score: 

Evaluation in Computer Go”, from https://webdocs.cs.ualberta.ca/~mmueller/ps/g oeval.pdf, 2021.

[3] Baduk Time, “How to compute full-board

evaulation”, from

https://baduktime.com/g2/bbs/board.php?bo_ta ble=research2&wr_id=950, 2021.

[4] B.D. Lee, “Multi-Strategic Learning, Reasoning and Searching in the Game of Go”, PhD thesis, Auckland University, 2005.

[5] A. Hwang et al., “Move Evaluation in Go Using Deep Convolutional Neural Network”, ICLR conference paper, pp. 1-8, 2015.

[6] DeepMind, “AlphaGo vs AlphaGo”, from https://deepmind.com/alphago-vs-alphago, 2021.

[7] J. Burmeister and J. Wiles, “AI Techniques

Used in Computer Go”, from

http://www.google.com/url?sa=t&rct=j&q=&esrc

=s&source=web&cd=&ved=2ahUKEwid3riq1Zjw AhUGGqYKHQqgDOMQFjABegQIAhAD&url=f tp%3A%2F%2Fftp.cse.ucsc.edu%2Fpub%2Fcom pgo%2FPAPERS%2Fcomp-go.AI.ps&usg=AOv Vaw2EeByNtMJvaoMWfH8my7PA, 2021.

[8] Sensei's Library, “Influence function”, from

[Fig. 14] Image data, text data, influence map, and territories of 50 alphaGo games(part 3)

(10)

https://senseis.xmp.net/?InfluenceFunction, 2021.

[9] A. Zobrist, “Feature Extraction and Representation for Pattern Recognition and the Game of Go”, PhD thesis, University of Wisconsin, 1970.

[10] Wikipedia, “Breadth-first search", from https://en.wikipedia.org/wiki/Breadth-first_sea rch, 2021.

[11] B.D. Lee, “The Best Sequence of Moves and the Size of Komi on a Very Small Go Board, using Monte Carlo Tree Search”, Journal of Korea Game Society, Vol. 10, No.

5, pp. 77-82, 2018.

[12] J.U. Kim, “Understanding the Rules of Baduk”, PUBPLE Press, 2017.

미 주(바둑 용어 해설)

1) 대국(對局): 바둑을 두는 행위

2) 기보(棋譜): 대국에서 돌들의 놓인 위치를 기록 해 놓은 것

3) 컴퓨터 바둑(Computer Go): 인공지능을 활용 하여 개발된 컴퓨터 프로그램을 지칭하는 용어 가 되나, 한국에서는 이를 ‘인공지능 바둑(AI Go)’으로 호칭하고 있음

4) 계가(計家): 흑백 쌍방 간의 집의 규모를 세는 것 5) 국면(局面): 대국의 상태

6) 착점(着點): 돌이 놓인 또는 놓일 위치가 됨.

반면에 착수(着手)는 돌을 놓는 행위가 됨 7) 공제(控除): ‘덤’으로 부르기도 함. 집을 계산할

때 나중에 둔 백에게 불리함을 보상하기 위해 일정 규모의 집을 흑에서 빼주는 규칙이 된다.

한국과 일본은 6.5집, 중국은 7.5집을 적용하고 있음

8) 사석(死石): 죽은 돌

9) 사활(死活): 바둑에서 흑돌 또는 백돌의 생사 (生死)를 지칭

이 병 두 (Byung-Doo Lee)

약 력 : 1982 한양대학교 원자력공학 학사 1991 서강대학교 정보처리학 석사

2005 Auckland University 컴퓨터공학 박사 현재 용인대학교 AI학부 조교수

관심분야 : 컴퓨터공학, 인공지능, 컴퓨터바둑

참조

관련 문서

This is an open-access article distributed under the terms of the Creative Commons Attribution Non-Commercial License (http://creativecommons.otg/licenses/by-nc/3.0),

This is an open-access article distributed under the terms of the Creative Commons Attribution Non-Commercial License (http://creativecommons.otg/licenses/by-nc/3.0),

This is an open-access article distributed under the terms of the Creative Commons Attribution Non-Commercial License (http://creativecommons.otg/licenses/by-nc/3.0),

This is an open-access article distributed under the terms of the Creative Commons Attribution Non-Commercial License (http://creativecommons.otg/licenses/by-nc/3.0),

This is an open-access article distributed under the terms of the Creative Commons Attribution Non-Commercial License (http://creativecommons.otg/licenses/by-nc/3.0),

This is an open-access article distributed under the terms of the Creative Commons Attribution Non-Commercial License (http://creativecommons.otg/licenses/by-nc/3.0),

This is an open-access article distributed under the terms of the Creative Commons Attribution Non-Commercial License (http://creativecommons.otg/licenses/by-nc/3.0),

This is an open-access article distributed under the terms of the Creative Commons Attribution Non-Commercial License (http://creativecommons.otg/licenses/by-nc/3.0),