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

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

tanuki- 2020-11-30 halfkp_256x2-32-32 Weighted Loss

tanuki- 2020-11-30 halfkp_256x2-32-32 Weighted Loss

棋譜生成

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

機械学習

機械学習ルーチン やねうら王機械学習ルーチン
学習モデル halfkp_256x2-32-32
学習手法 SGD ミニバッチ法
USI_Hash 16
Threads 16
loop 100
batchsize 1000000
lambda 0.5
eta 0.01・0.1・0.2・0.5・1.0・2.0・5.0・10.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・左右対称
学習データ内で重複した局面の除外 しない
初期ネットワークパラメーター tanuki-wcsc29

レーティング測定

対局相手 水匠2
思考ノード数 3秒
対局数 1000
同時対局数 40
ハッシュサイズ 1024/768
開始局面 平手 たややん互角局面集 12・24・36手目

実験結果

Weighted Lossあり

機械学習

レーティング測定1

  • 対 水匠2評価関数
  • 平手から
  • 1手3秒
  • 1000対局

パラメーター 結果
eta=0.01 対局数=1000 同時対局数=44 ハッシュサイズ=1024 開始手数=0 開始局面ファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\TanukiColiseum\taya36_2020-11-06.sfen NUMAノード数=2 表示更新間隔(ms)=3600000 思考エンジン1 name=YaneuraOu NNUE 5.32 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine1\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\halfkp_256x2-32-32.weight_by_progress=1.eta=0.01\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 思考エンジン2 name=YaneuraOu NNUE 5.32 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine2\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\suisho-wcsoc2020\eval 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 対局数1000 先手勝ち495(53.2%) 後手勝ち436(46.8%) 引き分け69 engine1 勝ち337(36.2% R-91.3 +-22.3) 先手勝ち189(20.3%) 後手勝ち148(15.9%) 宣言勝ち3 先手宣言勝ち0 後手宣言勝ち3 先手引き分け33 後手引き分け36 engine2 勝ち594(63.8%) 先手勝ち306(32.9%) 後手勝ち288(30.9%) 宣言勝ち23 先手宣言勝ち12 後手宣言勝ち11 先手引き分け36 後手引き分け33 337,69,594
eta=0.10 対局数=1000 同時対局数=44 ハッシュサイズ=1024 開始手数=0 開始局面ファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\TanukiColiseum\taya36_2020-11-06.sfen NUMAノード数=2 表示更新間隔(ms)=3600000 思考エンジン1 name=YaneuraOu NNUE 5.32 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine1\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\halfkp_256x2-32-32.weight_by_progress=1.eta=0.10\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 思考エンジン2 name=YaneuraOu NNUE 5.32 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine2\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\suisho-wcsoc2020\eval 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 対局数1000 先手勝ち556(59.0%) 後手勝ち386(41.0%) 引き分け58 engine1 勝ち381(40.4% R-63.2 +-21.9) 先手勝ち236(25.1%) 後手勝ち145(15.4%) 宣言勝ち4 先手宣言勝ち3 後手宣言勝ち1 先手引き分け20 後手引き分け38 engine2 勝ち561(59.6%) 先手勝ち320(34.0%) 後手勝ち241(25.6%) 宣言勝ち23 先手宣言勝ち12 後手宣言勝ち11 先手引き分け38 後手引き分け20 381,58,561
eta=0.20 対局数=1000 同時対局数=44 ハッシュサイズ=1024 開始手数=0 開始局面ファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\TanukiColiseum\taya36_2020-11-06.sfen NUMAノード数=2 表示更新間隔(ms)=3600000 思考エンジン1 name=YaneuraOu NNUE 5.32 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine1\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\halfkp_256x2-32-32.weight_by_progress=1.eta=0.20\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 思考エンジン2 name=YaneuraOu NNUE 5.32 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine2\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\suisho-wcsoc2020\eval 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 対局数1000 先手勝ち499(53.9%) 後手勝ち427(46.1%) 引き分け74 engine1 勝ち417(45.0% R-32.1 +-21.6) 先手勝ち232(25.1%) 後手勝ち185(20.0%) 宣言勝ち4 先手宣言勝ち1 後手宣言勝ち3 先手引き分け35 後手引き分け39 engine2 勝ち509(55.0%) 先手勝ち267(28.8%) 後手勝ち242(26.1%) 宣言勝ち14 先手宣言勝ち6 後手宣言勝ち8 先手引き分け39 後手引き分け35 417,74,509
eta=0.50 対局数=1000 同時対局数=40 ハッシュサイズ=1024 開始手数=0 開始局面ファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\TanukiColiseum\taya36_2020-11-06.sfen NUMAノード数=2 表示更新間隔(ms)=3600000 思考エンジン1 name=YaneuraOu NNUE 5.32 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine1\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\halfkp_256x2-32-32.weight_by_progress=1.eta=0.50\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 思考エンジン2 name=YaneuraOu NNUE 5.32 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine2\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\suisho-wcsoc2020\eval 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 対局数1000 先手勝ち527(55.9%) 後手勝ち416(44.1%) 引き分け57 engine1 勝ち451(47.8% R-14.3 +-21.6) 先手勝ち260(27.6%) 後手勝ち191(20.3%) 宣言勝ち3 先手宣言勝ち1 後手宣言勝ち2 先手引き分け28 後手引き分け29 engine2 勝ち492(52.2%) 先手勝ち267(28.3%) 後手勝ち225(23.9%) 宣言勝ち18 先手宣言勝ち10 後手宣言勝ち8 先手引き分け29 後手引き分け28 451,57,492
eta=1.00 対局数=1000 同時対局数=40 ハッシュサイズ=1024 開始手数=0 開始局面ファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\TanukiColiseum\taya36_2020-11-06.sfen NUMAノード数=2 表示更新間隔(ms)=3600000 思考エンジン1 name=YaneuraOu NNUE 5.32 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine1\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\halfkp_256x2-32-32.weight_by_progress=1.eta=1.00\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 思考エンジン2 name=YaneuraOu NNUE 5.32 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine2\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\suisho-wcsoc2020\eval 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 対局数1000 先手勝ち567(59.6%) 後手勝ち384(40.4%) 引き分け49 engine1 勝ち467(49.1% R-5.9 +-21.6) 先手勝ち286(30.1%) 後手勝ち181(19.0%) 宣言勝ち3 先手宣言勝ち3 後手宣言勝ち0 先手引き分け24 後手引き分け25 engine2 勝ち484(50.9%) 先手勝ち281(29.5%) 後手勝ち203(21.3%) 宣言勝ち28 先手宣言勝ち15 後手宣言勝ち13 先手引き分け25 後手引き分け24 467,49,484
eta=2.00 対局数=1000 同時対局数=40 ハッシュサイズ=1024 開始手数=0 開始局面ファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\TanukiColiseum\taya36_2020-11-06.sfen NUMAノード数=2 表示更新間隔(ms)=3600000 思考エンジン1 name=YaneuraOu NNUE 5.33 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine1\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\halfkp_256x2-32-32.weight_by_progress=1.eta=2.00\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 思考エンジン2 name=YaneuraOu NNUE 5.33 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine2\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\suisho-wcsoc2020\eval 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 対局数1000 先手勝ち533(56.3%) 後手勝ち413(43.7%) 引き分け54 engine1 勝ち413(43.7% R-41.9 +-21.7) 先手勝ち243(25.7%) 後手勝ち170(18.0%) 宣言勝ち2 先手宣言勝ち0 後手宣言勝ち2 先手引き分け27 後手引き分け27 engine2 勝ち533(56.3%) 先手勝ち290(30.7%) 後手勝ち243(25.7%) 宣言勝ち34 先手宣言勝ち19 後手宣言勝ち15 先手引き分け27 後手引き分け27 413,54,533
eta=5.00 対局数=1000 同時対局数=40 ハッシュサイズ=1024 開始手数=0 開始局面ファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\TanukiColiseum\taya36_2020-11-06.sfen NUMAノード数=2 表示更新間隔(ms)=3600000 思考エンジン1 name=YaneuraOu NNUE 5.33 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine1\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\halfkp_256x2-32-32.weight_by_progress=1.eta=5.00\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 思考エンジン2 name=YaneuraOu NNUE 5.33 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine2\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\suisho-wcsoc2020\eval 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 対局数1000 先手勝ち548(58.4%) 後手勝ち390(41.6%) 引き分け62 engine1 勝ち428(45.6% R-28.6 +-21.6) 先手勝ち252(26.9%) 後手勝ち176(18.8%) 宣言勝ち1 先手宣言勝ち0 後手宣言勝ち1 先手引き分け17 後手引き分け45 engine2 勝ち510(54.4%) 先手勝ち296(31.6%) 後手勝ち214(22.8%) 宣言勝ち34 先手宣言勝ち15 後手宣言勝ち19 先手引き分け45 後手引き分け17 428,62,510
eta=10.00 対局数=1000 同時対局数=40 ハッシュサイズ=1024 開始手数=0 開始局面ファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\TanukiColiseum\taya36_2020-11-06.sfen NUMAノード数=2 表示更新間隔(ms)=3600000 思考エンジン1 name=YaneuraOu NNUE 5.33 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine1\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\halfkp_256x2-32-32.weight_by_progress=1.eta=10.00\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 思考エンジン2 name=YaneuraOu NNUE 5.33 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine2\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\suisho-wcsoc2020\eval 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 対局数1000 先手勝ち537(56.1%) 後手勝ち421(43.9%) 引き分け42 engine1 勝ち346(36.1% R-94.7 +-22.4) 先手勝ち208(21.7%) 後手勝ち138(14.4%) 宣言勝ち3 先手宣言勝ち2 後手宣言勝ち1 先手引き分け22 後手引き分け20 engine2 勝ち612(63.9%) 先手勝ち329(34.3%) 後手勝ち283(29.5%) 宣言勝ち14 先手宣言勝ち6 後手宣言勝ち8 先手引き分け20 後手引き分け22 346,42,612

