LoginSignup
0
2

More than 5 years have passed since last update.

【将棋AI】「将棋AIで学ぶディープラーニング」を読む♪~学習次第で強くなる

Posted at

将棋AIで学ぶディープラーニング
第廿七夜は、本書にこんなことは書いてないけど、学習に関してちょっと工夫してみたら、うまくいっているようなのでまとめておく。

やったこと

(1)Lossのバランスを変える
(2)学習データをまとめてみる

(1)Lossのバランスを変える

これは、以前から方策ネットワークの学習と価値ネットワークの学習が、方策は学習しやすいが、価値ネットワークの学習がなかなか進まないという現象があった。
そこで、一番簡単な工夫は価値ネットワークのLossの重みを大きくして、より価値ネットワークを学習しやすくするということである。
ところが、これをやると方策ネットワークのAccuracyが上がってこない、さらに価値ネットワークのAccuracyも実はもとより悪い。
ということで、逆に価値ネットワークはあきらめて、方策ネットワークのLossの割合を増やしてみた。これだと勿論方策ネットワークのAccuracyがあがった。さらに価値ネットワークのAccuracyもあまり下がらないようだ。
結果は以下のとおり
※同じNetworkモデルじゃないので比較しずらいが、少ない層で同等な精度が出ている

network loss policy_accuracy value_accuracy note
Quad32 2.054025 0.41139683 0.65907264 epoch=8、32層
Quad32 2.34428 0.42745194 0.6892166 epoch=11、32層
Quad22_16 3.071567 0.41298786 0.66631365 epoch=8、22層※1
Quad22_16 3.28406 0.42357165 0.6909092 epoch=11、22層※1

※1;$Loss=1.6Loss_{policy}+0.4Loss_{value}$としている

また、レーティングはPlayout=300のままで
LesserKai(718)に対して、9-0-1で圧勝
Q22_300vsLkai.jpg
Gikou2D1(1512)に対して、3-2-5で惜敗
Q22_300vsGikou2D1.jpg
Gikou2D2(1799)に対して、1-0-9で大敗
Q22_300vsGikou2D2.jpg
これって、当初LesserKaiやGikou2D1に勝てなかったのと比べるとすごいと思う。

(2)学習データをまとめてみる

学習データの準備の仕方は、ほぼ前回の説明の通りです。
しかし、一か所工夫します。
つまり、Floodgateの2016の棋譜と2017の棋譜をまとめて学習させる工夫です。
以下のように、学習データを同じディレクトリwdoor2017に格納します。

wdoor2017
 |-2016
 |-2017

そして、以前と同じように以下で実行します。

>python utils\make_kifu_list.py D:\wdoor2017 kifulist3000

このTrainデータとTestデータを利用して学習すると

network loss policy_accuracy value_accuracy note
Quad32 2.054025 0.41139683 0.65907264 epoch=8、32層
Quad32 2.34428 0.42745194 0.6892166 epoch=11、32層
Quad22_16 3.071567 0.41298786 0.66631365 epoch=8、22層※1
Quad22_16 3.28406 0.42357165 0.6909092 epoch=11、22層※1
Quad22_1617 3.38789 0.41730803 0.6915467 epoch=3、22層※1
Quad22_1617 3.261292 0.42490402 0.69353837 epoch=4、22層※1
Quad22_1617 2.951929 0.43959206 0.679099 epoch=10、22層※1
Try24_1617 3.26445 0.42895943 0.69723386 epoch=3、24層※1
Try24_1617 3.076979 0.44028142 0.69179535 epoch=5、24層※1

※1;$Loss=1.6Loss_{policy}+0.4Loss_{value}$としている
Gikou2D2に3-1-6でepoch=3が惜敗
Q22_16_1617_300vsGikou2D2.jpg
Gikou2D1にも4-0-6でepoch=4が惜敗、こっちはぶっちぎりのはずだったんだけど、。。
Q22_1617_e4_300vsGikou2D1.jpg
さらに、Try24層を同じように学習すると、
epoch=3、playout=300で、Gikou2D1に対して、5-0-5で引き分け
Gikou2D1vsTry161617e3.jpg
epoch=5、playout=300で、Gikou2D2に対して、3-0-7で惜敗(まあ、レート差200で24%なのでほぼかな)
Gikou2D2vsTry161617e5.jpg

まとめ

・学習の改善として、方策と価値のLossバランスと学習データの統合を実施して、強くなることを示した
・Playout=300でGikou2D2に10回対戦で、勝利を挙げられるようになった

・最適化はまだまだできていない

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2