Python
DeepLearning
データ分析
ディープラーニング
コンピュータ将棋

【将棋AI】「将棋AIで学ぶディープラーニング」を読む♪~やはり過学習なのか??

将棋AIで学ぶディープラーニング
第十九夜は、昨夜のつづきであのTryモデルの意外な展開。

やったこと

(1)昨夜のTryのミスの修正をして追加学習
(2)現在の強そうなモデル間の総当たり戦
(3)そして、VGGLikeとS40と対戦してみた
(4)棋譜解析をしてみると。。

(1)昨夜のTryのミスの修正をして追加学習

一応、ミスはh2 = F.relu(self.conv2(h1))の部分のreluだけだから追加学習してみました。やはりうまく継続して修正できて学習できました。
収束性は以下のような感じでうまくいっていそうです。
figure_1-34log3000_try10_2016_2017.png
そして一致率等は、比較のために今までのものを並べてみると、以下のとおり
方策の一致率はきわめて高くなった。

名称 loss 一致率(方策) 一致率(価値) 備考
policy 1.682677 0.4226734 - 方策ネットワークのみ
Policy_Value;Layer13 2.016 0.4204578 0.67033803 13層の方策・価値ネットワークでMCTS
ResnetSimple40※ 2.29075 0.4325099 0.6906338 Resnet20block43層
ResnetSimple20  2.308355 0.4326057 0.6941468 Resnet10block23層
ResnetSimple10 2.360802 0.42507267 0.6948055 Resnet5block13層
ResnetVGGLike5 2.279315 0.43526843 0.69514084 ResnetVGGLike5block19層
ResnetTry30 2.27104 0.43431032 0.6986858 ResnetTri10block33層
ResnetTry 1.965186 0.4312045 0.67467344 ResnetTri10block33層epoch19
ResnetTry 2.3784263 0.43634507 0.6942187 ResnetTri10block33層epoch28
ResnetTry 1.8439145 0.44418514 0.6781456 ResnetTri10block33層epoch31
ResnetTry 1.5742202 0.43192667 0.6731665 ResnetTri10block33層epoch37

(2)現在の強そうなモデル間の総当たり戦

そして総当たり戦をやってみた結果が以下のとおりです。
S40はshogi686に1-0-1と善戦しましたが、
Try30は全敗してしまいました。そして、負け方がなんとも接待将棋で負けるようにわざと打っているようです。

yowaiTry.jpg

使ったパラメータはepoch28です。それ以外のあらたに学習したものを使ってみましたが、やはり接待将棋レベル。

(3)そして、VGGLikeとS40と対戦してみた

前回の結果はこれほど悪くなかった(Networkモデルはミスのままだった)ということで、それではということで昨夜のデータのepoch11を使って、一応強そうな両者と対戦した結果、VGGlikeとの対戦で引き分け。
TuyoiTry.jpg
そして、一番強いはずのResnetS40とは、7-0-3で勝利しました。
TuyoiTryvsS40.jpg
つまり、今一番強いのはTryなのかVGGLikeなのか。
以前以下の結果があるので、この三者はほぼ互角なんでしょう。
VGGvsS40.jpg

(4)棋譜解析をしてみると。。

このResnetS40 vs.Tryの最後の対戦の棋譜解析をしてみました。
KaisekiTryvsS40.jpg
これを見ると黒番33手の疑問手まで、前半戦はAperyの予測とかなり一致しています。
KaisekiTryvsS402.jpg
そして、33-黒番51手の一連の悪手がどうも勝敗に決定的だったようです。
KaisekTryvsS403.jpg
終盤にも双方悪手があって、黒が投了しています。
ということで、上記のとおり、学習すればするほど賢くなるというのは神話で、この場合もたぶん過学習に陥っているのだと思います。
※Testデータのスコアが上がっていることから、単純な過学習とは言えず、ここはきちんと確認すべき大きな課題です

まとめ

・Tryのコードを修正して追加学習した
・追加学習したパラメータは一致率等は改善したように見えるが、強くならなかった
・最初に学習したパラメータで強い将棋AIになった
・Gikou探索深さ1には勝てるようになった。そしてResnetS40が初めてshogi686に勝利した

・なんとかしてこの過学習と思われる現象を理解したい