AlphaGo のニュースでもちきりだけどよくわかっていない自分(囲碁わからない)への自分なりのまとめ。
- 参考文献(出典)
- AlphaGo | Google DeepMind
- Official Google Blog: AlphaGo: using machine learning to master the ancient game of Go
- Mastering the game of Go with deep neural networks and tree search : Nature : Nature Publishing Group
- AlphaGo - Wikipedia, the free encyclopedia
- Amazon.co.jp: 強化学習: Richard S.Sutton, Andrew G.Barto, 三上 貞芳, 皆川 雅章: 本
- AlphaGo のすごいところ
- 囲碁の難しいところと対策
- ゲーム木において1ノードからの枝分かれが多い(しらみ潰し探索は枝分かれ数の指数関数で増える)。
枝分かれ数をゲームの branching factor (枝分かれ要素)とか breath (幅)という。 - かつ、囲碁はゲームの深さ(手数)も深い(チェスは約80、囲碁は約150: 元論文より)。
- そのためアルファベータ法などの適用が難しい。
- アルファベータ法: ミニマックス法において意味のない枝の評価を省く。
- ミニマックス法: 何を打つかの判断に4手先 (次の自分の手、その次の相手の手、その次の自分の手、その次の相手の手) まで読む場合、まずある末端ノードについて4手先(相手が打った後)の自分の報酬を評価する。その次に1つノードを戻ってまた別の末端ノードの自分の報酬を評価する。その報酬がさっきより大きかったらこの末端ノードは刈り取って捨てる(4手先は相手の手番なので、自分の報酬がより大きくなる枝は選ばれないとする)。小さかったら最初に評価した末端ノードの方を捨てる。以後繰り返し。自分の手番直後のノードでは自分の報酬がより小さいノードを捨てていく。
- ゲームが複雑すぎるならどうすればいいのか。
- しかしこれらのアプローチをもってしても囲碁AIはアマチュアレベルに留まっていた。
「評価関数が入力データの線形結合ベースであったため(元論文)」
- ゲーム木において1ノードからの枝分かれが多い(しらみ潰し探索は枝分かれ数の指数関数で増える)。
- AlphaGo アルゴリズムの概要
- 畳込みニューラルネットワーク及びモンテカルロ木探索を使用する。
- 以下の2つのネットワークを使用する。
- “policy network": 次の手を選択する。
- “value network”: 盤面を評価する。
- ネットワークは12の異なる層と数百万のコネクションを含む。
- トレーニング手順:
たぶんこんな雰囲気。より詳細は論文参照。
この記事を書いている間に Lee Sedol 九段が4戦目を下した。よくわからないけどなんかうれしい。
AIは完勝目指してまた何か盛り込んでくるんだろうか。