d라이브러리









Part 1. 과학자들이 본 알파고의 비장의 무기


송준섭(이하 ) 바둑을 이야기하려고 모였는데, 바둑 실력은 어떤가.

한보형, 김기응(이하 , ) 까막눈이다. (웃음)

감동근(이하 ) 바둑을 좋아해서 최근까지도 바둑을 계속 공부하고 있다. 급수로는 ‘아마 5단’이다.


알파고를 백만 번 꺾은 최종병기 알파고

알파고에 대한 프로 기사들의 평가를 종합해 보면, 일반적인 프로 기사보다 한두 점 정도 실력이 뒤진다는 것이다. 알파고가 프로 기사와 대결할 때 바둑돌을 한두 개 정도 먼저 두고 시합을 하면 박빙이라는 얘기다. 한두 점 차이가 얼마나 큰 차이인가?

꽤 큰 차이다. 한국 기원에 프로 기사가 300명 정도인데, 이 중 상금으로 생활하는 기사는 50명 정도다. 그런데 이보다 실력이 떨어지는 100위권 기사가 이세돌에게 한두 점을 깔고 바둑을 두면, 이세돌을 꺾을 수 있을 정도다.

그럼에도 알파고가 유럽챔피언을 꺾을 수 있었던 비결은 무엇인가.

컴퓨터로 게임을 해결할 때 가장 기본적인 방법은 ‘트리 탐색’이다. 앞으로 게임이 어떻게 벌어질 것인지 그 경우의 수를 나뭇가지 형태로 그려보는 것이다. 하지만 바둑은 경우의 수가 많기 때문에 모든 트리를 그리기가 어렵다. 많은 경우 중에서 중요한 경우를 집중적으로 탐색한다면 이야기가 달라진다. 이렇게 미리 학습한 데이터를 바탕으로 승률이 높은 경우를 주로 탐색하는 것을 ‘몬테카를로 트리 방식’이라고 부른다. 이때 가장 중요한 것은 중요한 경우의 수를 구분하는 능력이다. 알파고는 ‘KGS GO’라는 온라인 바둑 서버에서 고수들이 둔 기보 15만 개를 수집해 학습했다. 착수점만 3000만 개에 이르는 이 커다란 데이터를 딥러닝으로 학습해, 고수들이 바둑을 어떻게 두는지를 알아낸 것이다. 딥러닝으로 학습한 알파고는 고수들이 어디 둘지를 50% 이상의 높은 확률로 예측하는 데 성공했다.

흉내를 내는 데 그치지 않고, 알파고끼리 대결을 시켜 더 나은 전략을 찾았다.

알파고1과 알파고2를 만들어 대결시켰단 말인가.

알파고1은 현재의 전략을 고수하고, 알파고2는 알파고1을 이길 최선의 전략을 찾게 한 것이다. 이런 대결을 100만 번이나 했다.

숫자는 어마어마해 보이지만, 시간이 더 많이 걸린 것은 기보를 보며 학습하는 과정이다. 학습에 3주나 걸렸다.

그 정도면 빨리 학습한 것이다. 한때는 너무 학습 속도가 느려서 딥러닝이 사장될 뻔 했다.

딥러닝을 조금 더 구체적으로 설명해 달라.

기계 학습의 가장 큰 난관은 우리가 모르는 함수를 찾는 것이다. 간단한 함수를 설계하는 것은 쉽지만, 바둑을 이기는 법 같은 복잡한 함수는 수학적으로 풀기엔 너무 어렵다. 하지만 간단한 방법으로 근사를 반복적으로 하는 딥러닝은 충분한 데이터만 있으면 복잡한 함수도 추정해낼 수 있다.


알파고의 스승은 일본의 바둑 고수들?

취재 중에 만난 프로 기사는 알파고가 돌이 깔린 모양을 보고 자기에게 유리한 수를 찾아내는 능력이 뛰어나다고 평가했다. 또 기존 바둑프로그램은 사람과 확연히 구분되게 돌을 두는데, 알파고는 기보만을 보면 누가 컴퓨터고 사람인지 구분할 수 없다고 덧붙이기도 했다. 이런 특징들이 알파고의 학습방식과 어떤 연관이 있을까.

