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

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

tanuki- 2022-05-06 s-book_black レーティング測定

tanuki- 2022-05-06 s-book_black レーティング測定

実験内容

  • s-book_black のレーティングを測定した

レーティング測定

対局相手
思考時間 持ち時間 300 秒 + 1 手 2 秒加算
対局数 2000
同時対局数 64
ハッシュサイズ 640
開始局面 平手局面

実験結果

レーティング測定

s-book_black vs 定跡なし

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

思考エンジン1 name=YaneuraOu NNUE 7.10 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=C:\Jenkins\workspace\TanukiColiseum.2022-05-02\engine1\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\halfkp_1024x2-8-32\final 定跡手数=256 定跡ファイル名=s-book_black.db 思考ノード数=0 思考ノード数に加える乱数(%)=0 思考ノード数の乱数を1手毎に変化させる=False 持ち時間(ms)=300000 秒読み時間(ms)=0 加算時間(ms)=2000 乱数付き思考時間(ms)=0 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false SlowMover=100 DrawValue=-2 BookEvalBlackLimit=0 BookEvalWhiteLimit=-140 FVScale1=16

思考エンジン2 name=YaneuraOu NNUE 7.10 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=C:\Jenkins\workspace\TanukiColiseum.2022-05-02\engine2\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\halfkp_1024x2-8-32\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考ノード数に加える乱数(%)=0 思考ノード数の乱数を1手毎に変化させる=False 持ち時間(ms)=300000 秒読み時間(ms)=0 加算時間(ms)=2000 乱数付き思考時間(ms)=0 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=true 定跡の手数を無視する=false SlowMover=100 DrawValue=-2 BookEvalBlackLimit=0 BookEvalWhiteLimit=-140 FVScale2=16

対局数2000 先手勝ち972(59.1%) 後手勝ち672(40.9%) 引き分け356

engine1

勝ち875(53.2% R18.4 +-15.3) 先手勝ち507(30.8%) 後手勝ち368(22.4%)

宣言勝ち37 先手宣言勝ち19 後手宣言勝ち18 先手引き分け187 後手引き分け169

engine2

勝ち769(46.8%) 先手勝ち465(28.3%) 後手勝ち304(18.5%)

宣言勝ち26 先手宣言勝ち10 後手宣言勝ち16 先手引き分け169 後手引き分け187

875,356,769

s-book_black vs tanuki-wcsc32 定跡

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

思考エンジン1 name=YaneuraOu NNUE 7.10 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=C:\Jenkins\workspace\TanukiColiseum.2022-05-02\engine1\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\halfkp_1024x2-8-32\final 定跡手数=256 定跡ファイル名=s-book_black.db 思考ノード数=0 思考ノード数に加える乱数(%)=0 思考ノード数の乱数を1手毎に変化させる=False 持ち時間(ms)=300000 秒読み時間(ms)=0 加算時間(ms)=2000 乱数付き思考時間(ms)=0 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false SlowMover=100 DrawValue=-2 BookEvalBlackLimit=0 BookEvalWhiteLimit=-140 FVScale1=16

思考エンジン2 name=YaneuraOu NNUE 7.10 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=C:\Jenkins\workspace\TanukiColiseum.2022-05-02\engine2\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\halfkp_1024x2-8-32\final 定跡手数=256 定跡ファイル名=tanuki-wcsc32.2022-05-01.db 思考ノード数=0 思考ノード数に加える乱数(%)=0 思考ノード数の乱数を1手毎に変化させる=False 持ち時間(ms)=300000 秒読み時間(ms)=0 加算時間(ms)=2000 乱数付き思考時間(ms)=0 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=true 定跡の手数を無視する=false SlowMover=100 DrawValue=-2 BookEvalBlackLimit=0 BookEvalWhiteLimit=-140 FVScale2=16

対局数2000 先手勝ち977(57.3%) 後手勝ち727(42.7%) 引き分け296

engine1

勝ち726(42.6% R-44.0 +-15.4) 先手勝ち411(24.1%) 後手勝ち315(18.5%)