横軸:eta 縦軸:レーティング

レーティング測定2

  • 対 水匠2評価関数
  • たややん互換局面集0・12・24・36手目から
  • 1手3秒
  • 1000対局

パラメーター 結果
0手目から 対局数=1000 同時対局数=40 ハッシュサイズ=1024 開始手数=0 開始局面ファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\TanukiColiseum\taya36_2020-11-06.sfen NUMAノード数=2 表示更新間隔(ms)=3600000 思考エンジン1 name=YaneuraOu NNUE 5.32 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine1\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\halfkp_256x2-32-32.weight_by_progress=1.eta=1.00\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 思考エンジン2 name=YaneuraOu NNUE 5.32 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine2\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\suisho-wcsoc2020\eval 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 対局数1000 先手勝ち567(59.6%) 後手勝ち384(40.4%) 引き分け49 engine1 勝ち467(49.1% R-5.9 +-21.6) 先手勝ち286(30.1%) 後手勝ち181(19.0%) 宣言勝ち3 先手宣言勝ち3 後手宣言勝ち0 先手引き分け24 後手引き分け25 engine2 勝ち484(50.9%) 先手勝ち281(29.5%) 後手勝ち203(21.3%) 宣言勝ち28 先手宣言勝ち15 後手宣言勝ち13 先手引き分け25 後手引き分け24 467,49,484
12手目から 対局数=1000 同時対局数=64 ハッシュサイズ=768 開始手数=12 開始局面ファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\TanukiColiseum\taya36_2020-11-06.sfen NUMAノード数=2 表示更新間隔(ms)=3600000 思考エンジン1 name=YaneuraOu NNUE 5.33 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine1\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\halfkp_256x2-32-32.weight_by_progress=1.eta=1.00\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 思考エンジン2 name=YaneuraOu NNUE 5.33 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine2\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\suisho-wcsoc2020\eval 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 対局数1000 先手勝ち514(55.6%) 後手勝ち411(44.4%) 引き分け75 engine1 勝ち490(53.0% R19.1 +-21.6) 先手勝ち280(30.3%) 後手勝ち210(22.7%) 宣言勝ち4 先手宣言勝ち2 後手宣言勝ち2 先手引き分け43 後手引き分け32 engine2 勝ち435(47.0%) 先手勝ち234(25.3%) 後手勝ち201(21.7%) 宣言勝ち32 先手宣言勝ち19 後手宣言勝ち13 先手引き分け32 後手引き分け43 490,75,435
24手目から 対局数=1000 同時対局数=64 ハッシュサイズ=768 開始手数=24 開始局面ファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\TanukiColiseum\taya36_2020-11-06.sfen NUMAノード数=2 表示更新間隔(ms)=3600000 思考エンジン1 name=YaneuraOu NNUE 5.33 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine1\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\halfkp_256x2-32-32.weight_by_progress=1.eta=1.00\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 思考エンジン2 name=YaneuraOu NNUE 5.33 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine2\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\suisho-wcsoc2020\eval 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 対局数1000 先手勝ち484(53.2%) 後手勝ち426(46.8%) 引き分け90 engine1 勝ち462(50.8% R4.9 +-21.6) 先手勝ち254(27.9%) 後手勝ち208(22.9%) 宣言勝ち3 先手宣言勝ち2 後手宣言勝ち1 先手引き分け49 後手引き分け41 engine2 勝ち448(49.2%) 先手勝ち230(25.3%) 後手勝ち218(24.0%) 宣言勝ち29 先手宣言勝ち16 後手宣言勝ち13 先手引き分け41 後手引き分け49 462,90,448
36手目から 対局数=1000 同時対局数=64 ハッシュサイズ=768 開始手数=36 開始局面ファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\TanukiColiseum\taya36_2020-11-06.sfen NUMAノード数=2 表示更新間隔(ms)=3600000 思考エンジン1 name=YaneuraOu NNUE 5.40 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine1\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\halfkp_256x2-32-32.weight_by_progress=1.eta=1.00\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 思考エンジン2 name=YaneuraOu NNUE 5.40 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine2\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\suisho-wcsoc2020\eval 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 対局数1000 先手勝ち439(49.4%) 後手勝ち450(50.6%) 引き分け111 engine1 勝ち471(53.0% R18.4 +-21.6) 先手勝ち234(26.3%) 後手勝ち237(26.7%) 宣言勝ち5 先手宣言勝ち4 後手宣言勝ち1 先手引き分け44 後手引き分け67 engine2 勝ち418(47.0%) 先手勝ち205(23.1%) 後手勝ち213(24.0%) 宣言勝ち37 先手宣言勝ち17 後手宣言勝ち20 先手引き分け67 後手引き分け44 471,111,418

