본문 바로가기
살아가는 모습/생각

인공지능(AI) - 체스에 이어 바둑도 정복하는가?

by 내오랜꿈 2016. 2. 4.
728x90
반응형


1997년, IBM의 컴퓨터 '딥 블루'가 당시 세계 체스 챔피언이던 카스파로프에게 승리를 거두었을 때만 해도 컴퓨터가 바둑으로 사람을 이길 수 있다고 생각하는 사람은 없었다. 바둑은 체스보다 경우의 수가 10의 100제곱 이상 더 복잡한 게임이기 때문이다(바둑에서 돌을 놓을 수 있는 경우의 수는 관점에 따라 다를 수 있지만 대략 250의 150승이라고 유추한다. 이는 숫자 '1' 다음에 '0'이 170개 이상 붙는 것만큼 많은 경우의 수가 있다는 의미라고 한다). '딥 블루'는 초당 2억 개의 연산 속도를 자랑하는 슈퍼컴퓨터였는데 무게가 무려 1.4ton이었다. 바둑보다 10의 100제곱 이상이나 경우의 수가 적은 체스를 이기는 데도 이 정도의 슈퍼컴퓨터가 필요하다는 사실이 오히려 컴퓨터가 바둑을 이길 수 없으리란 확신을 가지게 만든 요인 중의 하나였다.


그로부터 5년 뒤인 2002년 10월, 초당 350만 개의 연산속도에 불과한 퍼스널 컴퓨터 '딥 프리츠'가 체스 챔피언을 이겼을 때도 '바둑한테는 어림 없다'는 예상이 주류였다. 나 역시 죽었다 깨어나도 컴퓨터 프로그램이 인간에게 이길 수는 없다고 확신했다. 실제로 얼마 전까지는 가장 뛰어난 바둑 프로그램이라 하더라도 정상급 프로기사에게 4점 내지 5점 정도의 핸디캡을 보이는 게 고작이었다. 프로기사는 고사하고 나를 이기는 바둑 프로그램도 당분간은 나오기 힘들 줄 알았다.


그런데 지난 1월 28일, 구글의 딥마인드 사업부에서 만든 인공지능 프로그램 '알파고(AlphaGo)'가 유럽에서 활약하는 중국 프로기사 판후이 2단과 호선으로 다섯 판을 둔 결과 모두 '알파고'가 이겼다는 뉴스가 터져 나왔다. 덧붙여 오는 3월, 세계 최고 수준의 프로기사인 이세돌 9단과 승부를 벌인다고 한다. 바둑을 아는 사람들에게는 그야말로 충격적인 뉴스고 인공지능 관련 사람들에게는 혁명적인 날로 기억될 것이다. 어떻게 한순간에 4~5점의 핸디캡을 극복할 만큼 비약적인 발전을 이룰 수 있었던 걸까? 그 비결은 바로 '학습(Learning)'이다. 이른바 'Machine Learning' 기법.


기존의 바둑 프로그램은 전부 '몬테카를로 트리서치' 기법을 사용했다. 이 기법은 '몬테카를로 알고리즘'으로 불리는 수학적 확률 분포를 이용하는 것인데 구하고자 하는 답이 확률적으로 정확하게 계산하기 힘들 때 무작위로 난수를 발생시켜 근사치를 얻는 방식이다. 바둑에 국한해서 설명하자면 쉽게 말해서 아무 데나 무작위로 두어서 대국을 한 뒤 그 승률을 따지는 방식으로 착수 후보마다 점수를 매겨 비교하는 방식으로 다음 수를 결정하는 것이다. 이 방식의 도입으로 이전의 바둑 프로그램보다 탐색시간을 획기적으로 줄이고 승률도 높이는 등의 비약적인 발전을 가져왔지만 지난 10여 년 동안 두세 점의 치수를 줄이는 데 그치는 정도였다. 10년 전에 나온 바둑 프로그램이 아마 3~4단 정도의 실력이었다면, '알파고' 이전에 최강의 바둑 프로그램으로 알려져 있는 '젠'은 아마 5~6단 정도의 실력으로 평가 받는 정도인 것. 몬테카를로란 이름 자체가 도박의 도시 이름을 따온 것처럼 그야말로 도박처럼 다음 수를 예측하는 것이다.


