AlphaGoはどう設計されてるのか? なぜ強いのか?
AlphaGoの構築プロセスは、大きく以下の4段階に分けることができる。

それぞれ、詳細化して説明していこう。
1.「プロ棋士の打ち手を予測するAI」の構築
深層学習(ディープラーニング※1)で、プロの「ある局面における次の1手」を予測するモデルを構築している。トップクラスのプロ棋士の棋譜16万局(3000万局面)分のデータを用いた教師あり学習(※2)だ。このモデルでは、約60%の精度でプロの打ち手を予測可能だという。
※1:深層学習(ディープラーニング)の詳細は連載第3回をご参照ください。
※2:教師あり学習の詳細は連載第1回をご参照ください。
2.「勝ちを目指すAI」の構築
上述した「プロ棋士の打ち手を予測するAI」(以下、AI[1])を初期値として、深層強化学習(※3)を行う。AI[1]はあくまで「プロの打ち手」を正解としており、勝つか負けるかはゴールではない。一方、この段階ではAI[1]同士を「ゲームの勝利」を報酬として対戦させることで、「勝ちを目指すAI」(以下、AI[2])を構築している。60%の精度でプロの打ち手を予測するAI[1]に対して、80%以上の勝率を誇るという。
※3:深層強化学習とは、深層学習(ディープラーニング)と強化学習(定義された「報酬」の最大化を目的として、試行錯誤を通じて適切な制御規則を学習する仕組み)を組み合わせたアルゴリズム。例えばパズルなどの電子ゲームにおいて、ルールを教えることなく、ランダムに操作して「うまくいったかどうか」(高得点を得られたか)というフィードバック(報酬という)をもとに学習していくことで、人間を超える高得点を出すなどの研究成果が出ている。
3.「盤面評価モデル」の構築
AI[1]同士を対戦させて、途中1手をランダムに打つ。そこからAI[2]で対戦して、勝ったか負けたかを記録する。これによって3,000万局面のデータを自動生成(ランダムに打った直後の局面+結果としての勝敗)している。この3,000万局面のデータで教師あり学習を行うことで、各局面での勝率を計算する盤面評価モデルを構築する(※4)。
※4:このプロセスは理解が難しいかもしれないので補足する。筆者の解釈だが、「プロを予測するAI(AI[1])」同士の対戦によって「それっぽい盤面」を作る→途中ランダムに打つことで「あり得そうで、かつ多様な局面」を作る→その局面から「強いAI(AI[2])」で戦い、勝ったか負けたかを「その局面は有利だったのか不利だったのか」の評価としている、と考えられる。
4.複合AI「AlphaGo」の構築
ここまでに構築した打ち手予測AI(AI[1])と盤面評価モデル[3]、および従来の手法であるMCTS(モンテカルロ木探索※5)を用いてAlphaGoを構築する。
MCTSでは「有望と思われる手」を何らかのモデルまたはルールで選択したうえで、終局までランダムに打ってシミュレーションして「打ち手を評価」する(※6)。AlphaGoでは「有望と思われる手」をAI[1]が決め、盤面評価モデルが「AI[1]の打ち手を評価」して木を成長させていく。従来型のMCTSの「選択」と「評価」のステップ両方を飛躍的に高精度化した形だ。
このようにして、AI[1]の打ち手で局面が有利になるか不利になるか(次の盤面での勝率が今より高くなるか)を、盤面評価モデル[3]で判定することで、局面が有利になる、つまりもっとも勝ちに近づく手を次の1手とする。こうして構成されたものがAlphaGoである。
※5:MCTS(モンテカルロ木探索)とは、採りうる戦略(打ち手の候補)を木構造で表現し、その木構造の中で探索(シミュレーション)していくアルゴリズム。探索の過程で、それぞれのノード(枝の節)でその打ち手を評価しながら、有効な手(=よく通る枝)をより深く成長させていく。
※6:MCTSについては原始モンテカルロ囲碁と呼ばれるものから派生して、選択や評価の方法、枝の成長の基準などについて複数のアルゴリズムが提案されている。そのため、本文中に記載したMCTSの内容はあくまでMCTSの大枠の考え方の一例として捉えていただきたい。