반응형

출처: http://scienceon.hani.co.kr/376916


몬테카를로 트리서치, 무작위 시뮬레이션 통해 승률계산

00dot.jpg 

몬테카를로 트리 서치, 이게 뭘까? 설명 자료를 찾다보면, 조금씩 이해할 수 있습니다. 엄청나게 많은 수를 일일이 다 다루지 않더라도 그 가운데에서 샘플링을 하여 확률적 연산을 수행함으로써 최선의 수를 찾아가는 기법으로 알려져 있습니다. 게임 프로그램에서는 이미 많이 사용된다고 합니다.


요즘 제가 인공지능과 관련해 궁금한 점을 자주 여쭙곤 하는 유신 교수께 물었더니 대강 이런 설명을 해주시는군요.


“둘 만한 수가 5개가 있다고 칩시다. 그러면 컴퓨터는 각각의 경우를 다 살펴보고서, 그 가운데 아주 조금이라도 승률이 높은 수를 선택합니다. 그런데 승률을 계산하는 과정에 샘플링이 들어가지요. 가능한 수 5개 가운데 제1번 수를 둘 때, 이후에도 무수한 수가 펼쳐질 겁니다. 그러니 컴퓨터는 제1번 수를 두고 이어서 이렇게 두는 방법, 저렇게 두는 방법 등등으로 많을 텐데 무작위로 100번, 1000번을 둔다고 해봅시다. 거기에서 승률을 얻습니다. 제2번 수를 둘 때도 마찬가지로 계산을 합니다. 이렇게 제3번 수, 제4번 수, 제5번 수를 두고서 얻어진 승률을 비교해, 가장 높은 수치의 수를 선택할 수 있습니다.” (전화통화 정리)


몬테카를로 방법이 확률적 연산과 관련이 있다는 것으로 이해됩니다. 무작위로 샘플링한 시뮬레이션을 해보고서 거기에서 승률을 얻으니까요. 샘플링을 10개 할 때와 100개, 1000개… 100만 개… 해서 승률을 계산할 수 있다면 훨씬 더 좋겠지요. 더욱 빠른 컴퓨터가 있다면 정해진 시간 안에 지금 두려는 수의 승률을 근사적으로 미리 파악할 수 있을 테니까요.


이런 몬테카를로 방법은 게임 프로그램의 알고리즘을 만들 때에 많이 응용되고 있는 듯합니다. 이미 시중에 나온 바둑 프로그램들이 이런 방법을 활용하니까요.


그런데, 알고리즘의 측면에서 보자면 기존 바둑 프로그램에는 없던 바둑 고수 알파고만의 비결이 따로 있습니다. 그게 이름도 생소한 “딥러닝(deep learning, 심화학습)”이라는, 최근 인공지능 분야에서 인기를 얻고 있는 알고리즘 기법이 아닌가 합니다. 그러니 알파고 바둑 프로그램에서 새롭게 탑재된 위력의 무기는 “딥러닝”이라고 말해도 지나치지 않을 듯합니다.



반응형

+ Recent posts