그런데 '알파고'는 이 몬테카를로 트리서치 기법에 딥 러닝 기법을 도입했다고 한다. '딥 러닝(Deep Learning)'은 높은 수준의 추상화를 시도하는 'Machine Learning 알고리즘'의 집합을 일컫는 용어로 인공신경망에 기반해 설계된 것이라 한다. 컴퓨터가 주어진 일을 처리할 때 스스로 필요한 데이터를 수집하고 분석해서 과업을 수행하는 것이다. 쉽게 말해서 기계 스스로 학습하면서 일을 처리한다는 말인데 물론 전혀 새로운 건 아니다. 구글의 번역기나 페이스북의 얼굴 인식 기능 등도 인공지능에 Machine Learning 기법을 도입하여 점점 진화하고 있는 것으로 알려져 있다. 바둑을 두면서 프로그램이 스스로 학습한다는 게 어떤 의미일까?



▲ '알파고'가 다음 착수를 결정하는 방식 

(출처 : "Mastering the game of Go with deep neural networks and tree search", <네이처>, Jan. 28th, 2016)


구글의 딥 마인드 연구 담당자는 이렇게 설명한다.


"우리는 바둑의 복잡함·방대함을 단순화해서 그 영역을 축소시켰다. 그러자면 트리서치(tree search)와 함께 심층신경망(deep neural networks)이 필요했다. 여기엔 다층적 신경세포와 같은 연결고리를 활용했다. 가치망(Value networks)이 탐색할 트리의 길이를 줄였다(컴퓨터의 탐색 부담을 줄여준다). 정책망(Policy networks)은 고수들의 기보로 3천만 개의 움직임에 대해 알파고를 훈련시켰다. 이로써 사람이 다음에 어떻게 둘지를 더 잘 예측하게 됐다. 과거 44%에서 57%까지 증가했다. 신경망을 사용해 가상으로 바둑을 두게 하고, 강화학습을 바탕으로 시행착오 프로세스를 사용하여 연결망을 조절하면서 스스로 전략을 발견하면서 학습하게 했다. 이는 기존에 불가능했던 걸 가능하게 했다."


곧 이전의 바둑 프로그램은 바둑판 위의 모든 가능한 지점에 탐색 트리를 구성함으로써 방대한 양의 정보를 처리해야 한다. 이는 숫자 '0'이 170 개가 넘는 확률로 구성되는 것이기에 현재로서는 정복 불가능하다 할 수 있다. 그런데 '알파고'는 이 탐색 트리를 '가치망(value networks)'이라 불리는 신경세포를 활용해 획기적으로 줄였다는 것이다. '정책망(policy networks)'이라 불리는 신경세포가 하나의 착수를 선택하면 '가치망'이 그 수에 대해 승리 여부를 예측한다. 이렇게 해서 승리 가능한 수만 채택하고 나머지 수는 버리는 것이다. 기존의 프로그램이 모든 경우의 수를 다 탐색하고 있었다면 '알파고'는 승리 가능한 수만 탐색하는 것이다. 이를 위해 바둑 고수들의 기보나 알파고 끼리의 수많은 바둑 대국을 통해 훈련하고 학습했다는 것이다. 이 모든 게 4주 만에 이루어졌다고 한다. 4달도 짧아 보이는데 기껏 4주 만이라니.


