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

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

tanuki- 2021-07-02 nn_batch_size調整 (自己対局の初期局面変更)

tanuki- 2021-07-02 nn_batch_size調整 (自己対局の初期局面変更)

実験内容

  • 機械学習時に nn_batch_size を調整し、自己対局によりレーティングを計測する。
  • 「tanuki- 2021-06-30 nn_batch_size調整」では、初期局面として、やねうら王互換局面集を使用する。

棋譜生成

生成ルーチン tanuki-棋譜生成ルーチン
評価関数 tanuki-denryu-tsec-1 eval
1手あたりの思考 思考ノード数 50,000 ノードをベースとし、自動調整する
開始局面 foodgate上の棋譜の24手目までから1局面ランダムに選択し、その局面を開始局面とした
生成局面数 1 億局面× 3 セット
生成条件 対局は打ち切らず詰みの局面まで学習データに出力した

レーティング測定

対局相手 tanuki-denryu-tsec-1 eval
思考時間 持ち時間 900 秒 + 1 手 5 秒加算
対局数 2000
同時対局数 64
ハッシュサイズ 768
開始局面 やねうら王互換局面集

実験結果

機械学習

自己対局

対局数=2000 同時対局数=64 ハッシュサイズ=768 開始手数=24 最大手数=320 開始局面ファイル=D:\Jenkins\workspace\TanukiColiseum.2021-06-29\TanukiColiseum\records2016_10818.sfen NUMAノード数=2 表

示更新間隔(ms)=3600000

思考エンジン1 name=YaneuraOu NNUE 6.03 64ZEN2 EVAL_LEARN author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2021-06-29\engine1\source\YaneuraOu-by-gcc.exe 評価関数フォルダパ

ス=D:\hnoda\shogi\eval\tanuki-denryu-tsec-1.iteration=1\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考ノード数に加える乱数(%)=0 思考ノード数の乱数を1手毎に変化させる=False 持

ち時間(ms)=900000 秒読み時間(ms)=0 加算時間(ms)=5000 乱数付き思考時間(ms)=0 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 評価値のスケール(%)=100

思考エンジン2 name=YaneuraOu NNUE 6.03 64ZEN2 EVAL_LEARN author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2021-06-29\engine2\source\YaneuraOu-by-gcc.exe 評価関数フォルダパ

ス=D:\hnoda\tanuki-denryu-tsec-1\eval 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考ノード数に加える乱数(%)=0 思考ノード数の乱数を1手毎に変化させる=False 持ち時間(ms)=900000 秒読み

時間(ms)=0 加算時間(ms)=5000 乱数付き思考時間(ms)=0 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 評価値のスケール(%)=100

対局数2000 先手勝ち963(52.3%) 後手勝ち878(47.7%) 引き分け159

engine1

勝ち790(42.9% R-45.6 +-15.4) 先手勝ち421(22.9%) 後手勝ち369(20.0%)

宣言勝ち74 先手宣言勝ち38 後手宣言勝ち36 先手引き分け85 後手引き分け74

engine2

勝ち1051(57.1%) 先手勝ち542(29.4%) 後手勝ち509(27.6%)

宣言勝ち26 先手宣言勝ち13 後手宣言勝ち13 先手引き分け74 後手引き分け85

790,159,1051

対局数=2000 同時対局数=64 ハッシュサイズ=768 開始手数=24 最大手数=320 開始局面ファイル=D:\Jenkins\workspace\TanukiColiseum.2021-06-29\TanukiColiseum\records2016_10818.sfen NUMAノード数=2 表

示更新間隔(ms)=3600000

思考エンジン1 name=YaneuraOu NNUE 6.03 64ZEN2 EVAL_LEARN author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2021-06-29\engine1\source\YaneuraOu-by-gcc.exe 評価関数フォルダパ

ス=D:\hnoda\shogi\eval\tanuki-denryu-tsec-1.iteration=1.nn_batch_size=2000\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考ノード数に加える乱数(%)=0 思考ノード数の乱数を1手毎に

変化させる=False 持ち時間(ms)=900000 秒読み時間(ms)=0 加算時間(ms)=5000 乱数付き思考時間(ms)=0 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 評価値の