사람의 기보를 보고 공부를 했기 때문에 사람과 비슷할 수 밖에 없다. 대신에 알파고에게 그렇게 두는 이유를 설명하라면 하지 못할 것이다. 내가 연구하는 컴퓨터 비전(시각) 분야에서 예를 들어보겠다. 사람은 두 눈을 이용해 물체가 얼마나 멀리 떨어져 있는지 알 수 있는데, 단순히 한 픽셀의 정보로 물체를 보는 컴퓨터는 사진 속 물체의 거리를 알기 어렵다. 픽셀 별로 깊이를 측정할 수 있는 함수를 만들어 주면 좋겠지만 이것이 어렵기 때문에 컴퓨터에게 문제와 정답을 잔뜩 알려주고는 학습시킨다. 그러면 컴퓨터가 알아서 사진 속의 깊이를 파악하는 함수를 만들어낸다. 그렇지만 컴퓨터는 사실 깊이가 무엇인지도 잘 모르고 왜 그게 깊은지도 모른다. 그냥 사람이 그렇게 알려줬기 때문이라고 대답할 수밖에 없다.

기보를 분석하려는 시도는 예전부터 있었다. 그런데 이런 시도가 번번이 실패한 이유는 데이터베이스에 있는 상황과 똑같은 상황이 실제 대국에서 나오지 않기 때문이다. 이전 인공지능은 학습한 기보에서 조금만 달라져도 정답을 찾지 못해 엉뚱한 수를 두곤 했는데, 알파고는 새로운 상황에서도 고수들이 둘 법한 수를 찾는 능력이 뛰어나다. 거리가 다른 그림들을 보고 공부한 인공지능이 새로운 사진을 보고도 물체의 깊이를 유추하는 것과 비슷한 원리다. 게다가 알파고가 학습한 것에는 그 사람의 독특한 기풍까지 포함돼 있다.

알파고는 KGS 서버에서 5~9단 사용자들의 기보를 참고했다. 그런데 이 서버는 일본인들이 주로 이용하는 서버다. 이것 때문인지 알파고는 모양에 치중하는 1950년대 일본식 바둑과 기풍이 비슷하다.

공부를 할 때도 어떤 책을 읽느냐가 중요할 것이다. 마찬가지로 어떤 데이터베이스를 참고하냐도 굉장히 중요한 문제 같다. 구글에서는 KGS의 기보에 있는 3000만 개의 착점을 이용해 알파고를 학습시켰는데, 여기에는 감 교수님 같은 아마추어들의 기보도 포함돼 있다. 프로 기사들의 기보는 그것보다 훨씬 적다.

KGS로 하면 나도 7단이다. 나 같은 아마추어들의 기보를 보고 잘못 배웠을 가능성도 있다. (웃음) 한국 프로 기사들의 기보는 1만6000개 정도다. 왜 이런 고수들의 기보를 사용하지 않고, 아마추어들의 자료까지 참고한 걸까. 함수를 만들기 위해서는 일정량 이상의 데이터가 필요한 것 같다.

알파고는 13개의 층위로 이뤄져 있다. 네트워크 구조에 따라 차이가 크지만, 이 정도 깊이를 가진 다른 프로그램의 경우엔 학습으로 만들어야 할 함수의 변수가 1억 개가 넘는다.

층을 더 늘리면 더 정확한 함수를 찾을 수 있나.

그만큼 더 많은 학습 자료가 필요하다. 무작정 층을 늘렸다가는 자료 부족으로 더 엉성한 알고리듬이 만들어질 수도 있다. 컴퓨터 비전 분야에서도 필요에 따라 6~7개에서, 많게는 20개까지 층을 다르게 조절한다.

바둑은 19×19픽셀에 검은 돌, 흰 돌, 또는 아무것도 놓이지 않는 세 가지 경우의 수밖에 없다. 컴퓨터 비전이 분석하는 일반적인 사진보다는 입력 정보가 확실히 적을 것이다. 때문에 그만큼 많은 계산이 필요할 것 같지는 않다.

프로 바둑기사이자, 소프트웨어 개발자인 김찬우 6단은 알파고가 초반에 착석을 할 때 예전에 사용되던 포석을 사용한다고 말했다. 한국과 중국의 정상급 기사들이 잘 두지 않는 방식이다. 알파고가 ‘책’을 너무 많이 읽다보니 과거의 영향을 받은 것 같다.