宣言勝ち33 先手宣言勝ち21 後手宣言勝ち12 先手引き分け177 後手引き分け119

engine2

勝ち978(57.4%) 先手勝ち566(33.2%) 後手勝ち412(24.2%)

宣言勝ち28 先手宣言勝ち16 後手宣言勝ち12 先手引き分け119 後手引き分け177

726,296,978

まとめ

s-book_black のレーティングを測定した

s-book_black と定跡なしを比較した結果、 s-book_black のほうが R18 程度高かった。

s-book_black と tanuki-wcsc32 定跡を比較した結果、 s-book_black のほうが R44 程度低かった。

本結果は、他の測定者による結果と大きく異なっている。原因として、使用した評価関数が、ランダムパラメーターから新たに学習したものであり、 s-book_black が得意としている評価関数ではなかったためだと思われる。今回使用した評価関数および tanuki-wcsc32 を新たに対象として s-book_black を調整することにより、レーティングを向上させることができる可能性がある。

tanuki- 2022-04-28 halfkp_1024x2-8-32

tanuki- 2022-04-28 halfkp_1024x2-8-32

実験内容

  • ネットワーク構成を halfkp_1024x2-8-32 に変更した場合に、レーティングに変化があるかどうか調べる。

棋譜生成

生成ルーチン tanuki-棋譜生成ルーチン
評価関数 水匠5 FV_SCALE=16
1手あたりの思考 深さ最大 9 思考ノード数最大 50,000 ノード
開始局面 foodgate の 2020 年~ 2021 年の棋譜のうち、レーティング 3900 以上同士の対局の 32 手目までから 1 局面ランダムに選択し、その局面を開始局面とした ランダムムーブなし
生成局面数 10 億局面 × 8 セット
生成条件 対局は打ち切らず詰みの局面まで学習データに出力した

機械学習

機械学習ルーチン やねうら王機械学習ルーチン
学習モデル halfkp_1024x2-8-32
学習手法 SGD ミニバッチ法
USI_Hash 1024
Threads 32
loop 100
batchsize 1000000
lambda 0.5
eta eta1=1e-8 eta2=1.0 eta1_epoch=1000
newbob_decay 0.5
nn_batch_size 1000
eval_save_interval 500000000
loss_output_interval 1000000
mirror_percentage 50
eval_limit 32000
weight_by_progress 無効
次元下げ K・P・相対KP
学習データ内で重複した局面の除外 しない
初期ネットワークパラメーター ランダム
勝敗項の教師信号 0.80

レーティング測定

対局相手
思考時間 持ち時間 300 秒 + 1 手 2 秒加算
対局数 5000
同時対局数 64
ハッシュサイズ 768
開始局面 たややん互換局面集

実験結果

機械学習

レーティング測定

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

思考エンジン1 name=YaneuraOu NNUE 7.10 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=C:\Jenkins\workspace\TanukiColiseum.2021-09-05\engine1\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\halfkp_1024x2-8-32\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考ノード数に加える乱数(%)=0 思考ノード数の乱数を1手毎に変化させる=False 持ち時間(ms)=300000 秒読み時間(ms)=0 加算時間(ms)=2000 乱数付き思考時間(ms)=0 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false SlowMover=100 DrawValue=-2 BookEvalBlackLimit=0 BookEvalWhiteLimit=-140

思考エンジン2 name=YaneuraOu NNUE 7.10 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=C:\Jenkins\workspace\TanukiColiseum.2021-09-05\engine2\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\suisho5.halfkp_256x2-32-32.80G\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考ノード数に加える乱数(%)=0 思考ノード数の乱数を1手毎に変化させる=False 持ち時間(ms)=300000 秒読み時間(ms)=0 加算時間(ms)=2000 乱数付き思考時間(ms)=0 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false SlowMover=100 DrawValue=-2 BookEvalBlackLimit=0 BookEvalWhiteLimit=-140

対局数5000 先手勝ち2306(53.5%) 後手勝ち2003(46.5%) 引き分け691

engine1

勝ち2127(49.4% R-3.8 +-9.6) 先手勝ち1151(26.7%) 後手勝ち976(22.7%)

