TadaoYamaokaの日記

山岡忠夫 Home で公開しているプログラムの開発ネタを中心に書いていきます。

将棋AIの進捗 その3

以前の日記で、電王トーナメントに出るつもりと書いていましたが、申し込みをしました。
予選通過も厳しそうですがとりあえず頑張ります。


さて、前回からの進捗ですが、35億局面の学習が3エポック回したところで飽和しました。
一致率は、Policy Networkが46%、Value Networkが78.1%となりました。

Policy Networkは強化学習を行っているので、単純に一致率では評価できませんが、少し微妙な感じです。
入力特徴、ネットワーク構成、フィルターサイズなど変えて実験したいですが、やり直す時間もなさそうなので、一旦これで完了として他の改良に着手しようかと思います。

モデル学習が終わったので、昨晩からfloodgateに放流してみました。

f:id:TadaoYamaoka:20170917091642p:plain

レーティングは、2710となっています。

gpsfish_normal_1cと同じくらいの強さにはなっています。
同じディープラーニングを使っているShogiNetSearchには勝っているようなので、ディープラーニングモンテカルロ木探索の有用性はそれなりに示せているかと思います。

上位ソフトには全く勝てていません。
原因がどこにあるか詳細に分析をしたいと思っていますが、気づいたところでは終盤になるにつれPolicy Networkで読み漏れが発生していて、読み漏れが起きる局面ではValue Networkも正しい値をつけられていないようです。

終盤では従来の手法の方が有効そうなので、終盤は従来の手法も取り入れた方がよさそうです。

AlphaGoでも、末端局面の評価は、Value Networkとプレイアウトの平均としているので、それを参考にValue Networkと従来の手法(3手読みくらい)の平均とした場合にどうなるか次に試す予定です。
Value Networkの実行中はCPUは遊んでいるので、数手くらいであれば従来の手法で探索を行っても速度面のデメリットはありません。
Policy Networkの読み漏れ対策としては、最小選択確率を調整したり、遷移確率にノイズを付加して、読み漏れする局面も低い確率で探索させるようにする予定です。

2017/9/18 追記

末端ノードで従来手法での探索を行って平均をとるのを試してみましたが、逆に弱くなってしまいました。
浅い探索の評価値よりはValue Networkの精度の方がよいということでしょうか。
Policy Networkで読み漏れが発生する件は、ノイズを付加するとやはり弱くなってしまうようです。

素直にPolicy NetworkとValue Networkの精度を上げることを考えた方がよさそうです。

  • 効果的な入力特徴を増やす
  • ネットワーク構成、フィルターサイズなどを見直す
  • 中盤以降の学習局面の数、バリエーションを増やす
  • 深さ8よりも上げて棋譜を生成する

など。

2017/9/19 追記

Value Networkの計算中に1手詰め計算をするようにしました。
デメリットは特にないので、少しは効果がでるはずです。

できれば3手詰めにしたいけど、elmo(Apery)に3手詰めが実装されていないので、自力で実装が必要になります。
それほど難しくはないと思うので、実装する予定です。