본문 바로가기

알파고3

알파고의 몬테카를로 방법 바둑에서는 한 수를 두었을 때 그 수의 승률을 판단해야 하는데, 이후에 벌어지는 모든 경우의 수를 탐색할 수가 없다. 이럴 때 몬테카를로(Monte Carlo) 방법을 사용한다. 모든 탐색은 못하지만 빠르게 랜덤 탐색을 반복하면서 통계적인 수치를 얻는 방법이다. 몬테카를로 방법 가장 쉬운 예로 $\pi$를 구하는 방법이 있다. 임의의 정사각형에 점을 찍어 원 안에 포함되는지 판단하는 빠른 탐색을 반복하여 통계적인 $\pi$의 값을 알 수 있다. 실행 횟수를 높일수록 실제 $\pi$값과 일치해가는 것을 볼 수 있다. # 총 개수 -> 원 안에 있는 개수 / 총 개수 * 4 10 -> 2.8 100 -> 3.16 1000 -> 3.028 10000 -> 3.1504 100000 -> 3.13844 10000.. 2019. 11. 10.
알파고의 강화학습 앞에 알파고의 원리에 대해서 간단히 썼던 적이 있는데 알파고의 학습은 인간 고수들이 대국했던 기보를 시작으로 한다. 기보를 입력으로 여러 특징을 더 추출한 뒤 CNN으로 학습시켜 SL policy network를 구한다. 이렇게 학습해서 인간과 얼추 비슷하게 다음 수를 예측할 수 있다. 이렇게 구한 SL policy network를 강화 학습하여 더 좋은 수를 예측하는 RL policy network를 구하고, RL policy network로 현재 형세를 판단하는 value network를 구한다. 여기에서는 강화 학습을 통해 얻는 RL policy network와 value network를 어떤 처리를 통해 구하는지 정리한다. RL policy network 미리 구해둔 SL policy networ.. 2019. 11. 3.
알파고의 원리와 그 버전들 알파고(AlphaGo)로 통칭되지만 실제 바둑 ai는 여러 버전이 있다. 이세돌을 이긴 알파고 lee, 타이젬 등 온라인 사이트에서 60연승 후 마지막 공식 대국으로 커제와 겨뤘던 알파고 master, 이 모든 걸 뛰어넘은 알파고 zero까지 있다. 각 버전이 등장하는 순간을 바둑을 좋아하는 개발자로서 실시간으로 목격하는 즐거움이 매우 컸다. 머신러닝은 잘 몰라서 알파고 실력에만 감탄하며 봤지만 이젠 익숙한 단어들도 조금씩 들려서 정리해봤다. 바둑 ai를 만든다고 생각해보자. 머신러닝 지식 없이 컴퓨터로 봇을 만든다면 모든 경우를 탐색해서 가장 좋은 한 수를 두겠지만 바둑도 그렇고 현실 세계에서는 모든 경우의 수를 다 해볼 수 없다. 다 할 수만 있다면 minimax 알고리즘으로 서로 최선을 다할 때 누.. 2019. 11. 3.