プレイアウトと深層学習を組み合わせた囲碁アルゴリズムを構築した。2016年1月に発表されたアルファ碁の再現プロジェクトのひとつにRocAlphaGoがある。RocAlphaGoが提供する深層学習を利用した。教師付学習のSL Policy Network、強化学習のRL Policy Network、盤面評価関数として機能するValue Networkの3つである。 提案法の特徴は、Value Networkとモンテカルロ木探索を融合させたこととアルファ碁が提唱するTree PolicyやRollout Policyを使わずに囲碁AIを動作させたことである。分散非同期型のアルファ碁に対し、提案法は単体非同期型である。 提案法では、Tree Policyの処理過程を省略し、ノード展開時にSL Policy Networkと同期させ、着手確率が高い有望手上位20手のみを木に追加する。ロールアウトによる勝敗は使わず、この部分をRayのプレイアウトで代用した。Rayはプレイアウトに非決定論的なヒューリスティックを取り入れた思考ルーチンであり、BSDライセンスで公開されている。C++で開発されているため、RocAlphaGoが提供するPythonスクリプトとは相性が悪い。そこで、Cythonを導入して共有ライブラリを構築した。木探索で使うノード評価値はUCB1値ではなく、アルファ碁と同じアクション値を採用した。 棋譜数約6万を使って教師付学習で最終精度52.3%を得た。強化学習はゲームバッチ数10、繰り返し6000回で実行した。得られた重みを使ってValue Networkに与えるデータセット約20万個を生成し、Value Networkでは最終精度51.4%を達成した。提案法とRayを500局自動対戦させた結果は343勝157敗であった。二項検定により提案法の統計的有意性を確認した。
|