宣言勝ち5 先手宣言勝ち2 後手宣言勝ち3 先手引き分け321 後手引き分け370

engine2

勝ち2182(50.6%) 先手勝ち1155(26.8%) 後手勝ち1027(23.8%)

宣言勝ち115 先手宣言勝ち54 後手宣言勝ち61 先手引き分け370 後手引き分け321

2127,691,2182

まとめ

ネットワーク構成を halfkp_1024x2-8-32 に変更した場合に、レーティングに変化があるかどうか調べた。

学習ロスと検証ロスは、 halfkp_1024x2-8-32 のほうが小さかった。

平手局面の評価値は、大きな差はなかった。

評価値の絶対値は、大きな差はなかった。

レーティングは、 有意な差はなかった。

学習ロスと検証ロスについては、 halfkp_1024x2-8-32 が、より表現力が高いという事を表しているのだと思われる。

平手局面の評価値については、学習に大きな問題が起きていない事を表している。

評価値の絶対値については、同じ学習データを使用しているため、大きな差がなかったのだと思われる。

レーティングについて、表現力は上がったものの、 nps は下がっており、トータルでみて同じくらいになってしまったのだと思われる。

TODO(nodchip): nps を計測する。

ランダムパラメーターからの学習で、手元の最も強い評価関数と同等の強さの物を作れたのは良いことだと思われる。次は強化学習を行いたい。

tanuki- 2022-04-10 学習データ量 再実験2

tanuki- 2022-04-01 halfkp_256x2-32-32 再実験

実験内容

  • 学習データ量を 40 億局面から 80 億局面に増やした場合に、レーティングに変化があるかどうか調べた。

棋譜生成

生成ルーチン tanuki-棋譜生成ルーチン
評価関数 水匠5 FV_SCALE=16
1手あたりの思考 深さ最大 9 思考ノード数最大 50,000 ノード
開始局面 foodgate の 2020 年~ 2021 年の棋譜のうち、レーティング 3900 以上同士の対局の 32 手目までから 1 局面ランダムに選択し、その局面を開始局面とした ランダムムーブなし
生成局面数 10 億局面 × 8 セット
生成条件 対局は打ち切らず詰みの局面まで学習データに出力した

機械学習

機械学習ルーチン やねうら王機械学習ルーチン
学習モデル halfkp_256x2-32-32
学習手法 SGD ミニバッチ法
USI_Hash 1024
Threads 16
loop 100
batchsize 1000000
lambda 0.5
eta eta1=1e-8 eta2=1.0 eta1_epoch=100
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 無効
次元下げ なし
学習データ内で重複した局面の除外 しない
初期ネットワークパラメーター tanuki-wcsc29
勝敗項の教師信号 0.80

レーティング測定

対局相手
思考時間 持ち時間 300 秒 + 1 手 2 秒加算
対局数 5000
同時対局数 64
ハッシュサイズ 768
開始局面 たややん互換局面集

実験結果

機械学習

レーティング測定

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

思考エンジン1 name=YaneuraOu NNUE 7.00 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=C:\Jenkins\workspace\TanukiColiseum.2021-09-05\engine1\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\suisho5.halfkp_256x2-32-32.80G\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考ノード数に加える乱数(%)=0 思考ノード数の乱数を1手毎に変化させる=False 持ち時間(ms)=300000 秒読み時間(ms)=0 加算時間(ms)=2000 乱数付き思考時間(ms)=0 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false SlowMover=100 DrawValue=-2 BookEvalBlackLimit=0 BookEvalWhiteLimit=-140

思考エンジン2 name=YaneuraOu NNUE 7.00 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=C:\Jenkins\workspace\TanukiColiseum.2021-09-05\engine2\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\suisho5.halfkp_256x2-32-32\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考ノード数に加える乱数(%)=0 思考ノード数の乱数を1手毎に変化させる=False 持ち時間(ms)=300000 秒読み時間(ms)=0 加算時間(ms)=2000 乱数付き思考時間(ms)=0 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false SlowMover=100 DrawValue=-2 BookEvalBlackLimit=0 BookEvalWhiteLimit=-140