또 하나 놀라운 건 '알파고'가 범용 프로그램이라는 것이다. 기존의 바둑 관련 프로그램은 입력된 정보 속에서 가장 승률이 높은 수를 예측해서 다음 수를 두어나가는 순수 바둑 프로그램인데 반해 '알파고'는 바둑 전용 프로그램이 아닌 범용 프로그램으로서 입력된 정보를 기본적인 데이터로 활용하기는 하지만 스스로 학습하면서 다음 수를 예측한다는 것. 이게 과연 가능할까, 라는 의구심이 들 수밖에 없는데 1월 28일 <네이처>지에 정식으로 게재된 연구 논문에 이와 같은 내용이 상세하게 설명되어 있다.


어쨌거나 '알파고'가 기존의 바둑 프로그램과 차원이 다른 프로그램이라는 것은 확실해 보인다. 실제 판후이 2단과 둔 기보를 보면 도저히 기계가 둔 바둑이라고 생각할 수가 없다. 흑백이 누구인지 모르는 상태에서 놓아 보면 누가 판후이고 누가 '알파고'인지 구분하기가 힘들다. 다섯 판 중 유일하게 계가바둑으로 끝난 1국을 보면('알파고' 2집 반승) 큰 자리를 찾아내고 집의 균형을 맞추는 균형 감각이 살아 있다. 물론 이건 장점이자 단점이 될 수도 있다. 무난한 수만 골라서 둔다는 비판을 받을 수도 있기 때문이다. 긴박한 순간에도 승부호흡이 아니라 자신에게 입력된 모양바둑을 추구할 수 있다는 점에서. 지고 있는 바둑을 역전하기 위해서는 과감한 승부수도 필요한 법인데 정수만 두다가 싱겁게 질 수도 있기 때문이다. 실제로 1국의 경우 알파고는 초반 행마에서 무난하고 모양 좋은 수만 두다가 상당히 불리한 국면을 맞이하기도 한다. 아마도 프로기사들이 판후이의 기력을 의심하는 건 초중반 아주 유리한 국면을 만들어 놓고도 중반 이후 끝내기에서 역전 당했다는 사실 때문일 것이다. 하지만 알파고는 판후이의 실수 덕분에 역전에 성공한 이후 끝내기를 하면서 상대방의 착수에 손을 빼 상대방이 손을 빼지 못 할 다른 곳을 선수 처리한 다음 상대방이 둔 곳으로 돌아오는 모습도 보이는데 이런 건 계산을 하면서 두는 듯한 느낌을 받는다.


사실 기존 바둑프로그램의 난점 중 가장 문제가 되는 게 형세판단이었다. 바둑은 끝없는 형세판단의 연속이다. 치열한 수읽기조차 형세판단을 전제로 할 경우라야 의미가 있다. 제한된 시간에 모든 수읽기를 다 할 수는 없는 노릇. 이긴다는 확신이 들면 적당한 선에서 멈출 수가 있고 또 멈추어야 한다. 패싸움이 어려운 이유도 팻감을 둘러싼 계산과 형세판단이 어우러져야 하기 때문이다. 몇십 수밖에 안 놓여진 바둑판을 앞에 두고 내가 유리한지 불리한지를 읽어야 하고 이 판단에 기초해 이후의 전략을 짜야 하는 것이다. 이 형세판단이 틀리면 바둑은 이길 수가 없는 게임이다. 그렇다면 '알파고'는 이러한 형세판단을 어떻게 하는 것일까?


이에 대해서 구글 딥마인드 측에서는 '트레이드 오프(trade off)'라는 평가시스템을 쓰고 있다고 답한다.


"하나의 평가시스템을 쓴다. 트레이드 오프로 계산한다. 어느 특정 관점이 아닌, 인간이 중요하게 생각하는 것이 아닌 어떻게 하면 이길 수 있는가를 고민하게 했다. 알파고는 처음에 인간이 어떻게 형세의 균형을 찾는지를 학습하면서 출발하고 2단계에서는 튜닝을 한다. 이렇듯 자가 경기를 통해 균형을 찾아가는 것이다."


