#AlphaGOアルゴリズム備忘録
##AlphaGOに使用する4つのアルゴリズム解説
①SLポリシーネットワーク
畳み込みニューラルネットワーク(CNN)によって次の一手を決定します。
SLは教師あり学習(supervised learning)の略
プロ棋士の棋譜よりデータを取得し、それを学習させます。
入力データ:盤面
CNN
出力データ:次の一手
②モンテカルロ木探査
先読み機能のために実装
ある盤面から石を打ち合い、盤面が進むシミュレーションを行うためのアルゴリズムです。
③__RLポリシーネットワーク__
自己対戦の強化学習アルゴリズム
バリューネットワークの教師データ生成に使用します。
RLは強化学習(reinforcement learning)の略
④バリューネットワーク
ある盤面から「勝てる確率」を算出する評価関数
RLポリシーネットワークより、プレイアウト(コンピュータ同士の自己対局)を繰り返し、
ある盤面から始めた時の勝率を自己対局の勝率により決定します。
例)盤面Aから黒が先に打つ状況で、100回対局を行いました。
黒は100対局中90勝10敗しました。
盤面Aの勝率は90%です。
##AlphaGO学習アルゴリズム
①:プロ棋士の棋譜(過去の対戦した記録)より、入力データ:盤面、出力データ:次の一手をCNNを使用し、学習させます。結果、「ある盤面に対して、次の一手を指す」SLポリシーネットワークを構築します。
②:RLポリシーネットワークを使用し、SLポリシーネットワークのアルゴリズムで、コンピュータ同士の自己対局を行います。ある盤面に対して、終局までシミュレーションを何度も行います。そして、ある盤面に対しての勝率を導きます。
③:②の結果から、入力データ:盤面、出力データ:勝率をCNNで学習させます。結果、バリューネットワーク(ある盤面に対しての勝率を導くことができるアルゴリズム)を構築することができます。
##AlphaGO実装アルゴリズム
①:モンテカルロ木探査を行います。探査する過程で、バリューネットワークを使用し、勝率を導きます。勝率の高い盤面は深く、勝率の低い盤面は浅く、探査します。
②:探査が終了したら、SLポリシーネットワークより、次の一手を決定します。
#参考文献
[1] D. Silver et al., "Mastering the game of Go with deep neural networks and tree search," nature, Vol. 529, No. 7587, pp. 484-489, 2016.
[2]AlphaGoを模したオセロAIを作る(1): SLポリシーネットワーク - Qiita