블로그
체스 컴퓨터(엔진)와 체스 인공지능(A.I.) - 2편
사진 출처: 위키피디아

체스 컴퓨터(엔진)와 체스 인공지능(A.I.) - 2편

chessinside
| 0

안녕하세요 체스인사이드입니다

지난 시간에 체스 컴퓨터의 역사에 대해서 간단하게 알아보았는데요, 오늘은 체스 엔진이 작동하는 방법과 체스 인공지능(A.I.)에 대해서 살펴보겠습니다.

1900년 후반부터 체스 컴퓨터는 인간과 비슷한 수를 두기 시작했고, 2020년 현재는 인간이 도저히 따라잡을 수 없는 체스 실력에 도달했습니다. 그렇다면 체스 컴퓨터는 어떻게 인간에게 승리할 수 있었을까요? 단순히 인간보다 더 '똑똑하기' 때문일까요? 컴퓨터와 인간이 체스 경기에서 사고하는 방법은 완전히 다릅니다. 아래 포지션을 보면서 이해해봅시다.

백의 차례입니다.

우선 사람은 위 포지션을 어떻게 평가할까요? 사람은 우선 구체적인 수읽기를 하기 전에 상황을 살펴봅니다. 체스 규칙을 알고 계신 분들이라면 다음과 같은 정보를 얻으실 수 있습니다.

1) 백과 흑은 똑같이 룩 1개, 비숍 1개, 폰 5개를 가지고 있다.
2) 백의 룩과 흑의 룩이 대치하고 있다. 백의 c2 룩이 공격받고 있다.

체스라는 경기에 조금 더 익숙하신 분들이라면 추가적인 정보를 받을 수도 있습니다.

3) 백은 d 열에 통과한(Passed) 폰을 가지고 있다. 2칸만 더 전진하면 퀸으로 승진할 수 있다.
4) 백은 어두운색 비숍을 가지고 있고, 흑은 밝은 색 비숍을 가지고 있다.
5) 백의 킹이 움직일 수 있는 칸이 없어서 첫 번째 행에서 체크를 당하면 위험할 수 있다.

물론 상급자는 더 많은 정보를 얻을 수도 있고, 위 정보에서 추가적인 정보가 파생될 수도 있습니다. 예를 들면 '비숍 색깔이 다르면 무승부 확률이 높아진다.'라는 지식을 활용해서 6) 룩을 교환하면 경기는 무승부가 될 확률이 높아진다. 라는 결론을 도출하는 것입니다. 사람은 이렇게 포지션에서 얻은 정보를 바탕으로 자신이 둘 수를 생각합니다.

지금 포지션에서 가장 관건인 사항은 2) 백의 c2 룩이 공격받고 있다는사실입니다. 따라서 백으로 경기하는 선수는 다음과 같은 질문을 자신에게 합니다. "어떻게 하면 룩을 잃지 않을 수 있을까?" 일반적으로 생각할 수 있는 답은 다음과 같습니다.

1) 룩으로 흑의 룩을 잡아서 동등한 교환을 한다.
2) 룩을 다른 칸으로 이동해서 공격을 피한다.

하지만, 숙련된 체스 선수라면 지금 상황에서 전술을 활용해 다른 답을 찾을 수도 있습니다.

3) 흑의 룩을 지키는 것은 킹뿐이기 때문에 비숍 체크를 이용해서 흑의 룩을 꾀어내면 룩을 공짜로 잡을 수 있다.

디코이(Decoy) 전술을 활용해서 흑의 킹을 꾀어내고 룩을 잡을 수 있습니다.

이 문제에서 필요한 수읽기의 깊이는 2수입니다. 1.Ba7+ Kxa7 2. Rxc8까지 생각하고 머릿속에 그다음 장면을 상상합니다. 그 모습을 보고 자신이 유리하다고 판단하면 백은 자신의 다음 수로 Ba7+을 정하는 것입니다.

머릿속에서 시각화(Visualization) 한 모습

그렇다면 체스 컴퓨터는 어떻게 생각할까요? 여기서 말하는 체스 컴퓨터는 체스 '엔진'입니다. 체스 엔진은 알고리즘을 기반으로 포지션을 평가하고 자신의 수를 결정합니다. 기물의 배치와 기물의 활동성 등을 수식으로 만들어 그 각각의 값을 종합해서 포지션을 평가하는 것입니다. 지금 예에서는 설명을 위해 극단적으로 알고리즘을 단순화시키도록 하겠습니다. 우리가 사용할 평가 도구는 다음과 같습니다.

1) 통과한 폰을 가지면 보너스 1점을 받는다.
2) 기물은 위치와 상관없이 퀸 9점, 룩 5점, 나이트/비숍 3점, 폰 1점을 적용한다.

맨 처음 포지션을 다시 살펴보겠습니다. 백과 흑은 똑같이 룩 1개, 비숍 1개, 폰 5개를 가지고 있기 때문에 기물 점수는 13점입니다. 하지만 백은 d 열에 통과한 폰을 하나 가지고 있기 때문에 보너스 1점을 받습니다. 결과는 14:13으로 백이 근소하게 앞서는 것으로 판단합니다. 이것은 수읽기를 하지 않은 경우(수 깊이=0)에 컴퓨터 엔진이 포지션을 평가한 것입니다. 그렇다면 체스 컴퓨터는 수읽기를 어떻게 할까요?

※ 체스에서는 백이 앞서는 것을 플러스(+)로, 흑이 앞서는 것을 마이너스(-)로 표현합니다. 따라서 지금 포지션의 평가는 +1입니다.