'트레이드 오프'는 원래 이율배반적인 상황을 설명하는 경제학 용어다. 물가와 고용의 상관관계를 설명할 때 주로 인용되는데 완전고용에 가까우면 물가가 상승하고 물가가 안정화 되면 실업이 증가하게 된다는 것이다. 경제 정책의 어려움을 나타내는 것으로 고용 증가와 물가 안정이라는 두 가지 정책 목표가 서로 양립할 수 없기에 어느 한 쪽을 희생할 수밖에 없다는 것이다. 이것을 '트레이드 오프'라고 한다. 구글의 설명 만으로는 서로 양립할 수 없는 게 어떤 것인지 정확하게 모르겠는데, 유추하자면 원래 형세판단이라는 게 실리의 균형(집의 많고 적음)이나 세력의 좋고 나쁨(두터움을 읽어내는 능력 같은 것) 등을 따져 전체 국면이 좋은지 나쁜지를 판단하는 것인데 기계가 사람이 하는 것들을 따라 하는데 어려움이 있으니까 이런 것들은 포기하고 오로지 이길 수 있는 확률(win probability)만 선택했다는 의미로 읽혀진다.


기존 프로그램에서 형세판단과 함께 가장 문제가 되었던 게 패를 둘러싼 공방이었는데 판후이 2단과 둔 다섯 판의 기보를 보면 '알파고'는 패싸움도 아무런 문제 없이 하고 있다. 3국, 4국, 5국에서 패싸움이 나오는데 패를 받을지 말지를 결정하는 가치판단이 들어가는 패는 5국에서 나온 것 한 번 뿐이고 이조차도 팻감을 둘러싼 흥정이 판 전체의 승부를 가를 만한 상황에서 나온 게 아니기에 이것만 가지고 완벽하다고 판단하기는 힘들다. 하지만 이 정도 만으로도 기존의 프로그램과는 확실히 다르다는 걸 충분히 알 수 있다. 전체적으로 '알파고'가 둔 수에서 치명적인 실수라고 할 만한 걸 발견하기 힘들다. 물론 이긴 바둑이니까 그렇긴 하겠지만.


이를 두고 프로기사들 중에 일부는 판후이가 너무 못 두었기 때문에 '알파고'가 실수할 여지가 없었다는 평가를 내리기도 한다. 하지만 판후이도 명색 중국에서 입단한 프로기사다. 아무리 유럽에서 아마추어들을 대상으로 보급활동을 하는 프로기사라고는 하지만 터무니없는 수준은 아닐 것이다. 요즘은 프로가 아마추어 정상급을 선 접기도 힘든 시대다. 일부 프로기사들이 말하는 것처럼 '알파고'가 정상급 프로기사한테 2~3 점 접바둑을 둬야 할 실력에 불과하다는 말은 인간의 오만함이 깃든 발언에 불과하다고 생각한다. 최규병 9단한테는 미안한 말이지만 '알파고'가 이세돌 9단이 아니라 최규병 9단과 승부한다면 나는 '알파고'에 건다.



▲ "알파고' 관련 논문이 실린 <네이처> 표지


아직 '알파고'와 이세돌 9단과의 대국조건이 정확하게 정해지지는 않았다. 대국조건이 정해지지도 않았는데 대부분 이세돌 9단의 승리를 예상한다. 많이 양보할 경우에도 한두 판은 이길 수 있을지 몰라도 5번기 승부니까 이세돌 9단이 이길 것이라 예상한다. 하지만 난 섣부른 예상은 시기상조라 생각한다. 대국조건이 정확하게 정해져야 유불리를 판단할 수 있다고 생각한다. '알파고'는 생각할 시간이 아주 많이는 필요 없는 기계다. 그래도 체스와는 비교도 안 될 정도의 복잡한 연산을 해야 하므로 수읽기를 하는데 있어 어느 정도의 시간이 필요할 텐데 정확한 건 프로그램 개발자들만이 알 수 있는 문제다. 논문을 보면 실제 '알파고'가 판후이와 둔 공식대국은 다섯 판이지만 비공식으로 다섯 판을 더 두었다고 한다. 공식대국은 제한시간 1시간에 초읽기 30초 3회, 비공식대국은 제한시간 30분에 30초 초읽기 3회. 결과는 공식대국은 '알파고'의 전승이지만 비공식대국은 3승 2패였다고 한다. 곧 제한시간이 짧은 30분 승부에서는 판후이가 두 판을 이겼다는 것이다.