スケール(%)=100

思考エンジン2 name=YaneuraOu NNUE 6.03 64ZEN2 EVAL_LEARN author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2021-06-29\engine2\source\YaneuraOu-by-gcc.exe 評価関数フォルダパ

ス=D:\hnoda\tanuki-denryu-tsec-1\eval 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考ノード数に加える乱数(%)=0 思考ノード数の乱数を1手毎に変化させる=False 持ち時間(ms)=900000 秒読み

時間(ms)=0 加算時間(ms)=5000 乱数付き思考時間(ms)=0 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 評価値のスケール(%)=100

対局数2000 先手勝ち948(52.9%) 後手勝ち844(47.1%) 引き分け208

engine1

勝ち798(44.5% R-34.2 +-15.3) 先手勝ち420(23.4%) 後手勝ち378(21.1%)

宣言勝ち61 先手宣言勝ち34 後手宣言勝ち27 先手引き分け94 後手引き分け114

engine2

勝ち994(55.5%) 先手勝ち528(29.5%) 後手勝ち466(26.0%)

宣言勝ち25 先手宣言勝ち11 後手宣言勝ち14 先手引き分け114 後手引き分け94

798,208,994

対局数=2000 同時対局数=64 ハッシュサイズ=768 開始手数=24 最大手数=320 開始局面ファイル=D:\Jenkins\workspace\TanukiColiseum.2021-06-29\TanukiColiseum\records2016_10818.sfen NUMAノード数=2 表

示更新間隔(ms)=3600000

思考エンジン1 name=YaneuraOu NNUE 6.03 64ZEN2 EVAL_LEARN author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2021-06-29\engine1\source\YaneuraOu-by-gcc.exe 評価関数フォルダパ

ス=D:\hnoda\shogi\eval\tanuki-denryu-tsec-1.iteration=1.nn_batch_size=5000\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考ノード数に加える乱数(%)=0 思考ノード数の乱数を1手毎に

変化させる=False 持ち時間(ms)=900000 秒読み時間(ms)=0 加算時間(ms)=5000 乱数付き思考時間(ms)=0 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 評価値の

スケール(%)=100

思考エンジン2 name=YaneuraOu NNUE 6.03 64ZEN2 EVAL_LEARN author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2021-06-29\engine2\source\YaneuraOu-by-gcc.exe 評価関数フォルダパ

ス=D:\hnoda\tanuki-denryu-tsec-1\eval 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考ノード数に加える乱数(%)=0 思考ノード数の乱数を1手毎に変化させる=False 持ち時間(ms)=900000 秒読み

時間(ms)=0 加算時間(ms)=5000 乱数付き思考時間(ms)=0 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 評価値のスケール(%)=100

対局数2000 先手勝ち931(52.4%) 後手勝ち846(47.6%) 引き分け223

engine1

勝ち779(43.8% R-38.2 +-15.3) 先手勝ち405(22.8%) 後手勝ち374(21.0%)

宣言勝ち82 先手宣言勝ち45 後手宣言勝ち37 先手引き分け101 後手引き分け122

engine2

勝ち998(56.2%) 先手勝ち526(29.6%) 後手勝ち472(26.6%)

宣言勝ち20 先手宣言勝ち10 後手宣言勝ち10 先手引き分け122 後手引き分け101

779,223,998

対局数=2000 同時対局数=64 ハッシュサイズ=768 開始手数=24 最大手数=320 開始局面ファイル=D:\Jenkins\workspace\TanukiColiseum.2021-06-29\TanukiColiseum\records2016_10818.sfen NUMAノード数=2 表

示更新間隔(ms)=3600000

思考エンジン1 name=YaneuraOu NNUE 6.03 64ZEN2 EVAL_LEARN author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2021-06-29\engine1\source\YaneuraOu-by-gcc.exe 評価関数フォルダパ

ス=D:\hnoda\shogi\eval\tanuki-denryu-tsec-1.iteration=1.nn_batch_size=10000\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考ノード数に加える乱数(%)=0 思考ノード数の乱数を1手毎