横軸:開始手数 縦軸:レーティング差

Weighted Loss あり vs Weighted Loss なし

機械学習

レーティング測定

  • Weighted Lossありで学習した評価関数とWeighted Lossなしで学習した評価関数の対局
  • たややん互換局面集0・12・24・36手目から
  • 1手3秒
  • 1000対局

パラメーター 結果
0手目から 対局数=1000 同時対局数=64 ハッシュサイズ=768 開始手数=0 開始局面ファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\TanukiColiseum\taya36_2020-11-06.sfen NUMAノード数=2 表示更新間隔(ms)=3600000 思考エンジン1 name=YaneuraOu NNUE 5.40 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine1\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\halfkp_256x2-32-32.weight_by_progress=1.eta=1.00\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 思考エンジン2 name=YaneuraOu NNUE 5.40 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine2\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\halfkp_256x2-32-32.weight_by_progress=0\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 対局数1000 先手勝ち519(57.2%) 後手勝ち389(42.8%) 引き分け92 engine1 勝ち530(58.4% R53.2 +-21.8) 先手勝ち306(33.7%) 後手勝ち224(24.7%) 宣言勝ち6 先手宣言勝ち1 後手宣言勝ち5 先手引き分け49 後手引き分け43 engine2 勝ち378(41.6%) 先手勝ち213(23.5%) 後手勝ち165(18.2%) 宣言勝ち11 先手宣言勝ち5 後手宣言勝ち6 先手引き分け43 後手引き分け49 530,92,378
12手目から 対局数=1000 同時対局数=64 ハッシュサイズ=768 開始手数=12 開始局面ファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\TanukiColiseum\taya36_2020-11-06.sfen NUMAノード数=2 表示更新間隔(ms)=3600000 思考エンジン1 name=YaneuraOu NNUE 5.40 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine1\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\halfkp_256x2-32-32.weight_by_progress=1.eta=1.00\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 思考エンジン2 name=YaneuraOu NNUE 5.40 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine2\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\halfkp_256x2-32-32.weight_by_progress=0\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 対局数1000 先手勝ち477(53.1%) 後手勝ち421(46.9%) 引き分け102 engine1 勝ち508(56.6% R41.2 +-21.7) 先手勝ち274(30.5%) 後手勝ち234(26.1%) 宣言勝ち11 先手宣言勝ち5 後手宣言勝ち6 先手引き分け49 後手引き分け53 engine2 勝ち390(43.4%) 先手勝ち203(22.6%) 後手勝ち187(20.8%) 宣言勝ち15 先手宣言勝ち7 後手宣言勝ち8 先手引き分け53 後手引き分け49 508,102,390
24手目から 対局数=1000 同時対局数=64 ハッシュサイズ=768 開始手数=24 開始局面ファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\TanukiColiseum\taya36_2020-11-06.sfen NUMAノード数=2 表示更新間隔(ms)=3600000 思考エンジン1 name=YaneuraOu NNUE 5.40 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine1\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\halfkp_256x2-32-32.weight_by_progress=1.eta=1.00\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 思考エンジン2 name=YaneuraOu NNUE 5.40 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine2\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\halfkp_256x2-32-32.weight_by_progress=0\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 対局数1000 先手勝ち483(53.6%) 後手勝ち418(46.4%) 引き分け99 engine1 勝ち509(56.5% R40.8 +-21.7) 先手勝ち278(30.9%) 後手勝ち231(25.6%) 宣言勝ち10 先手宣言勝ち4 後手宣言勝ち6 先手引き分け52 後手引き分け47 engine2 勝ち392(43.5%) 先手勝ち205(22.8%) 後手勝ち187(20.8%) 宣言勝ち27 先手宣言勝ち10 後手宣言勝ち17 先手引き分け47 後手引き分け52 509,99,392
36手目から 対局数=1000 同時対局数=64 ハッシュサイズ=768 開始手数=36 開始局面ファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\TanukiColiseum\taya36_2020-11-06.sfen NUMAノード数=2 表示更新間隔(ms)=3600000 思考エンジン1 name=YaneuraOu NNUE 5.40 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine1\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\halfkp_256x2-32-32.weight_by_progress=1.eta=1.00\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 思考エンジン2 name=YaneuraOu NNUE 5.40 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2020-09-10\engine2\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\halfkp_256x2-32-32.weight_by_progress=0\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考時間(ms)=3000 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 対局数1000 先手勝ち515(57.3%) 後手勝ち383(42.7%) 引き分け102 engine1 勝ち462(51.4% R9.0 +-21.6) 先手勝ち272(30.3%) 後手勝ち190(21.2%) 宣言勝ち11 先手宣言勝ち4 後手宣言勝ち7 先手引き分け54 後手引き分け48 engine2 勝ち436(48.6%) 先手勝ち243(27.1%) 後手勝ち193(21.5%) 宣言勝ち17 先手宣言勝ち7 後手宣言勝ち10 先手引き分け48 後手引き分け54 462,102,436

