..

Search

2) 알파고

알파고


알파고(AlphaGo)

알파고(AlphaGo)는 2014년 구글에 인수된 딥마인드(DeepMind)에서 개발한 머신러닝 기반의 인공지능 바둑 프로그램으로, 기존의 바둑 프로그램들과는 달리 자기 자신과의 대국을 통해 스스로 학습할 수 있다는 특징을 가지고 있습니다.

 

알파고는 2016년 이세돌 9단에 맞바둑으로 도전하여 4승 1패라는 믿기지 않는 성적으로 승리함으로써 세계적인 관심을 받게 되었으며, 우리나라에서는 2016년 한 해 동안 4차 산업혁명을 대표하는 키워드 중 가장 많은 관심을 받은 키워드이기도 합니다.

 

deepmind     deepmind


바둑과 인공지능

go

 

바둑은 체스나 장기와는 달리 지금까지 사람을 이길 수 있는 인공지능을 만들기가 가장 어렵다고 생각되어 왔던 분야 중 하나였습니다.

 

바둑판은 가로와 세로 각각 19개의 줄을 가지고 있으며, 따라서 바둑돌을 놓을 수 있는 점의 개수가 361곳이나 됩니다.

즉, 바둑판에서 실제로 바둑돌을 놓을 수 있는 모든 경우의 수는 361!(팩토리얼)이 되는 것입니다.

 

실제 바둑에서는 집이라는 개념에 따라 바둑돌을 놓을 수 없는 곳도 생기고 반대로 한 번 두었던 자리에 다시 바둑돌을 놓을 수도 있는 경우도 생기지만, 이 부분은 생각하지 않기로 합니다.

 

n 팩토리얼(factorial)이란 1부터 시작하여 n까지의 정수를 모두 곱한 것을 의미합니다.

361! = 1×2×3×…×359×360×361

따라서 361!은 대략 2×10170보다 큰 수가 되며, 이는 현재 우리가 사용하고 있는 단위로는 도저히 읽을 수 없는 수입니다.

 

이처럼 엄청나게 큰 경우의 수를 가지는 바둑이기에 지금까지 바둑에서는 똑같은 대국이 단 한 번도 나오지 않았다고도 하며, 바둑으로 인간을 이길 수 있는 인공지능도 만들기가 힘들 것이라고 여겨졌습니다.


알파고의 하드웨어

알파고의 첫 번째 버전인 알파고 판(AlphaGo Fan)은 176개의 GPU를 사용한 네트워크에 연결된 여러 대의 컴퓨터를 사용하는 분산 시스템이었습니다.

 

그리고 두 번째 버전인 알파고 리(AlphaGo Lee)는 GPU를 대신하여 구글에서 개발한 TPU라는 하드웨어를 48개 사용한 분산 시스템이었습니다. 바로 이 두 번째 버전인 알파고 리가 우리에게 친숙한 이세돌 9단과의 대국에서 사용된 버전입니다.

 

gpu

 

GPU(Graphics Processing Unit)란 그래픽 카드에 부착된 처리 장치를 의미하며, GPU는 고도의 병행 구조로 단순 연산인 부동소수점 연산에서 CPU보다 10배 이상의 성능을 보여줍니다.
TPU(Tensor Processing Unit)란 구글에서 2016년에 발표한 데이터 분석 및 딥러닝용 하드웨어입니다.

 

이렇게 두 번째 버전인 알파고 리까지는 많은 양의 하드웨어 자원을 사용하는 분산 시스템으로 제작되었지만, 세 번째 버전인 알파고 마스터(AlphaGo Master)부터는 4개의 TPU가 사용된 단일 컴퓨터 시스템으로 제작됩니다. 그리고 마지막 버전이자 최종 버전인 알파고 제로(AlphaGo Zero)에서도 역시 4개의 TPU만이 사용된 단일 컴퓨터 시스템으로 제작됩니다.

 