対局数5000 先手勝ち2193(52.7%) 後手勝ち1965(47.3%) 引き分け842

engine1

勝ち2108(50.7% R4.0 +-9.6) 先手勝ち1098(26.4%) 後手勝ち1010(24.3%)

宣言勝ち112 先手宣言勝ち53 後手宣言勝ち59 先手引き分け442 後手引き分け400

engine2

勝ち2050(49.3%) 先手勝ち1095(26.3%) 後手勝ち955(23.0%)

宣言勝ち111 先手宣言勝ち50 後手宣言勝ち61 先手引き分け400 後手引き分け442

2108,842,2050

まとめ

学習データ量を 40 億局面から 80 億局面に増やした場合に、レーティングに変化があるかどうか調べた。

学習ロスは、 80 億局面のほうが大きかった。

検証ロスは、 80 億局面のほうが小さかった。

学習の収束までのデータ量は、 80 億局面のほうが少なかった。

平手局面の評価値は、大きな差はなかった。

評価値の絶対値は、大きな差はなかった。

レーティングは、 80 億局面のほうが高かったが、有意な差はなかった。

学習ロスと検証ロスについては、 80 億局面のほうが、より過学習しにくいという事を表しているのだと思われる。

学習の収束までのデータ量については、理由が分からない。

平手局面の評価値については、学習に大きな問題が起きていない事を表している。

評価値の絶対値については、同じ学習データを使用しているため、大きな差がなかったのだと思われる。

レーティングについては、 halfkp_256x2-32-32 では、 40 億局面程度でレーティングが頭打ちになるという事なのだと思われる。

halfkp_256x2-32-32 では、 40 億局面程度で、レーティングが頭打ちになる事が分かった。次は、標準 NNUE 以外のネットワークアーキテクチャに対して、学習を行っていきたい。

tanuki- 2022-04-01 halfkp_256x2-32-32 再実験

tanuki- 2022-04-01 halfkp_256x2-32-32 再実験

実験内容

  • ネットワーク構成を halfkp_256x2-32-32 (標準 NNUE) に戻し、レーティングに変化があるかどうか調べる。

棋譜生成

生成ルーチン tanuki-棋譜生成ルーチン
評価関数 水匠5 FV_SCALE=16
1手あたりの思考 深さ最大 9 思考ノード数最大 50,000 ノード
開始局面 foodgate の 2020 年~ 2021 年の棋譜のうち、レーティング 3900 以上同士の対局の 32 手目までから 1 局面ランダムに選択し、その局面を開始局面とした ランダムムーブなし
生成局面数 10 億局面 × 4 セット
生成条件 対局は打ち切らず詰みの局面まで学習データに出力した

機械学習

機械学習ルーチン やねうら王機械学習ルーチン
学習モデル halfkp_256x2-32-32
学習手法 SGD ミニバッチ法
USI_Hash 1024
Threads 16
loop 100
batchsize 1000000
lambda 0.5
eta eta1=1e-8 eta2=1.0 eta1_epoch=100M
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 無効
次元下げ なし
学習データ内で重複した局面の除外 しない
初期ネットワークパラメーター tanuki-wcsc29
勝敗項の教師信号 0.80

レーティング測定

対局相手 tanuki-wcsc29.halfkp_vm_256x2-32-32 に水匠 5 で生成した学習データを学習させたもの
思考時間 持ち時間 300 秒 + 1 手 2 秒加算
対局数 2000
同時対局数 64
ハッシュサイズ 768
開始局面 たややん互換局面集

実験結果

機械学習

レーティング測定

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

思考エンジン1 name=YaneuraOu NNUE 7.00 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=C:\Jenkins\workspace\TanukiColiseum.2021-09-05\engine1\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\suisho5.halfkp_256x2-32-32\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考ノード数に加える乱数(%)=0 思考ノード数の乱数を1手毎に変化させる=False 持ち時間(ms)=300000 秒読み時間(ms)=0 加算時間(ms)=2000 乱数付き思考時間(ms)=0 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false SlowMover=100 DrawValue=-2 BookEvalBlackLimit=0 BookEvalWhiteLimit=-140