바둑에서 모양이 중요한 것은 맞지만 모양에서 벗어나야 할 때도 있다. 생사가 걸렸을 때는 모양보다 어떻게든 살아가는 게 중요하고, 정말 중요한 자리를 차지하기 위해 부분적인 손해를 감수할 줄도 알아야 한다. 알파고는 판 후이와의 대결에서 이런 부분에 약점을 보였다.



알파고가 준비한 비장의 무기들

역시 아직까지는 이세돌에 미치지 못하는 것 같다. 만약 여러분이 개발자라면 남은 시간 안에 알파고를 어떻게 훈련시키겠는가.

뛰어난 신경망이 확립되면 한 가지 장점이 있는데, 수준이 떨어지는 자료를 구분할 수 있다는 것이다. 알파고가 직접 자기보다 실력이 아래인 사람의 기보를 제외하고, 새롭게 학습할 수 있다.

두 가지를 말할 수 있을 것 같다. 우선 인위적으로 기보를 수정해 학습량을 늘리는 것이다. 딥러닝에서 흔히 쓰는 방법이다. 컴퓨터 비전에서는 학습에 필요한 이미지가 부족하면 멀쩡한 사진의 크기를 줄이거나, 색을 바꾸거나, 회전시키는 등으로 원래 이미지를 변형해 학습량을 늘리곤 한다. 알파고
가 이미 수준급이기 때문에, 알파고가 두는 바둑 기보 자체가 학습 데이터로 사용될 수도 있다.

또 하나는 ‘미세조정(fine tunning)’이다. 잘 구축된 시스템이 있으면 이를 필요에 따라 새롭게 업데이트할 수 있다. 알파고가 현재는 여러 사람과 바둑을 두기 위한 일반적인 바둑 인공지능이라면, 이세돌의 데이터를 수집해 이세돌 맞춤형 알파고를 만들어낼 수도 있다. 여러 사람이 겨루는 토너먼트에 나가서 알파고가 당장 우승하기는 어렵겠지만 한 명을 목표로 대결하는 것은 훨씬 더 잘할 것이다.

트리 탐색 방법을 개선할 수도 있다. 논문에 나온 알고리듬을 살펴보면, 하드웨어의 한계 때문에 최선이 아닌 차선을 선택한 부분이 보인다. 알파고는 바둑을 학습하면서 배웠던 몇 가지 수칙을 그대로 적용하지 않았다. 배웠던 방법대로 하면 계산이 너무 늘어나 수를 읽는 시간도 기하급수적으로 늘었다. 때문에 알파고는 하드웨어가 감당할 수 있는 적당한 선으로 규칙을 수정했다. 만약 최첨단 그래픽카드 등 하드웨어를 보완한다면 분명 이전보다 더 나은 모습을 보일 것이다.

구글 딥마인드의 데미스 하사비스나 데이빗 실버 같은 세계 최고의 개발자들이 무턱대고 이세돌에게 덤비지는 않을 것이다. 뭔가 숨기고 있는 게 있을 것 같다.

알파고의 아버지라고 할 수 있는 실버 박사는 나에게는 학자로 더 친숙한 사람이다. 바둑을 오랫동안 연구한 그는 이미 2008년에 ‘MOGO’라는 프로그램을 만들기도 했다. 이 프로그램은 김명완 9단과 9점 바둑을 두기도 했었다. 이 정도로 경험이 많은 사람이라면 프로 기사가 어느 정도 수준인지 알고 있을 것이다.

그럼에도 나는 이세돌이 압도적으로 이길 것 같다. 내 수준 정도로 바둑을 두는 것은 조금만 노력을 하면 누구나 할 수 있다. 재능있는 아이라면 1년이면 아마 5단이 될 수 있다. 그러나 그런 아이들이 프로가 되는 데는 몇 년이 걸리고, 갓 프로에 입문한 기사와 이세돌 같은 정상급 기사 사이에는 한 점 정도 차이가 난다. 알파고가 지금 막 프로 수준에 접어들었다고 해도 이세돌과의 차이는 엄청나게 크다.

이세돌이 창의적인 수를 즐긴다고 들었는데, 알파고는 지금까지 전형적인 기보에 따라 학습했기 때문에 이런 수에 당황할 수 있다. 딥러닝으로 학습한 컴퓨터가 어려운 문제는 곧잘 풀어내는데, 사람이 봤을 때 쉬운 문제는 틀리는 경우가 종종 있다. 복잡한 이미지를 잘 구분하는 프로그램이 아무것도 없는 텅 빈 이미지를 보고 엉뚱한 걸 대답하기도 한다. 학습을 시킬 때 워낙 어려운 문제에 집중해 공부를 시켰기 때문에 학습시키지 않은 쉬운 문제는 못 풀 수 있다. 사람은 어려운 걸 배우면 쉬운 문제는 쉽게 푸는데, 컴퓨터는 그렇지 않다.