이처럼 처음에는 네트워크로 연결된 많은 양의 하드웨어 자원을 사용해야 하는 분산 시스템으로 제작되었던 알파고가 최종 버전에서는 단일 컴퓨터 시스템으로 제작되었다는 것은 알파고가 진화함에 따라 연산에 필요한 하드웨어의 물리적 의존도를 그만큼 개선했다는 의미일 것입니다.

 

따라서 앞으로는 구글과 같은 대기업뿐만 아니라 일반인도 알파고와 같은 인공지능을 개발할 수 있는 시대가 머지않아 열리게 될 것입니다.


알파고의 알고리즘

알파고가 인간을 바둑으로 이길 수 있었던 가장 큰 이유가 구글이 보유하고 있는 엄청난 하드웨어라고 생각하는 사람들이 많습니다.

하지만 알파고가 기존의 다른 바둑 프로그램들과 가장 다른 점은 하드웨어가 아닌 바로 그 알고리즘에 있었습니다.

 

2010년까지 인공지능 바둑 프로그램은 아주 초보적인 단계에 머물러 있었습니다.

대부분의 프로그램이 이전에 행해진 대국의 기보를 데이터베이스에 최대한 많이 축적한 후, 이를 바탕으로 다음에 둘 수를 유추하는 방식이었습니다.

이러한 한계 때문에 프로 기사와의 대국은커녕 아마추어가 봐도 이해할 수 없는 수를 연발하는 경우도 많았습니다.

 

그러던 중 획기적인 탐색 알고리즘인 몬테카를로 트리 탐색 알고리즘이 등장하면서 인공지능 바둑 프로그램은 큰 변화를 맞이하게 됩니다.

몬테카를로 트리 탐색(Monte Carlo tree search, MCTS) 알고리즘은 다양한 선택지 중에서 가장 유리한 선택을 하도록 도와주는 일종의 체험적 탐색 알고리즘으로, 이를 활용함으로써 데이터베이스에서 지금과 똑같은 상황을 찾아서 그것과 같은 수를 두는 것이 아니라 진짜 인간처럼 생각하며 두는 방법을 터득하기 시작한 것입니다.

 

알파고는 이러한 몬테카를로 트리 탐색과 함께 딥러닝 방식의 심층신경망(Deep Neural Networks, DNN)을 활용하여 더욱 유리한 선택을 하도록 설계되었습니다. 심층신경망은 정책망과 가치망으로 구성되는데, 알파고는 정책망(policy network)을 통해 다음번 바둑돌을 놓을 위치를 결정하고, 가치망(value network)을 통해 바둑의 전체적인 형세를 파악하여 현재 승리할 확률을 추정하게 됩니다.


알파고의 의의

알파고는 인공지능이 인간을 넘어서기 힘들 것이라고 판단해 왔던 바둑이라는 분야에서 성공적으로 인간을 능가함으로써 인공지능의 한계는 과연 어디까지인가라는 물음을 던져주는 하나의 이정표가 되었습니다.

 

robot

 

구글 딥마인드에서는 알파고의 알고리즘을 기후 변화의 예측, 질병 진단 및 건강관리, 무인 자율주행 자동차 등 미래의 핵심적 서비스 사업에 적용한다는 계획의 일환으로 ‘범용 강화 학습 알고리즘으로 체스와 쇼기 정복하기’라는 논문을 통해 알파고의 알고리즘을 성공적으로 체스와 쇼기로까지 일반화시킵니다.

 

이렇게 알파고는 단지 바둑이라는 특정 분야에서만 그 의의를 가지는 것이 아니라, 일반적인 인공지능 기술의 발전으로 인해 발생할 것으로 예상되는 직업의 소멸이나 사회적 구조의 변화 등 앞으로의 일어날 사회적 변화에 대비하기 위한 고민을 시작할 시기라는 것을 우리에게 시사해 주고 있는 것입니다.


연습문제