思考エンジン2 name=YaneuraOu NNUE 7.00 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=C:\Jenkins\workspace\TanukiColiseum.2021-09-05\engine2\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\suisho5.4G\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考ノード数に加える乱数(%)=0 思考ノード数の乱数を1手毎に変化させる=False 持ち時間(ms)=300000 秒読み時間(ms)=0 加算時間(ms)=2000 乱数付き思考時間(ms)=0 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false SlowMover=100 DrawValue=-2 BookEvalBlackLimit=0 BookEvalWhiteLimit=-140

対局数2000 先手勝ち844(53.5%) 後手勝ち735(46.5%) 引き分け421

engine1

勝ち901(57.1% R38.9 +-15.3) 先手勝ち482(30.5%) 後手勝ち419(26.5%)

宣言勝ち42 先手宣言勝ち21 後手宣言勝ち21 先手引き分け201 後手引き分け220

engine2

勝ち678(42.9%) 先手勝ち362(22.9%) 後手勝ち316(20.0%)

宣言勝ち16 先手宣言勝ち12 後手宣言勝ち4 先手引き分け220 後手引き分け201

901,421,678

まとめ

ネットワーク構成を halfkp_256x2-32-32 (標準 NNUE) に戻し、レーティングに変化があるかどうか調べた。

学習ロスは、 halfkp_256x2-32-32 のほうが大きかった。

検証ロスは、 halfkp_256x2-32-32 のほうが小さかった。

学習の収束までのデータ量は、 halfkp_256x2-32-32 のほうが長かった。

平手局面の評価値は、 halfkp_256x2-32-32 のほうがやや小さかった。

評価値の絶対値は、 大きな差はなかった。

レーティングは、 halfkp_256x2-32-32 のほうが有意に高かった。

学習ロスと検証ロスについては、 halfkp_256x2-32-32 のほうが halfkp_vm_256x2-32-32 にくらべて過学習しにくいという事を表しているのだと思われる。

学習の収束までのデータ量は、理由が分からない。

平手局面の評価値については、学習に大きな問題が起きていない事を表している。

評価値の絶対値については、同じ学習データを使用しているため、大きな差がなかったのだと思われる。

レーティングについては、学習ロスが低くなったことが影響している可能性がある。

前回 halfkp_256x2-32-32 と halfkp_vm_256x2-32-32 を比較したときは、大きな差はなかった。前回の実験以降、様々なパラメーターを変更してきた。それらの中に halfkp_256x2-32-32 と相乗効果の高いパラメーターがあったのだと思われる。

tanuki- 2022-03-30 学習データ量 再実験

tanuki- 2022-03-30 学習データ量 再実験

実験内容

  • 学習データ量を増やした場合に、レーティングに変化があるかどうか調べた。

棋譜生成

生成ルーチン tanuki-棋譜生成ルーチン
評価関数 水匠5 FV_SCALE=16
1手あたりの思考 深さ最大 9 思考ノード数最大 50,000 ノード
開始局面 foodgate の 2020 年~ 2021 年の棋譜のうち、レーティング 3900 以上同士の対局の 32 手目までから 1 局面ランダムに選択し、その局面を開始局面とした ランダムムーブなし
生成局面数 10 億局面 × 2・4 セット
生成条件 対局は打ち切らず詰みの局面まで学習データに出力した

機械学習

機械学習ルーチン やねうら王機械学習ルーチン
学習モデル halfkp_vm_256x2-32-32
学習手法 SGD ミニバッチ法
USI_Hash 1024
Threads 16
loop 100
batchsize 1000000
lambda 0.5
eta eta1=1e-8 eta2=1.0 eta1_epoch=100M
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 無効
次元下げ なし
学習データ内で重複した局面の除外 しない
初期ネットワークパラメーター tanuki-wcsc29
勝敗項の教師信号 0.80

レーティング測定