考察

1つ目の実験では、Weighted Lossで機械学習を行うにあたり、最適な学習率を求めました。求める方法は、いくつかの学習率を用いて評価関数を学習させ、水匠2評価関数と対局させ、レーティングが最も高かったものを採用するというものです。

実験の結果、eta=1.0が最もレーティングが高くなりました。

これは、Weighted Lossにより、学習データ中の序中盤の重みが高くなり、それらに付けられている評価値が小さく、全体的な勾配が小さくなり、学習率を上げないとロスが下がりにくかったためだと考えられます。

2つ目の実験では、Weighted Lossあり、eta=1.0で学習させた評価関数と水匠2評価関数を、開始局面の手数を変化させながら対局させました。

実験の結果、水匠2とのレーティングの有意差はなしとなりました。

これより、今回学習した評価関数が、水匠2と同程度の強さを持つという事が分かりました。

3つ目の実験では、Weighted Lossあり、eta=1.0で学習させた評価関数と、Weighted Lossなし、eta=0.01で学習させた評価関数を、開始局面の手数を変化させながら対局させました。

結果、初手・12手目・24手目から開始させた場合、Weighted Lossありのほうが優位に強いという結果となりました。一方36手目から対局を開始した場合、有意差がありませんでした。

これより、Weighted Lossにより、序中盤の評価の精度が向上する事が分かりました。