이번 시합에서는 그럴 필요도 없을 것 같지만 프로 바둑에서 한 번도 나오지 않은 수를 이세돌이 초반에 둔다면 알파고가 험한 꼴을 당할 것이다.


알파고가 바둑을 정복하면, 그 다음은?

구글이 바둑을 연구하는 이유는 무엇인가. 바둑이 그렇게 인기가 많지도 않은데….

몬테카를로 트리 방식은 ‘밴디트(bandit)’ 알고리듬과 기술적으로 연관돼 있다. 온라인 광고와 상품 추천 등에 많이 사용되는 알고리듬이다. 광고 알고리듬은 사용자를 상대로 게임을 하는 것과 비슷한데, 알파고에 사용된 기술이 구글의 온라인 광고 매출에 도움이 될 수 있을 것 같다.

보드 게임 중에 컴퓨터에 정복되지 않은 유일한 게임이 바둑이다. 바둑을 정복하는 것만으로 인공지능 역사에서 커다란 이정표가 될 것이다.

그렇다면 딥러닝의 약점은.

왜 잘 되는지, 어떻게 작동하는지를 모르는 것?

경험적으로 만들어진 기술이기 때문에 내부가 어떻게 생겼는지 아직은 이해할 수가 없다. 예외적인 상황이 발생하면 학습된 모델이 무슨 짓을 할지 아무도 모른다. 터미네이터에 나온 ‘스카이넷’이 출연하지 못할 법도 없다.

그래도 터미네이터는 너무 나간 것 같다.(웃음)

과학동아 2015년 11월호에 예술가의 화풍을 따라하는 딥러닝 프로그램을 소개한 적이 있다. 고흐의 그림을 기가 막히게 따라 그리길래, 기자의 사진을 모딜리아니 스타일로 그려달라고 부탁했었다. 그런데 결과는 형편없었다. 엄청나게 성장하고 있는 것은 맞지만 딥러닝이 만사형통은 아닌 것 같다. 보통 사람들은 언제쯤 알파고를 상대할 수 있을까.

1997년에 체스를 정복한 딥블루도 모양에 의존해 체스를 뒀다. 이런 딥블루를 구동하기 위해 특별 제작된 특수 하드웨어가 필요했다. 딥블루는 하드웨어가 급속도로 발전하면서 문제가 해결됐지만, 알파고는 학습 기능을 빼고 바둑을 이기는 데에만 최적화시키면 일반인에게도 보급될 수 있을 것 같다.

알파고는 몬테카를로 트리 방식을 적용했기 때문에 딥블루보다 효율이 좋다. 딥블루가 체스판이 바뀔 때마다 1000가지에 이르는 트리를 매번 끝까지 그려야 했다면, 알파고는 승률이 높은 단 하나의 트리를 끝까지 그린다. 알파고는 훨씬 더 적은 경우의 수를 보면서 딥블루보다 훨씬 더 힘든 문제를 해결하고 있는 것이다.

그래픽카드의 발전 속도를 보면 언젠가 가능할 것이다. 그래픽카드(GPU)가 원래는 컴퓨터 게임이나 3D 그래픽에 한정적으로 사용됐는데, 최근에 나오는 ‘일반적인 그래픽카드(General GPU)’는 딥러닝에 주로 활용된다. 그것 때문에 대학에서도 연구 목적으로 그래픽 카드를 많이 구입하고 있다. 연구실에 장비를 납품하는 분이 ‘교수들이 왜 이렇게 게임을 많이 하냐’고 물을 정도다.(웃음)



▼관련기사를 계속 보시려면?

Intro. 알파고가 이세돌을 이길 수 있을까
Part 1. 과학자들이 본 알파고의 비장의 무기

Part 2. 왓슨과 딥블루는 어떻게 챔피언을 무너뜨렸나

2016년 03월 과학동아 정보

  • 송준섭 기자

🎓️ 진로 추천

  • 컴퓨터공학
  • 정보·통신공학
  • 소프트웨어공학
이 기사를 읽은 분이 본
다른 인기기사는?