対局相手 tanuki-wcsc29.halfkp_vm_256x2-32-32 に水匠 5 で生成した学習データを学習させたもの
思考時間 持ち時間 300 秒 + 1 手 2 秒加算
対局数 5000
同時対局数 64
ハッシュサイズ 768
開始局面 たややん互換局面集

実験結果

機械学習

レーティング測定

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

思考エンジン1 name=YaneuraOu NNUE 7.00 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=C:\Jenkins\workspace\TanukiColiseum.2021-09-05\engine1\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\suisho5.4G\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考ノード数に加える乱数(%)=0 思考ノード数の乱数を1手毎に変化させる=False 持ち時間(ms)=300000 秒読み時間(ms)=0 加算時間(ms)=2000 乱数付き思考時間(ms)=0 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false SlowMover=100 DrawValue=-2 BookEvalBlackLimit=0 BookEvalWhiteLimit=-140

思考エンジン2 name=YaneuraOu NNUE 7.00 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=C:\Jenkins\workspace\TanukiColiseum.2021-09-05\engine2\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\suisho5\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考ノード数に加える乱数(%)=0 思考ノード数の乱数を1手毎に変化させる=False 持ち時間(ms)=300000 秒読み時間(ms)=0 加算時間(ms)=2000 乱数付き思考時間(ms)=0 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false SlowMover=100 DrawValue=-2 BookEvalBlackLimit=0 BookEvalWhiteLimit=-140

対局数5000 先手勝ち2131(53.8%) 後手勝ち1832(46.2%) 引き分け1037

engine1

勝ち1999(50.4% R2.4 +-9.6) 先手勝ち1081(27.3%) 後手勝ち918(23.2%)

宣言勝ち136 先手宣言勝ち72 後手宣言勝ち64 先手引き分け505 後手引き分け532

engine2

勝ち1964(49.6%) 先手勝ち1050(26.5%) 後手勝ち914(23.1%)

宣言勝ち76 先手宣言勝ち40 後手宣言勝ち36 先手引き分け532 後手引き分け505

1999,1037,1964

まとめ

学習データ量を増やした場合に、レーティングに変化があるかどうか調べた。

学習ロスと検証ロスは、 大きな差はなかった。

学習の収束までのデータ量は、学習データを増やしたほうが多かった。

平手局面の評価値は、 大きな差はなかった。

評価値の絶対値は、 大きな差はなかった。

レーティングは、有意な差はなかった。

学習ロスと検証ロスについては、同じ学習データパラメーターを使用しているため、大きな差がなかったのだと思われる。

学習の収束までのデータ量は、学習データが多くなったことにより、学習データの多様性が上がり、収束が遅くなったためだと思われる。

平手局面の評価値については、学習に大きな問題が起きていない事を表している。

評価値の絶対値については、同じ学習データパラメーターを使用しているため、大きな差がなかったのだと思われる。

念のため、 80 億局面でも学習させてみたい。

tanuki- 2022-03-25 強い将棋ソフトの創りかた 学習データ配合

tanuki- 2022-03-25 強い将棋ソフトの創りかた 学習データ配合

実験内容

  • 既存の学習データに「強い将棋ソフトの創りかた」に付属の学習データを配合し、レーティングに変化があるか調べる。

棋譜生成

生成ルーチン tanuki-棋譜生成ルーチン
評価関数 水匠5 FV_SCALE=16
1手あたりの思考 深さ最大 9 思考ノード数最大 50,000 ノード
開始局面 foodgate の 2020 年~ 2021 年の棋譜のうち、レーティング 3900 以上同士の対局の 32 手目までから 1 局面ランダムに選択し、その局面を開始局面とした ランダムムーブなし
生成局面数 10 億局面 × 2 セット
生成条件 対局は打ち切らず詰みの局面まで学習データに出力した

機械学習

機械学習ルーチン やねうら王機械学習ルーチン
学習モデル halfkp_vm_256x2-32-32
学習手法 SGD ミニバッチ法
USI_Hash 1024
Threads 16
loop 100
batchsize 1000000
lambda 0.5
eta eta1=1e-8 eta2=1.0 eta1_epoch=100M
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 無効
次元下げ なし
学習データ内で重複した局面の除外 しない
初期ネットワークパラメーター tanuki-wcsc29
勝敗項の教師信号 0.80

