アルファ碁:SLポリシーネットワーク
今日やったこと
最強囲碁AI アルファ碁 解体新書の第一章、第二章を読んだ。
AlphaGOでの次の一手の予測モデル(CNN)
最強囲碁AI アルファ碁 解体新書第二章より。
(完全に理解できているわけではないので間違いがありますことご了承ください。)
AlphaGOでは次の一手を予測するモデルを畳み込みニューラルネットワーク(CNN)を用いて作成している。
次の一手:局面を入力して、各位置に打つ確率の予測値を出力する。
局面の勝率についてはバリューネットワークという評価関数を作成している。(別の記事でまとめる予定。)
Supervised Learning (SL)ポリシーネットワークによる次の一手予測
AlphaGOでの学習結果では57%の一致率だった。
入力層:48チャネル
第1層:5x5の192種類のフィルタとReLU関数
第2層~12層:3x3の192種類のフィルタとReLU関数
第13層:1x1の1種類のフィルタと位置に依存するバイアス項、ソフトマックス関数
入力層の48チャネル
黒石の位置、白石の位置、空白の位置が1チャネルずつ。 他にも直前8手の位置などの特徴量を使用している。
SLポリシーネットワークの学習手順
1.局面をランダムに取り出す。
2.ポリシーネットワーク経由の出力を計算
3.誤差を計算
4.SGDによるパラメータの更新
SGDとは
SGD: 確率的勾配降下法 (stochastic gradient decent)
勾配降下法において、毎回すべての学習データを使って勾配を更新するのではなく、一部の学習データ(ランダムに選択)を使って勾配を更新する方法。高速化のほか、局所的最適解からも抜け出しやすくなる。らしい。
疑問点
なぜ中間層では3x3のサイズにしているのか。 計算コスト削減のため?
次やること
- ChainerでCNNの使い方の学習
- まずはMNISTでテスト
- 次に囲碁用のモデル作成
- PCに触れない時間は3章以降を読み進める。