DeepLearningによる将棋の学習11~6ブロック化と対局結果~

 前回は現状で最も良いと考えられるモデルで学習させてみました。

 今回はResidualBlockを一つ増やして6個として実験してみました。

f:id:tokumini:20180501110203p:plain

Epoch Total Loss Policy Loss Value Loss Policy Accuracy Value Accuracy
1 3.1680 3.0230 0.5797 0.3130 0.6512
2 2.7987 2.6588 0.5595 0.3539 0.6681
3 2.6395 2.5019 0.5506 0.3677 0.6759
4 2.5260 2.3894 0.5464 0.3832 0.6814
5 2.4690 2.3340 0.5400 0.3911 0.6868
6 2.4389 2.3043 0.5384 0.3939 0.6881
7 2.4099 2.2750 0.5397 0.3983 0.6903
8 2.4086 2.2732 0.5418 0.3995 0.6887
9 2.3999 2.2634 0.5458 0.4013 0.6883
10 2.4045 2.2693 0.5407 0.4032 0.6883
11 2.4163 2.2765 0.5590 0.4033 0.6850
12 2.4187 2.2826 0.5441 0.4025 0.6902

 結果は指し手一致率が40%を超え、良い性能を持つと考えられます。

 ここで海底の最新版(WCSC28へ出すもの:レート1100ほど?)と100局対局させてみました。海底側は1手5秒、NN側は8スレッドで10000回のプレイアウト(という言い方が適切なのかわかりませんが)となっています。この条件だとおおむねNN側も5秒から多くとも7秒ほどで着手するため、それなりに平等な条件となっていると考えられます。

 結果はNN側から見て34勝 2引き分け 64敗でした。引き分けを0.5勝0.5敗と考えてELOレート差を計算すると107.5となりました。思ったより強いという印象を持っています。

 しかし実は純粋にNNだけを利用しているのではなく、Valueを計算している時間を利用して海底が持っている評価関数で静止探索を行いそれらの平均値をValueとしているので、これが多少強くなっている一因なのではないかと感じます。そもそもモンテカルロ木探索自体を線形評価関数に適用してもそれほど悪くないのではと思っており、実験してみたいところです。