レーティング測定

対局相手 tanuki-wcsc29.halfkp_vm_256x2-32-32 に水匠 5 で生成した学習データを学習させたもの
思考時間 持ち時間 300 秒 + 1 手 2 秒加算
対局数 5000
同時対局数 64
ハッシュサイズ 768
開始局面 たややん互換局面集

実験結果

機械学習

レーティング測定

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

思考エンジン1 name=YaneuraOu NNUE 7.00 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=C:\Jenkins\workspace\TanukiColiseum.2021-09-05\engine1\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\suisho5.dlshogi_with_gct\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考ノード数に加える乱数(%)=0 思考ノード数の乱数を1手毎に変化させる=False 持ち時間(ms)=300000 秒読み時間(ms)=0 加算時間(ms)=2000 乱数付き思考時間(ms)=0 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false SlowMover=100 DrawValue=-2 BookEvalBlackLimit=0 BookEvalWhiteLimit=-140

思考エンジン2 name=YaneuraOu NNUE 7.00 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=C:\Jenkins\workspace\TanukiColiseum.2021-09-05\engine2\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\suisho5\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考ノード数に加える乱数(%)=0 思考ノード数の乱数を1手毎に変化させる=False 持ち時間(ms)=300000 秒読み時間(ms)=0 加算時間(ms)=2000 乱数付き思考時間(ms)=0 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false SlowMover=100 DrawValue=-2 BookEvalBlackLimit=0 BookEvalWhiteLimit=-140

対局数5000 先手勝ち2158(54.0%) 後手勝ち1839(46.0%) 引き分け1003

engine1

勝ち1923(48.1% R-10.5 +-9.6) 先手勝ち1064(26.6%) 後手勝ち859(21.5%)

宣言勝ち146 先手宣言勝ち85 後手宣言勝ち61 先手引き分け455 後手引き分け548

engine2

勝ち2074(51.9%) 先手勝ち1094(27.4%) 後手勝ち980(24.5%)

宣言勝ち87 先手宣言勝ち40 後手宣言勝ち47 先手引き分け548 後手引き分け455

1923,1003,2074

まとめ

既存の学習データに「強い将棋ソフトの創りかた」に付属の学習データを配合し、レーティングに変化があるか調べた。

学習ロスと検証ロスは、 学習データを配合したほうが高くなった。

平手局面の評価値は、 大きな差はなかった。

評価値の絶対値は、 学習データを配合したほうが低くなった。

レーティングは、有意に低くなった。

学習ロスと検証ロスについては、学習データを配合したほうが、平均して学習データの教師信号の絶対値が低くなるという事を表しているのだと思われる。これは、「強い将棋ソフトの創りかた」に付属の学習データの教師信号のほうが、水匠 5 を用いて生成した学習データの教師信号より小さいためだと思われる。これを確かめるためには、実際に教師信号の値の統計を出せばよい。

平手局面の評価値については、学習に大きな問題が起きていない事を表している。

評価値の絶対値については、学習ロスと検証ロスと同様、「強い将棋ソフトの創りかた」に付属の学習データの教師信号のほうが、水匠 5 を用いて生成した学習データの教師信号より小さいという事を表しているのだと思われる。

レーティングについては、「強い将棋ソフトの創りかた」に付属の学習データと水匠 5 の教師データを配合するのは悪手だという事を表している。

今後は水匠 5 で生成した学習データのみで学習を行いたい。

tanuki- 2022-03-23 勝敗項の教師信号 再実験4

tanuki- 2022-03-23 勝敗項の教師信号 再実験4

実験内容

  • 勝敗項の教師信号を変更し、レーティングに変化があるか調べる。

棋譜生成