이걸 어떻게 해석해야 할지는 어떤 상황이냐에 따라, 어떤 판단을 하느냐에 따라 다를 것이다. (1) 먼저 '알파고'가 초반 텅 빈 바둑판에 둘 때는 어디에 놓아야 이길 수 있을지를 읽어내는데 많은 시간을 필요로 한다고 해석하면(경우의 수가 많으므로) 속기바둑에서는 초반에 문제수를 둘 확률이 있다는 의미일 것이다. (2) 반대로 비공식 대국의 패배를 통해서 스스로 학습하는 능력을 발휘하여 자신의 문제점을 교정했다고 해석하면 '알파고'는 정말 무서운 프로그램이라는 의미일 것이다. 어느 쪽일지는 지금으로서는 섣불리 판단하기 힘들지만 설마 후자는 아닐 것이라 생각된다. 그렇다면 너무 슬플 거 같다. 뻔한 승부라는 의미에서.


만약 일반적인 세계 바둑대회처럼 제한기간 3시간에 1분 초읽기 5회라면 '알파고'도 이세돌도 생각할 시간은 충분할 것이다. 이 경우엔 '알파고'의 학습능력이 어느 정도인지가 관건일 테지만((2)의 경우는 논외로 하자. 이 경우라면 '알파고'가 무조건 이길 것이므로) 이세돌 9단도 실수할 확률이 적으니까 이 9단이 유리하지 않을까 생각한다. 반대로 속기바둑처럼 제한시간 10분에 30초 초읽기 3회라면 나는 '알파고'가 유리하다고 생각한다. 다만 (1)의 경우처럼 '알파고'가 초반에 착점하는데 많은 시간을 필요로 하는 것이라면 시간 제약 때문에 엉뚱한 수를 둘 확률이 많으므로 의외로 쉽게 이세돌 9단이 이길 수도 있다. 아마도 이 경우라면 구글 측에서 속기바둑을 제안하지는 않을 것이다. 프로그램의 특성을 가장 잘 알고 있을 구글에서 속기바둑을 제안한다면 이 경우는 '알파고'가 확실히 유리하다고 본다.


문제는 판후이와 '알파고'가 둘 때처럼 제한시간 1시간에 30초 초읽기 3회일 때 어떨까 하는 것이다. 판단하기가 쉽지 않은데 범용 프로그램이 4주 동안의 바둑 훈련을 받고 판후이와 승부를 했다는 것. 판후이와 승부를 겨룬 작년 10월 이후 4개월 여의 시간이 경과했다는 것이 어떤 의미있는 변화를 가져왔을지 등을 생각하면 선뜻 이세돌의 손을 들어주기 힘들다. 내 생각에는 세간의 예상처럼 이세돌의 일방적 승리로 끝날 것 같지는 않다. 설혹 이번 승부는 사람이 이긴다 할지라도 바둑은 결코 컴퓨터가 정복하지 못 하는 영역으로 남을 것이라는 인간의 오래된 오만함은 조만간 막을 내릴 것 같다.


마지막으로 만에 하나, 이 모든 게 기획된 것이라면, 일각의 의심처럼 판후이가 일부러 패한 것이라면, 다시 말해서 딥 마인드 사업부를 홍보하기 위한 구글의 치밀한 마케팅 전략의 일환이라면 이 승부는 분명 구글의 승리다. 실제적인 바둑의 승부를 떠나서.


728x90
반응형