AlphaGoとイ・セドルとの対局を観てから、AlphaGoの仕組みについて調べています。
Natureの論文を読んで少しずつ理解しているところですが、
そのうちまとめたいと思っています。
AlphaGoは、ディープラーニングを使用しているといっても
ベースになっているのは、既存の囲碁プログラムでも使用されていた
モンテカルロ木探索です。
モンテカルロ木探索について、全く知らなかったので
今回調べてみたら、UCTアルゴリズムが結構面白いと思いました。
モンテカルロ木探索って、ただのランダムに打つものかと思っていたのですが、
違いました(;^ω^)
そんなに単純ではなかったですね。
ディープラーニングの前に
UCTアルゴリズムも試してみたくなったので、
Pythonでプログラムを作ってみました。
Pythonなのでプレイアウト回数を増やすと遅くなるので、
300回のプレイアウト回数ですが、そこそこまともに打てているようです。
プログラム作成にあたっては、この本のサンプルプログラムを参考にさせてもらいました。
サンプルとして作成したので、終局での勝ち負けの判定とかできていませんが、
囲碁のプログラムはまともに作ろうとすると結構大変です。
本のサンプルがなかったらかなり苦労していたと思います。