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

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

tanuki- 2020-08-15 use_hash_in_training

tanuki- 2020-08-15 use_hash_in_training

棋譜生成

生成ルーチン tanuki-棋譜生成ルーチン
評価関数 halfkp_256x2-32-32
1手あたりの思考 思考ノード数 5万 探索途中に思考ノード数上限に達したら即座に思考を停止する
開始局面 foodgate上の棋譜の32手目までから1局面ランダムに選択し、その局面を開始局面とした
生成局面数 1億局面生成×25セット
生成条件 対局は打ち切らず詰みの局面まで学習データに出力する
シャフル 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-進行度)を掛けて学習させるというもの
次元下げ K・P・HalfRelativeKP・左右対称
use_hash_in_training 0/1

レーティング測定

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

実験結果

機械学習

validation loss

move_accuracy

レーティング測定結果

対 水匠2評価関数

平手局面から開始

1手300万ノード

1000対局

use_hash_in_training=1

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

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

対局数1000 先手勝ち548(59%) 後手勝ち368(40%) 引き分け84

engine1

勝ち415(45% R-32.72) 先手勝ち255(27%) 後手勝ち160(17%)

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

先手引き分け29 後手引き分け55

engine2

勝ち501(54%) 先手勝ち293(31%) 後手勝ち208(22%)

宣言勝ち59 先手宣言勝ち16 後手宣言勝ち43

先手引き分け55 後手引き分け29

415,84,501

対 水匠2評価関数

平手局面から開始

1手300万ノード

1000対局

use_hash_in_training=0

engine1=D:\Jenkins\workspace\TanukiColiseum.2018-12-08\engine1\source\YaneuraOu-by-gcc.exe eval1=D:\hnoda\shogi\eval\halfkp_256x2-32-32.use_hash_in_training=0\final

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

対局数1000 先手勝ち560(58%) 後手勝ち402(41%) 引き分け38

engine1

勝ち527(54% R33.33) 先手勝ち299(31%) 後手勝ち228(23%)

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

先手引き分け14 後手引き分け24

engine2

勝ち435(45%) 先手勝ち261(27%) 後手勝ち174(18%)

宣言勝ち22 先手宣言勝ち9 後手宣言勝ち13

先手引き分け24 後手引き分け14

527,38,435

対 水匠2評価関数

やねうら王互換局面集24手目からランダムに選択

1手300万ノード

1000対局

use_hash_in_training=0

engine1=D:\Jenkins\workspace\TanukiColiseum.2018-12-08\engine1\source\YaneuraOu-by-gcc.exe eval1=D:\hnoda\shogi\eval\halfkp_256x2-32-32.use_hash_in_training=0\final

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

対局数1000 先手勝ち504(53%) 後手勝ち443(46%) 引き分け53

engine1

勝ち567(59% R69.52) 先手勝ち302(31%) 後手勝ち265(27%)

宣言勝ち3 先手宣言勝ち2 後手宣言勝ち1

先手引き分け21 後手引き分け32

engine2

勝ち380(40%) 先手勝ち202(21%) 後手勝ち178(18%)

宣言勝ち14 先手宣言勝ち12 後手宣言勝ち2

先手引き分け32 後手引き分け21

567,53,380

use_hash_in_training=1 vs use_hash_in_training=0

平手局面から開始

1手300万ノード

1000対局

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

engine2=D:\Jenkins\workspace\TanukiColiseum.2018-12-08\engine2\source\YaneuraOu-by-gcc.exe eval2=D:\hnoda\shogi\eval\halfkp_256x2-32-32.use_hash_in_training=0\final

対局数1000 先手勝ち583(62%) 後手勝ち348(37%) 引き分け69

engine1

勝ち389(41% R-57.62) 先手勝ち254(27%) 後手勝ち135(14%)

宣言勝ち11 先手宣言勝ち3 後手宣言勝ち8

先手引き分け25 後手引き分け44

engine2

勝ち542(58%) 先手勝ち329(35%) 後手勝ち213(22%)

宣言勝ち24 先手宣言勝ち22 後手宣言勝ち2

先手引き分け44 後手引き分け25

389,69,542