지금 백의 차례에서, 백이 둘 수 있는 수는 총 23개입니다. 사람이라면 이 23개의 수를 모두 고려하지 않습니다. 지금 룩이 잡힐 위험에 처했는데 킹을 h1 칸으로 이동하는 수를 생각할 사람은 없을 것입니다. 하지만 컴퓨터는 23개의 수를 모두 동등한 중요도로 평가합니다. 수 깊이=1로 분석한 컴퓨터의 평가는 다음과 같이 나타납니다.

수 깊이=1에서의 포지션 평가

룩을 이용해서 Rxc8+를 두면 일시적으로 흑의 룩을 잡아낼 수 있기 때문에 평가가 가장 높습니다. 따라서 수 깊이=1에서 컴퓨터는 Rxc8+를 최선의 수로 선택합니다. 이때, 가장 높은 평가 점수가 그 포지션의 전체 평가 점수가 됩니다.

※ 체스에서 몇 수라고 할 때는 일반적으로 백과 흑의 한 수씩을 묶어 한 쌍(pair)을 한 수라고 말합니다. 따라서 3수 체크메이트라고 하면, 백을 기준으로 3번 두는 것을 말합니다. 반면, 체스 엔진에서 수 깊이는 한 가닥(ply)를 말합니다. 예를 들어 1.e4 e5는 수 깊이=2입니다.

위 예시를 수 깊이=2로 평가하면 어떻게 될까요? 여기서 주목해야 하는 부분은 백이 둘 수 있는 모든 23개를 분석한 후 그에 대응할 수 있는 흑의 수(약 20여 개)를 똑같은 방법으로 분석한다는 것입니다. 수 깊이=2에서 400개(20*20)가 넘는 포지션을 분석하는 것입니다.

수 깊이=2에서의 포지션 평가

위 그림에서 주목하셔야 하는 부분은 중간 과정에서의 평가 점수는 아무런 영향을 주지 않는다는 것입니다. 포지션 평가 점수는 가장 마지막 평가에서 가장 높은 것만을 반영하고 컴퓨터는 그 수를 최선의 수로 판단합니다. 앞서 수 깊이=1에서 +6의 평가를 받은 Rxc8+이 최선의 수였으나 수 깊이=2에서는 룩이 잡히면서 평가가 +1로 떨어졌습니다. 한편, 가장 최선의 수로 생각되는 Ba7+는 수 깊이=2에서 평가가 -2까지 내려가며 좋지 않은 수로 평가받고 있습니다.

컴퓨터는 이 과정을 수 깊이=20~30까지 거뜬히 수행합니다. 그리고 그 과정에는 한치의 실수도 없습니다. 20을 3번만 곱해도 8,000이 되기 때문에 이미 사람이 처리할 수 있는 연산의 범위를 넘어섭니다. 아래는 위 처음 포지션을 체스닷컴 분석 기능을 이용하여 수 깊이=15로 분석한 결과입니다. 백 입장에서 최선의 수를 좋은 순서대로 5개를 보여주고 있는데 1.Ba7+가 단연 최고의 수로 꼽히고 있습니다.

체스닷컴 컴퓨터 분석 예시

그렇다면 컴퓨터는 무적인 것일까요? 사실 그렇지는 않습니다. 체스 컴퓨터에게도 약점이 존재합니다. 지난 기사에서 개리 카스파로프가 IBM 사의 딥블루(Deep Blue)를 상대할 때 1경기를 패배하고 이후 경기 전략을 바꿨다는 것을 기억하시나요? 컴퓨터는 수읽기에서 절대 실수하지 않기 때문에 전술이 중요한 경기에서는 엄청나게 강력한 모습을 보입니다. 하지만 컴퓨터는 알고리즘과 수읽기에 의존하기 때문에 사람이 가진 직관과 경험을 따라올 수 없습니다. 아래 포지션은 카스파로프와 딥블루와의 1996년 대결 2경기입니다.

카스파로프 vs 딥블루 1996년 2경기.

기물의 숫자가 동일하지만 백이 h 열에 통과한 폰을 가지면서 근소하게 앞선 상황입니다. 밝은 색 칸을 백이 장악했기 때문에 흑은 반격의 기회가 없습니다. 위 포지션에서 카스파로프가 승리할때 가지는 40수가 더 걸렸습니다. 카스파로프 선수는 1경기를 패배한 후 2경기부터 전략을 정적인 스타일로 바꿉니다. 그리고 카스파로프가 보여준 그 전략은 현재에도 유효합니다. 컴퓨터를 상대로 승리하고 싶다면 다음과 같은 전략을 따라야 합니다.

1) 최대한 포지션을 닫아라. 폰을 교환하지 말아라.
2) 엔드게임(종반전)에서 승부를 봐라.

그런데, 컴퓨터는 진화를 거듭해 위 전략이 통하지 않는 상대가 카스파로프가 딥블루에게 패한지 꼭 20년이 지난 2017년 나타납니다. 바로 구글 딥마인드 사의 체스 인공지능(A.I.) 알파제로(AlphaZero)의 등장입니다. 이때의 충격은 딥블루가 카스파로프를 꺾었을 때에 버금갔습니다.


체스 인공지능과 관련된 내용은 다음 편에서 다루도록 하겠습니다!


chessinside
Jinsoo Seong

안녕하세요 체스인사이드입니다  

현재 체스닷컴에서 한국어 부문 이사로 근무하며 한국 체스 발전을 위해 다양한 일들을 하고 있습니다. 아래 채널들도 함께 운영하고 있습니다!