tanuki- 2021-07-10 思考ノード数調整

tanuki- 2021-07-10 思考ノード数調整

実験内容

  • 棋譜生成時の思考ノード数を、自動調整した場合としない場合を比較する

棋譜生成

生成ルーチン 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
開始局面 たややん互換局面集

実験結果

機械学習

自己対局

17:36:38 対局数=2000 同時対局数=64 ハッシュサイズ=768 開始手数=24 最大手数=320 開始局面ファイル=D:\Jenkins\workspace\TanukiColiseum.2021-05-09\TanukiColiseum\taya36_2020-11-06.sfen NUMAノード数=2 表示更新間隔(ms)=3600000

17:36:38 思考エンジン1 name=YaneuraOu NNUE 6.03 64ZEN2 EVAL_LEARN author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2021-05-09\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

17:36:38 思考エンジン2 name=YaneuraOu NNUE 6.03 64ZEN2 EVAL_LEARN author=by yaneurao exeファイル=D:\Jenkins\workspace\TanukiColiseum.2021-05-09\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

17:36:38 対局数2000 先手勝ち926(54.6%) 後手勝ち771(45.4%) 引き分け303

17:36:38 engine1

17:36:38 勝ち660(38.9% R-66.3 +-15.5) 先手勝ち360(21.2%) 後手勝ち300(17.7%)

17:36:38 宣言勝ち88 先手宣言勝ち54 後手宣言勝ち34 先手引き分け135 後手引き分け168

17:36:38 engine2

17:36:38 勝ち1037(61.1%) 先手勝ち566(33.4%) 後手勝ち471(27.8%)

17:36:38 宣言勝ち28 先手宣言勝ち16 後手宣言勝ち12 先手引き分け168 後手引き分け135

17:36:38 660,303,1037

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

06:18:23 思考エンジン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.GeneratorAdjustNodesLimit=false\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考ノード数に加える乱数(%)=0 思考ノード数の乱数を1手毎に変化させる=False 持ち時間(ms)=900000 秒読み時間(ms)=0 加算時間(ms)=5000 乱数付き思考時間(ms)=0 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false 評価値のスケール(%)=100

06:18:23 思考エンジン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

06:18:23 対局数2000 先手勝ち914(50.9%) 後手勝ち881(49.1%) 引き分け205

06:18:23 engine1

06:18:23 勝ち801(44.6% R-33.6 +-15.3) 先手勝ち409(22.8%) 後手勝ち392(21.8%)

06:18:23 宣言勝ち64 先手宣言勝ち29 後手宣言勝ち35 先手引き分け102 後手引き分け103

06:18:23 engine2

06:18:23 勝ち994(55.4%) 先手勝ち505(28.1%) 後手勝ち489(27.2%)

06:18:23 宣言勝ち17 先手宣言勝ち2 後手宣言勝ち15 先手引き分け103 後手引き分け102

06:18:23 801,205,994

まとめ

棋譜生成時の思考ノード数を、やねうら王の反復深化ルーチンに実装されている時間調整手法を応用して、自動調整した場合と、していない場合を比較した。

実験結果を確認したところ、自動調整の有無以外に、 eta の値も異なっており、公平な比較を行うことができなかった。また、いずれもレーティングが下がっており、判断の材料としては不適切だと思われる。レーティングが向上する実験条件を作り、その中で自動調整した場合としていない場合を比較すべきだと思われる。