に変化させる=False 持ち時間(ms)=900000 秒読み時間(ms)=0 加算時間(ms)=5000 乱数付き思考時間(ms)=0 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 評価値

のスケール(%)=100

思考エンジン2 name=YaneuraOu NNUE 6.03 64ZEN2 EVAL_LEARN author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2021-06-29\engine2\source\YaneuraOu-by-gcc.exe 評価関数フォルダパ

ス=D:\hnoda\tanuki-denryu-tsec-1\eval 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考ノード数に加える乱数(%)=0 思考ノード数の乱数を1手毎に変化させる=False 持ち時間(ms)=900000 秒読み

時間(ms)=0 加算時間(ms)=5000 乱数付き思考時間(ms)=0 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 評価値のスケール(%)=100

対局数2000 先手勝ち930(51.4%) 後手勝ち880(48.6%) 引き分け190

engine1

勝ち763(42.2% R-49.7 +-15.4) 先手勝ち390(21.5%) 後手勝ち373(20.6%)

宣言勝ち68 先手宣言勝ち26 後手宣言勝ち42 先手引き分け86 後手引き分け104

engine2

勝ち1047(57.8%) 先手勝ち540(29.8%) 後手勝ち507(28.0%)

宣言勝ち25 先手宣言勝ち10 後手宣言勝ち15 先手引き分け104 後手引き分け86

763,190,1047

対局数=2000 同時対局数=64 ハッシュサイズ=768 開始手数=24 最大手数=320 開始局面ファイル=D:\Jenkins\workspace\TanukiColiseum.2021-06-29\TanukiColiseum\records2016_10818.sfen NUMAノード数=2 表

示更新間隔(ms)=3600000

思考エンジン1 name=YaneuraOu NNUE 6.03 64ZEN2 EVAL_LEARN author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2021-06-29\engine1\source\YaneuraOu-by-gcc.exe 評価関数フォルダパ

ス=D:\hnoda\shogi\eval\tanuki-denryu-tsec-1.iteration=1.nn_batch_size=20000\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考ノード数に加える乱数(%)=0 思考ノード数の乱数を1手毎

に変化させる=False 持ち時間(ms)=900000 秒読み時間(ms)=0 加算時間(ms)=5000 乱数付き思考時間(ms)=0 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 評価値

のスケール(%)=100

思考エンジン2 name=YaneuraOu NNUE 6.03 64ZEN2 EVAL_LEARN author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2021-06-29\engine2\source\YaneuraOu-by-gcc.exe 評価関数フォルダパ

ス=D:\hnoda\tanuki-denryu-tsec-1\eval 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考ノード数に加える乱数(%)=0 思考ノード数の乱数を1手毎に変化させる=False 持ち時間(ms)=900000 秒読み

時間(ms)=0 加算時間(ms)=5000 乱数付き思考時間(ms)=0 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 評価値のスケール(%)=100

対局数2000 先手勝ち959(53.4%) 後手勝ち838(46.6%) 引き分け203

engine1

勝ち823(45.8% R-26.3 +-15.3) 先手勝ち438(24.4%) 後手勝ち385(21.4%)

宣言勝ち94 先手宣言勝ち53 後手宣言勝ち41 先手引き分け91 後手引き分け112

engine2

勝ち974(54.2%) 先手勝ち521(29.0%) 後手勝ち453(25.2%)

宣言勝ち17 先手宣言勝ち6 後手宣言勝ち11 先手引き分け112 後手引き分け91

823,203,974

対局数=2000 同時対局数=64 ハッシュサイズ=768 開始手数=24 最大手数=320 開始局面ファイル=D:\Jenkins\workspace\TanukiColiseum.2021-06-29\TanukiColiseum\records2016_10818.sfen NUMAノード数=2 表

示更新間隔(ms)=3600000

思考エンジン1 name=YaneuraOu NNUE 6.03 64ZEN2 EVAL_LEARN author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2021-06-29\engine1\source\YaneuraOu-by-gcc.exe 評価関数フォルダパ

