본문 바로 가기

[ 테크 ] [김국현의 만평줌] 제34화

세 가지 키워드로
3분 만에 이해하는 알파고

by김국현

알파고는 어떻게 움직이느냐고 물으니, 알파고는 몬테카를로 트리 탐색을 딥러닝이 가능한 신경망으로 돌리고 있다고 하는데, 도대체 이것이 무슨 말인가?

세 가지 키워드로 3분 만에 이해하는

몬테카를로와 경우의 나무

바둑돌을 놓을 수 있는 모든 곳마다 경우의 나무를 심어 보면, 그 가지의 수는 무한대가 된다. 아무리 컴퓨터라도 이 모든 경우의 가지를 고려할 수는 없다. 그 경우가 모든 우주의 모든 원자보다 많다고 하니 얼마나 많은지도 모르겠다. 게다가 바둑은 국면의 형세판단이 어렵다. 어떤 상태가 좋은 상태인지 파악이 어렵다. 그래서 등장하는 것이 몬테카를로 트리 탐색.

 

몬테카를로는 도박의 성지. 미래란 알 수 없는 것. 미래의 상황을 도박하듯 가정하고 그 상황에서 해야 할 최적의 의사결정을 탐색해 보기로 한다. 끝까지 무작위로 막 둬버리는 일을 반복하다 보면 형세가 좋은지 어떤지 판단이 서기도 한다.

 

그런데 이 반복적 도박은 의외로 효과적이다. 정사각형 안에 원을 그리고 다트를 막 던지다 보면 원안에 들어가는 수는 대강 일정하다. 원주율도 컴퓨터로 그렇게 계산한다.

 

하지만 이 몬테카를로는 많은 바둑 프로그램이 이미 채택하고 있고, 비즈니스 현장에서도 생산량이나 리스크를 추론할 때 액셀만을 써서도 잘 활용되고 있으니, 이런 도박만으로는 이세돌급 실력이 될 수 없다. 어떤 나무를 어떻게 고를지, 그리고 그 나무를 훑어 올라가 새로운 경우의 가지를 만날 때마다 어떻게 할지 물어볼 대상이 아쉬워진다. 이제 여기에 등장하는 것이 학습된 기계다.

기계 학습, 혹은 머신 러닝

세 가지 키워드로 3분 만에 이해하는

학교 수학 시간 때 함수를 배울 때 그리던 그림이 있다. 그런데 컴퓨터도 결국 이 그림 같은 기계에 불과하다. 지금까지는 입력값과 이 입력값을 다루는 방식을 알려주면 결괏값이 나오는 것이 프로그래밍이었다. 그런데 살다 보면 그 방식이란 것을 하나하나 미리 알려주고 있을 수는 없을 때도 있다.

 

그래서 이번에는 입력값과 결괏값을 넣고 대신 그 방식을 뽑아내 보고 싶어진다. 즉 자료와 결과의 관계성을 사람의 도움 없이도 스스로 이해하는 일이 가능하다고 깨닫게 된 것이다. 기계는 자료의 집합 안에서 관계와 구조를 스스로 찾아낸다. 사진을 백만장쯤 보여주니 기계는 그것이 무엇인지는 몰랐지만, 고양이를 ‘알아보기 시작했다.’는 일화는 기계학습에서 중요한 사건이었다.

 

이 학습된 상태에서 사람들의 언어로 그것의 이름을 결괏값으로 넣어 주면 이 네트워크는 자신에게 막연히 형성된 그 이미지가 바로 고양이였음을 알게 되고 고양이를 찾을 수 있는 방식을 획득하는 것이다.

 

마찬가지로 기계에 수백만장의 기보를 보여주면 바둑의 수를 ‘알아보기 시작’할 수도 있다.

 

알파고에는 크게 두 가지의 함수 기계가 있다. 책략함수(Policy Network)로 어디에 수를 둘지 판단하고, 국면함수(Value Network)로 그 국면이 어떤 형세인지를 계산한다.

 

하얀점과 검은점으로 이루어진 기보는 이 두 학습 기계로 들어갈 훌륭한 입력값이자 결괏값이다. 알파고는 대전전에 이 두 함수에 대량의 입력값과 결괏값을 넣고, 판단 방식을 쌓아둔다. 이제 무한대의 경우의 가지를 이 함수에 의존해 길을 찾는다. 심지어 더는 입력할 것이 없어도 괜찮다. 자기 자신과 두며 독학을 하면 된다.

신경 세포와 딥러닝

세 가지 키워드로 3분 만에 이해하는

그런데 딥러닝은 무엇일까? 기계 학습의 이 함수 기계가 사실은 네트워크를 이루고 있다. 마치 생물의 신경 세포처럼 단순한 모듈들이 깊이 얽혀 있다. 그 계층의 깊이가 깊다 하여 DNN(Deep Neural Network)이라 부르고 이를 활용한 기계학습을 딥 러닝이라 부를 뿐이다.

 

원래 신경 세포는 아주 단순한 일만 한다. 예컨대 기계 학습의 대표 사례인 구글 포토는 시각 정보가 수많은 세포를 거쳐 전달되듯이 작동한다. 픽셀의 집합인 그림 파일에서 색과 선을 찾아내고, 또 면을 찾아내고, 그 선과 면의 조합을 다시 찾아내, 즉 관계성, 반복되는 패턴을 인지한다.

 

알파고도 여러 층을 거치면서 낮은 레벨에서 흑백을 인지하고, 높은 레벨에서는 이들의 조합에서 특징을 발견한 뒤, 마지막으로 추상적인 무언가를 인지하는 식으로 13단계를 거칠 것이다. 깊은 13단계다. 이때 이 모듈들은 분산되어 클라우드의 수많은 프로세서를 활용하게 되니, 구글처럼 가용 자원이 많은 곳이 당연 유리하다.

 

이렇게 세 가지로 풀어 보니, 알파고. 뜻밖에 범용적이고 평범하다. 페이스북도 다크포레스트라는 바둑 프로그램을 역시 똑같은 방식으로 만들고 있다고 한다. 이처럼 딥러닝 학습기계를 만들 인재와 가용 자원이 있는 곳이라면 어디서든 기계는 인간을 놀라게 할 수 있을 것이다. 범용적이고 평범하게.