오늘 알파고가 이세돌 9단의 바둑 결과는 어떻게 보면 사람에게는 약간 충격적을 수 있는 결과입니다. 이전까지 체스는 컴퓨터가 사람을 이길 수 있지만 바둑은 사람을 아직까지 이길 수 없다는게 일반적인 평가였습니다.


체스와 달리 바둑은 자유도가 높고 경우의 수가 너무 많기 때문에 아직까지 하드웨어적으로 바둑을 둘 수 있을 만큼 빠른 속도로 연산이 불가능했기 때문인데요. 어떻게 알파고는 바둑을 둘 수 있는지 정말 기초적인 내용으로 설명드리겠습니다.


바둑의 경우 361개의 점으로 된 바둑판이 있고 각 점은 흑/백/무 3가지로 구성되기 때문에 10의 170승의 경우의 수가 있고 바둑은 누가 먼저 두는지에 따라 다시 10의 360승의 경로가 발생합니다. 그리고 첫 수를 시작으로 놓을 수 있는 칸이 361에서 하나씩 줄어드니 361팩토리얼의 경우의 수가 있고 결국 250의 150승의 경우가 발생하는데 이는 우주의 원자수보다 많다고 합니다.


<By HermanHiddema at the English language Wikipedia, CC BY SA 3.0, https://commons.wikimedia.org/w/index.php?curid=4666379>


어찌든 아무리 슈퍼컴퓨터라고 해도 이런 경우의 수를 모두 계산하면서 바둑을 둔다는게 불가능했는데요.


인공지능을 이용한 딥러닝이 이런 문제점을 극복하고 알파고가 바둑을 둘 수 있도록 만들었습니다.


딥러닝은 간단히 말하면 컴퓨터가 인공지능을 이용해 스스로 학습하는 기술을 말하는데요. 이미 구글은 몇년전부터 이미지 학습을 통해 대상의 표정을 인식하거나 아무런 단서 없어 스스로 사진이나 특정 동물이 출연하는 영상을 찾아내는 등 딥러닝을 사용한 인공지능을 선보였습니다.


이런 딥러닝을 통해 바둑을 익힌 알파고는 그럼 어떻게 바둑을 배우고 이세돌 9단을 이길 수 있을까요?

일단 먼저 알파고가 딥러닝을 통해 바둑을 배우게 됩니다. 알파고의 경우 약 16만건의 바둑 기보를 5주동안 학습했다고 하네요. (1년동안 사람은 1,000개의 기보도 학습하기 힘들다고 합니다.)

이렇게 기존에 기보를 학습한 알파고는 강화학습이라는 과정을 통해 스스로 대국을 하고 훈련합니다.


이런 훈련을 통해 알파고에 적용된 알고리즘은 모든 경우의 수가 아닌 학습에 의한 경우의 수 가지치기를 합니다. 모든 경우의 수를 계산하는게 아니라 내가 둘 수 있는 경우의 수 중에 승률이 높은 경우의 수를 계산하고 알파고가 두었을때 상대방의 승률이 어떻게 변할지를 계산해서 나한테는 좋고 상대한테는 불리한 경우의 수만 추립니다.


<Silver, D. et al., “Mastering the game of Go with Deep neural networks and tree search,”

Nature vol 529, pp. 484-489, 28 Jan 2016.>

이렇게 딥러닝을 통해 학습된 정보를 바탕으로 경우의 수가 확 줄어들게되면 이번에는 딥러닝이 아닌 3*3 즉 한점을 둘러싼 국소위치로 부터의 다음수만 모든 경우의 수를 계산합니다.


이렇게 딥러닝과 기존 경우의수 연산을 복합적으로 적용해 알파고가 바둑을 두게되는거조.


몬가 복잡한가요?? 3줄로 요약해보겠습니다.

-바둑은 경우의 수가 너무 많아 기존 슈퍼컴퓨터의 연산처리로도 사람과 바둑을 둘 수 없었음.

-딥러닝을 통해 바둑을 학습한 알파고는 경우의 수를 확 줄여 바둑에 필요한 연산량을 확 줄여버림
-연산량이 적어 사람과 바둑을 둘 수 있음.



블로그 이미지

사진찍는백곰

산업관련 정보, 마케팅, 웹로그분석, 기타 산업진흥마을 이야기

,