ス=D:\hnoda\shogi\eval\tanuki-denryu-tsec-1.iteration=1.nn_batch_size=50000\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考ノード数に加える乱数(%)=0 思考ノード数の乱数を1手毎

に変化させる=False 持ち時間(ms)=900000 秒読み時間(ms)=0 加算時間(ms)=5000 乱数付き思考時間(ms)=0 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 評価値

のスケール(%)=100

思考エンジン2 name=YaneuraOu NNUE 6.03 64ZEN2 EVAL_LEARN author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2021-06-29\engine2\source\YaneuraOu-by-gcc.exe 評価関数フォルダパ

ス=D:\hnoda\tanuki-denryu-tsec-1\eval 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考ノード数に加える乱数(%)=0 思考ノード数の乱数を1手毎に変化させる=False 持ち時間(ms)=900000 秒読み

時間(ms)=0 加算時間(ms)=5000 乱数付き思考時間(ms)=0 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 評価値のスケール(%)=100

対局数2000 先手勝ち948(53.7%) 後手勝ち818(46.3%) 引き分け234

engine1

勝ち851(48.2% R-11.1 +-15.2) 先手勝ち462(26.2%) 後手勝ち389(22.0%)

宣言勝ち59 先手宣言勝ち29 後手宣言勝ち30 先手引き分け125 後手引き分け109

engine2

勝ち915(51.8%) 先手勝ち486(27.5%) 後手勝ち429(24.3%)

宣言勝ち28 先手宣言勝ち15 後手宣言勝ち13 先手引き分け109 後手引き分け125

851,234,915

対局数=2000 同時対局数=64 ハッシュサイズ=768 開始手数=24 最大手数=320 開始局面ファイル=D:\Jenkins\workspace\TanukiColiseum.2021-06-29\TanukiColiseum\records2016_10818.sfen NUMAノード数=2 表

示更新間隔(ms)=3600000

思考エンジン1 name=YaneuraOu NNUE 6.03 64ZEN2 EVAL_LEARN author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2021-06-29\engine1\source\YaneuraOu-by-gcc.exe 評価関数フォルダパ

ス=D:\hnoda\shogi\eval\tanuki-denryu-tsec-1.iteration=1.nn_batch_size=100000\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考ノード数に加える乱数(%)=0 思考ノード数の乱数を1手毎

に変化させる=False 持ち時間(ms)=900000 秒読み時間(ms)=0 加算時間(ms)=5000 乱数付き思考時間(ms)=0 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 評価値

のスケール(%)=100

思考エンジン2 name=YaneuraOu NNUE 6.03 64ZEN2 EVAL_LEARN author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2021-06-29\engine2\source\YaneuraOu-by-gcc.exe 評価関数フォルダパ

ス=D:\hnoda\tanuki-denryu-tsec-1\eval 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考ノード数に加える乱数(%)=0 思考ノード数の乱数を1手毎に変化させる=False 持ち時間(ms)=900000 秒読み

時間(ms)=0 加算時間(ms)=5000 乱数付き思考時間(ms)=0 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 評価値のスケール(%)=100

対局数2000 先手勝ち947(53.5%) 後手勝ち823(46.5%) 引き分け230

engine1

勝ち838(47.3% R-16.3 +-15.2) 先手勝ち450(25.4%) 後手勝ち388(21.9%)

宣言勝ち79 先手宣言勝ち55 後手宣言勝ち24 先手引き分け117 後手引き分け113

engine2

勝ち932(52.7%) 先手勝ち497(28.1%) 後手勝ち435(24.6%)

宣言勝ち33 先手宣言勝ち16 後手宣言勝ち17 先手引き分け113 後手引き分け117

838,230,932

まとめ

機械学習時に nn_batch_size を調整し、自己対局によりレーティングを計測した。自己対局の初期局面として、やねうら王互換局面集を使用した。

自己対局の結果、たややん互換局面集を使用した場合と同様、 tanuki-denryu-tsec-1 に勝ち越したパラメーターは無かった。また、 nn_batch_size が高いほうが勝率は高かった。

tanuki-denryu-tsec-1 に勝ち越したパラメーターがなかった理由は、互換局面集の特性から来るものではないとではないと考えられる。