深層学習day4 Section2:AlphaGo
要点まとめ
Alpha Go Lee
方策関数 PolicyNet と 価値関数 ValueNetからなる。
方策関数の入力は囲碁の盤面と同じ19x19の48チャンネル。 48チャンネルは、石(自石、敵石、空白)の3チャンネル、オール1、着手履歴、呼吸点・・・等。 その後、畳込み+ReLu関数を繰り返し、最後にsoftmax関数を通すと、19x19の次の手の確率を出力。
価値関数の入力は盤面特徴入力49チャンネル。 畳み込み+ReLu関数を繰り返し、全結合層を挟み、活性化関数tanhを通して、現局面の勝率を-1~1で表したものが出力される。
PolicyNetの教師あり学習では、KGS Go Serverというネット囲碁対局サイトの棋譜データから、3000万対局分の教師を用意して、教師と同じ手を予測できるように学習を行った。
PolicyNetの学習あり学習、最初は教師あり学習による様々な種類のPolicyPoolからランダムに選択されたPolicyNetとの対局シミュレーションを行い、その結果から方策勾配法で学習を行った。
その後、ValueNetの学習も行う。
RollOutPolicyとはNNではなく線形の方策関数で、高速で方策を計算する目的の関数。 PolicyNetが3ms要するのに対し、RollOutPolicyは3usで済む。
ValueNetの学習は、PolicyNetを使用して対局シミュレーションを行い、その結果の勝敗を教師として学習した。
Alpha Go Zero
AlphaGo Lee | AlphaGo Zero | |
---|---|---|
教師あり学習 | あり | なし |
入力にヒューリスティックな要素 | あり | なし |
PolicyNetとValueNet | 独立 | 一つのNetworkに統合 |
Residual Net | なし | 導入 |
また、AlphaGo Zeroではモンテカルロ木探索からRollOutシミュレーションをなくした。 PolicyValueNetは、入力に19x19の17チャンネルを取り、畳み込み、BatchcNormalize、ReLuを通し、その次にResudualBlockを通す。その後方策関数側と価値関数側とに分けて出力を作る。 ResidualBlockの基本構造は、 畳み込み→BatchNorm→ReLu→畳み込み→BatchNorm→Add(ショートカットを加算)→ReLu であり、 AlphaGoZeroでは基本構造を39個重ねている。
ショートカット構造があるため、勾配消失を回避できると共に、アンサンブル効果が得られる。
実装演習
なし
確認テスト等考察
Alpha Go LeeからZeroへは、ヒューリスティックな入力の排除や、ValueNet ・PolicyNetの統一、ResidualNetの利用などが大きな変更点。ResidualNetは畳み込み等の基本的な構造の他に、入力をそのまま出力に加算するショートカット構造を持つことで、深い層構造を実現している。