生成ルーチン tanuki-棋譜生成ルーチン
評価関数 水匠5 FV_SCALE=16
1手あたりの思考 深さ最大 9 思考ノード数最大 50,000 ノード
開始局面 foodgate の 2020 年~ 2021 年の棋譜のうち、レーティング 3900 以上同士の対局の 32 手目までから 1 局面ランダムに選択し、その局面を開始局面とした ランダムムーブなし
生成局面数 10 億局面 × 2 セット
生成条件 対局は打ち切らず詰みの局面まで学習データに出力した

機械学習

機械学習ルーチン やねうら王機械学習ルーチン
学習モデル halfkp_vm_256x2-32-32
学習手法 SGD ミニバッチ法
USI_Hash 1024
Threads 16
loop 100
batchsize 1000000
lambda 0.5
eta eta1=1e-8 eta2=1.0 eta1_epoch=100M
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 無効
次元下げ なし
学習データ内で重複した局面の除外 しない
初期ネットワークパラメーター tanuki-wcsc29
勝敗項の教師信号 0.85

レーティング測定

対局相手 tanuki-wcsc29.halfkp_vm_256x2-32-32 に水匠 5 で生成した学習データを学習させたもの
思考時間 持ち時間 900 秒 + 1 手 5 秒加算
対局数 5000
同時対局数 64
ハッシュサイズ 768
開始局面 たややん互換局面集

実験結果

機械学習

レーティング測定

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

思考エンジン1 name=YaneuraOu NNUE 7.00 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=C:\Jenkins\workspace\TanukiColiseum.2021-09-05\engine1\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\suisho5.winning_percentage_for_win=0.85\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考ノード数に加える乱数(%)=0 思考ノード数の乱数を1手毎に変化させる=False 持ち時間(ms)=300000 秒読み時間(ms)=0 加算時間(ms)=2000 乱数付き思考時間(ms)=0 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false SlowMover=100 DrawValue=-2 BookEvalBlackLimit=0 BookEvalWhiteLimit=-140

思考エンジン2 name=YaneuraOu NNUE 7.00 64ZEN2 TOURNAMENT author=by yaneurao exeファイル=C:\Jenkins\workspace\TanukiColiseum.2021-09-05\engine2\source\YaneuraOu-by-gcc.exe 評価関数フォルダパス=D:\hnoda\shogi\eval\suisho5\final 定跡手数=256 定跡ファイル名=no_book 思考ノード数=0 思考ノード数に加える乱数(%)=0 思考ノード数の乱数を1手毎に変化させる=False 持ち時間(ms)=300000 秒読み時間(ms)=0 加算時間(ms)=2000 乱数付き思考時間(ms)=0 スレッド数=1 BookEvalDiff=30 定跡の採択率を考慮する=false 定跡の手数を無視する=false SlowMover=100 DrawValue=-2 BookEvalBlackLimit=0 BookEvalWhiteLimit=-140

対局数5000 先手勝ち2043(54.3%) 後手勝ち1718(45.7%) 引き分け1239

engine1

勝ち1887(50.2% R0.9 +-9.6) 先手勝ち1030(27.4%) 後手勝ち857(22.8%)

宣言勝ち122 先手宣言勝ち65 後手宣言勝ち57 先手引き分け611 後手引き分け628

engine2

勝ち1874(49.8%) 先手勝ち1013(26.9%) 後手勝ち861(22.9%)

宣言勝ち82 先手宣言勝ち40 後手宣言勝ち42 先手引き分け628 後手引き分け611

1887,1239,1874

まとめ

勝敗項の教師信号を変更し、レーティングに変化があるか調べた。

学習ロスと検証ロスは、 t=0.85 のほうが低くなった。

平手局面の評価値は、 大きな差はなかった。

評価値の絶対値は、 t=0.85 のほうが高くなった。

レーティングは、有意な差はなかった。

学習ロスと検証ロスについては、勝敗項の教師信号が大きいほど交差エントロピーの値が小さくなることと矛盾はない。これは以前の実験通りである。

平手局面の評価値については、学習に大きな問題が起きていない事を表している。

評価値の絶対値については、以前の実験通りである。

レーティングについては、以前の実験通り、勝敗項の教師信号が 0.75~1.0 の間は、ほとんど差がないと思われる。

今後も t=0.80 で実験を進めていきたい。