nodchipのコンピューター将棋ブログ

コンピューター将棋ソフト「tanuki-」シリーズの実験結果を掲載しています。

tanuki- 2020-06-04 halfkp_256x2-32-32 追加学習

tanuki- 2020-06-04 halfkp_256x2-32-32 追加学習

棋譜生成

生成ルーチン tanuki-棋譜生成ルーチン
評価関数 halfkp_256x2-32-32
1手あたりの思考 思考ノード数 5万 探索途中に思考ノード数上限に達したら即座に思考を停止する
開始局面 foodgate上の棋譜の32手目までから1局面ランダムに選択し、その局面を開始局面とした
生成局面数 1億局面生成×3セット
生成条件 対局は打ち切らず詰みの局面まで学習データに出力する
シャフル tanuki-棋譜シャッフルルーチン

機械学習

機械学習ルーチン やねうら王機械学習ルーチン
学習モデル halfkp_256x2-32-32
学習手法 SGD ミニバッチ法
USI_Hash 16
loop 100
batchsize 1000000
lambda 0.5
eta 0.05 0.001・0.002・0.005・0.01・0.02・0.05・0.1・0.2・0.5・1.0の各学習率を試し、もっともロスが下がったものを採用した
newbob_decay 0.5
nn_batch_size 1000
eval_save_interval 100000000
loss_output_interval 1000000
mirror_percentage 50
eval_limit 32000
weight_by_progress 有効 学習率に(1.0-進行度)を掛けて学習させるというもの

レーティング測定

対局相手 tanuki-wcsc29-2019-05-06 水匠2
思考ノード数 200万ノード 3000万ノード
全対局数 1000
同時対局数 48
ハッシュサイズ 1024
開始局面 やねうら王互換局面集24手目からランダムに選択 平手

実験結果

機械学習

validation lossをeta別に描画したグラフ

eta=0.050について、training lossとvalidation lossを描画したグラフ

レーティング測定結果

対tanuki-wcsc29評価関数

やねうら王互換局面集24手目から開始

1手200万ノード

13:59:07 engine1=D:\Jenkins\workspace\TanukiColiseum.2018-12-08\engine1\source\YaneuraOu-by-gcc.exe eval1=D:\hnoda\shogi\eval\halfkp_256x2-32-32.weight_by_progress.iteration=1.eta=0.050\final

13:59:07 engine2=D:\Jenkins\workspace\TanukiColiseum.2018-12-08\engine2\source\YaneuraOu-by-gcc.exe eval2=D:\hnoda\tanuki-wcsc29-2019-05-06\eval

13:59:07 対局数1000 先手勝ち497(52%) 後手勝ち442(47%) 引き分け61

13:59:07 engine1

13:59:07 勝ち501(53% R23.35) 先手勝ち273(29%) 後手勝ち228(24%)

13:59:07 宣言勝ち2 先手宣言勝ち2 後手宣言勝ち0

13:59:07 先手引き分け33 後手引き分け28

13:59:07 engine2

13:59:07 勝ち438(46%) 先手勝ち224(23%) 後手勝ち214(22%)

13:59:07 宣言勝ち5 先手宣言勝ち2 後手宣言勝ち3

13:59:07 先手引き分け28 後手引き分け33

13:59:07 501,61,438

対tanuki-wcsc29評価関数

平手局面から開始

1手200万ノード

17:04:08 engine1=D:\Jenkins\workspace\TanukiColiseum.2018-12-08\engine1\source\YaneuraOu-by-gcc.exe eval1=D:\hnoda\shogi\eval\halfkp_256x2-32-32.weight_by_progress.iteration=1.eta=0.050\final

17:04:08 engine2=D:\Jenkins\workspace\TanukiColiseum.2018-12-08\engine2\source\YaneuraOu-by-gcc.exe eval2=D:\hnoda\tanuki-wcsc29-2019-05-06\eval

17:04:08 対局数1000 先手勝ち488(50%) 後手勝ち471(49%) 引き分け41

17:04:08 engine1

17:04:08 勝ち590(61% R81.53) 先手勝ち299(31%) 後手勝ち291(30%)

17:04:08 宣言勝ち3 先手宣言勝ち0 後手宣言勝ち3

17:04:08 先手引き分け8 後手引き分け33

17:04:08 engine2

17:04:08 勝ち369(38%) 先手勝ち189(19%) 後手勝ち180(18%)

17:04:08 宣言勝ち1 先手宣言勝ち0 後手宣言勝ち1

17:04:08 先手引き分け33 後手引き分け8

17:04:08 590,41,369

対水匠2評価関数

やねうら王互換局面集24手目から開始

1手200万ノード

engine1=D:\Jenkins\workspace\TanukiColiseum.2018-12-08\engine1\source\YaneuraOu-by-gcc.exe eval1=D:\hnoda\shogi\eval\halfkp_256x2-32-32.weight_by_progress.iteration=1.eta=0.050\final

engine2=D:\Jenkins\workspace\TanukiColiseum.2018-12-08\engine2\source\YaneuraOu-by-gcc.exe eval2=D:\hnoda\suisho-wcsoc2020\eval

対局数1000 先手勝ち504(52%) 後手勝ち452(47%) 引き分け44

engine1

勝ち570(59% R67.72) 先手勝ち299(31%) 後手勝ち271(28%)

宣言勝ち2 先手宣言勝ち2 後手宣言勝ち0

先手引き分け11 後手引き分け33

engine2

勝ち386(40%) 先手勝ち205(21%) 後手勝ち181(18%)

宣言勝ち15 先手宣言勝ち5 後手宣言勝ち10

先手引き分け33 後手引き分け11

570,44,386

対水匠2評価関数

平手局面から開始

1手200万ノード

対局数1000 先手勝ち545(57%) 後手勝ち410(42%) 引き分け45

engine1

勝ち481(50% R2.55) 先手勝ち267(27%) 後手勝ち214(22%)

宣言勝ち1 先手宣言勝ち0 後手宣言勝ち1

先手引き分け23 後手引き分け22

engine2

勝ち474(49%) 先手勝ち278(29%) 後手勝ち196(20%)

宣言勝ち18 先手宣言勝ち16 後手宣言勝ち2

先手引き分け22 後手引き分け23

481,45,474

対水匠2評価関数

やねうら王互換局面集24手目から開始

1手3000万ノード

対局数100 先手勝ち43(48%) 後手勝ち46(51%) 引き分け11

engine1

勝ち54(60% R75.33) 先手勝ち28(31%) 後手勝ち26(29%)

宣言勝ち0 先手宣言勝ち0 後手宣言勝ち0

先手引き分け4 後手引き分け7

engine2

勝ち35(39%) 先手勝ち15(16%) 後手勝ち20(22%)

宣言勝ち2 先手宣言勝ち0 後手宣言勝ち2

先手引き分け7 後手引き分け4

54,11,35

対水匠2評価関数

平手局面から開始

1手3000万ノード

対局数100 先手勝ち52(52%) 後手勝ち48(48%) 引き分け0

engine1

勝ち0(0% R0.00) 先手勝ち0(0%) 後手勝ち0(0%)

宣言勝ち0 先手宣言勝ち0 後手宣言勝ち0

先手引き分け0 後手引き分け0

engine2

勝ち100(100%) 先手勝ち52(52%) 後手勝ち48(48%)

宣言勝ち0 先手宣言勝ち0 後手宣言勝ち0

先手引き分け0 後手引き分け0

0,0,100