読み書きプログラミング

日常のプログラミングで気づいたことを綴っています

AlphaGoまとめ

AlphaGo Fan AlphaGo Lee AlphaGo Master AlphaGo Zero (20b) AlphaGo Zero (40b) AlphaZero (20b) ELF OpenGo v1 ELF OpenGo v2 PhoenixGo KataGo
評価ハードウェア 1202 CPU & 176 GPU 48 TPU v1 4 TPU v1 4 TPU v1 4 TPU v1 4 TPU v1 1 V100 1 V100 Tesla P40 -
HW指標 1TPUで1600simに0.4秒 80k simに50秒
HW指標(playouts/s) 16000 8000 16000 1600
レーティング 3144 3739 4858 4350? 5185 ~4800 推定4100
実績 Fan Huiに5戦5勝 李世乭に5戦4勝1敗 トッププロに60戦60勝。柯洁に3戦3勝。AlphaGo Teachデータ生成 AlphaGo Masterに100戦89勝11敗 韓国トッププロに14戦14勝 第1回貝瑞基因杯世界AI囲碁大会優勝
アルゴリズム ポリシーとバリューネットワークとロールアウトのハイブリッドMCTS 同左 ポリシーバリューデュアルネットワークとロールアウトのハイブリッドMCTS ポリシーバリューデュアルネットワークでのMCTS 同左 同左 同左 同左
フィーチャー シチョウを含む48(49)プレーン 同左 シチョウを含むnプレーン(推定、n不明) 8手前までの盤上配置と手番(17プレーン) 同左 同左 8手前までの盤上配置と手番(18プレーン) 8手前までの盤上配置と手番(18プレーン) 8手前までの盤上配置と手番(17プレーン) 22プレーン
ネットワーク 192フィルタ * 12 CNN * 2 256フィルタ * 12 CNN * 2 20ブロック ResNet 256フィルタ * 20ブロック ResNet 256フィルタ * 40ブロック ResNet 256フィルタ * 20ブロック ResNet(推定) 224フィルタ * 20ブロック ResNet 256フィルタ * 20ブロック ResNet 20ブロック(batch normとactivationの位置がモダン)
学習 教師あり学習+強化学習 同左 同左 強化学習 同左 強化学習 強化学習 強化学習 強化学習 強化学習
自己対戦ハードウェア 50 GPU 2000 TPU v1 2000 TPU v1 5000 TPU v1 2000 V100 2000 V100 WeChat CPU server 27 V100
学習ハードウェア 64 GPU & 19 CPU 64 GPU & 19 CPU 64 TPU v2
自己対戦時一手sim数 1,600 1,600 800 1,600
自己対戦時着手選択 30手まで訪問数分布乱数、それ以後最大訪問数 同左 同左 訪問数分布乱数
ミニバッチサイズ 2,048局面(対称性ランダム) 同左 4,096局面 2,048局面
ウィンドウ 500,000 同左 1,000,0000 500,000
ミニバッチ処理 バッチサイズ32で64ワーカーを動かして2,048を処理 同左
学習方式 25k局毎1kミニバッチ。テストあり 同左 非同期。約200局毎に1ミニバッチ (30局 for symmetry)。テストなし。約1kミニバッチで更新 非同期
総ミニバッチ 700k 3.1M 700k 1.5M 639,200
総自己対戦数 (自己対戦から30M局面を抽出) 4.9M 29M 140M (21M for symmetry) 20M
自己対戦期間 1日+1週間 数ヶ月 3日 40日 34時間 2週間 9日(16日?) 19日

AlphaGo Masterの強さは手作りのフィーチャーにあります。20ブロックのMasterを超えるためにZeroは40ブロック要しました。
一番の要因はシチョウが読めるかどうかと想像しています。20ブロックのZeroでは盤を横断するシチョウが直感できないのではないでしょうか。20ブロックのELF OpenGoがそれを実証しています。
"without Hunman Knowledge"に拘らなければ、シチョウを含めたフィーチャーで強化学習するのが一番ですね。
残る疑問は、シチョウフィーチャーあり40ブロックで強化学習した場合AlphaGo Zero(40b)を超えるのかどうか。