しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

囲碁TOPプロに勝利したAlphaGoのアルゴリズムを調べてみる

本日Googleの作った囲碁プログラムであるAlphaGoが囲碁のTOPプロであるイ・セドル氏に勝利しました。
5番勝負なのでまだまだこれからですがついにコンピュータがプロに勝つ時代になったかと思うと感慨深いです。

japanese.engadget.com

今日はそのAlphaGoのアルゴリズムについて調べてみました。
Wikipediaによるとアルゴリズムは以下のようなものです。

AlphaGoは、ディープニューラルネットワークを用いて実装された「value network」と「policy network」によって動くモンテカルロ木探索を用いる。AlphaGoは当初、棋譜に記録された熟練した棋士の手と合致するよう試みることで人間のプレーヤーを模倣するように訓練され、次に、ある程度の能力に達すると、強化学習を用いて自分自身と多数の対戦を行うことでさらに訓練された。

モンテカルロ木探索とは

以下のページが参考になりました。
モンテカルロ木探索とはランダムにいくつかの手抽出、それらについて終局までを予想してどれが一番勝率が高そうかを調べる方式です。
他のゲームでは数手先までしか読まないのですが、囲碁は数手先まで読んでもそれが有利か不利かが分かりにくいため終局まで読んでいるようです。

http://minerva.cs.uec.ac.jp/~ito/entcog/contents/lecture/date/5-yoshizoe.pdf

value network / policy networkとは

上で説明したモンテカルロ木探索はvalue networkとpolicy networkという技術によって動いています。
value networkは碁盤の状況を測定、policy networkは手の評価を行うようです。
ここから先は推測ですが、モンテカルロ木探索でいくつかの手を選択する際にvalue networkとpolicy networkで極力有利な手を選択しているのではないかと思います。
そして碁盤の状況測定と手の評価に機械学習を利用しているかと思います。

囲碁AI「AlphaGo」と世界最高の棋士がまもなく対決へ - WirelessWire News(ワイヤレスワイヤーニュース)

まとめ

最後は推測になってしまいましたが簡単に調査してみました。
いつか自分でもAIを作ってみたいものです。

参考URL

AlphaGo - Wikipedia