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

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

tanuki- 2022-02-27 棋譜生成時の開始手数

tanuki- 2022-02-27 棋譜生成時の開始手数

実験内容

  • 棋譜生成時の開始手数の違いにより、レーティングに変化があるか調べる。

棋譜生成

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

機械学習

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

レーティング測定

対局相手 tanuki-wcsc29.halfkp_vm_256x2-32-32.suisho-wcsoc2020.depth=9.GeneratorRandomMove=false.startpos
思考時間 持ち時間 900 秒 + 1 手 5 秒加算
対局数 5000
同時対局数 64
ハッシュサイズ 768
開始局面 たややん互換局面集

実験結果

棋譜生成

generator_start_position_max_play=0

498085338 / 500000000

elapsed time = 19:00:00

current date time = 2022-02-13 11:52:41

finish date time = 2022-02-13 11:57:02

speed = 7318.52 (data/sec)

max speed = 7318.52 (data/sec)

generator_start_position_max_play=10

472724612 / 500000000

elapsed time = 15:00:00

current date time = 2022-02-14 02:58:55

finish date time = 2022-02-14 03:50:36

speed = 8794.84 (data/sec)

max speed = 8794.84 (data/sec)

generator_start_position_max_play=20

487754295 / 500000000

elapsed time = 16:00:00

current date time = 2022-02-14 19:51:57

finish date time = 2022-02-14 20:16:00

speed = 8483.42 (data/sec)

max speed = 8483.42 (data/sec)

generator_start_position_max_play=30

480434970 / 500000000

elapsed time = 16:00:00

current date time = 2022-02-15 12:17:50

finish date time = 2022-02-15 12:56:47

speed = 8370.86 (data/sec)

max speed = 8370.86 (data/sec)

generator_start_position_max_play=40

474755905 / 500000000

elapsed time = 16:00:00

current date time = 2022-02-16 04:58:52

finish date time = 2022-02-16 05:49:41

speed = 8278.02 (data/sec)

max speed = 8278.02 (data/sec)

generator_start_position_max_play=50

498384272 / 500000000

elapsed time = 17:00:00

current date time = 2022-02-16 22:51:17

finish date time = 2022-02-16 22:54:34

speed = 8174.38 (data/sec)

max speed = 8174.38 (data/sec)

generator_start_position_max_play=60

489962497 / 500000000

elapsed time = 17:00:00

current date time = 2022-02-17 15:56:27

finish date time = 2022-02-17 16:17:17

speed = 8024.77 (data/sec)

max speed = 8025.28 (data/sec)

generator_start_position_max_play=70

487755984 / 500000000

elapsed time = 17:00:00

current date time = 2022-02-18 09:19:13

finish date time = 2022-02-18 09:44:44

speed = 7996.42 (data/sec)

max speed = 7996.42 (data/sec)

generator_start_position_max_play=80

486582802 / 500000000

elapsed time = 17:00:00

current date time = 2022-02-19 02:46:33

finish date time = 2022-02-19 03:14:33

speed = 7982.43 (data/sec)

max speed = 7982.43 (data/sec)

generator_start_position_max_play=90

481768374 / 500000000

elapsed time = 17:00:00

current date time = 2022-02-19 20:16:33

finish date time = 2022-02-19 20:54:58

speed = 7906.18 (data/sec)

max speed = 7906.18 (data/sec)

generator_start_position_max_play=100

479272059 / 500000000

elapsed time = 17:00:00

current date time = 2022-02-20 13:56:53

finish date time = 2022-02-20 14:40:46

speed = 7870.01 (data/sec)

max speed = 7870.01 (data/sec)

generator_start_position_max_play=1000

473662571 / 500000000

elapsed time = 18:00:00

current date time = 2022-02-21 08:42:40

finish date time = 2022-02-21 09:42:16

speed = 7364.19 (data/sec)

max speed = 7364.19 (data/sec)

機械学習

レーティング測定

まとめ

棋譜生成時の開始手数の違いにより、レーティングに変化があるか調べた。

棋譜の生成速度は、 開始手数の最大値が 0 の場合を除き、開始手数の最大値が大きくなるほど下がった。

学習ロスと検証ロスは、 開始手数の最大値が 0 の場合を除き、開始手数の最大値が大きくなるほど、ロスが下がった。

平手局面の評価値は、 開始手数の最大値による差はほとんどなかった。

評価値の絶対値は、 開始手数の最大値が 0 の場合を除き、開始手数の最大値が大きくなるほど、評価値の絶対値が上がった。

レーティングは、計測誤差が大きく、数値がばらばらだった。開始手数の最大値が 0 の場合と 1000 の場合は、他に比べてレーティングが下がるようだった。

棋譜の生成速度については、開始手数が大きくなるほど、終盤の局面の割合が増え、有効分枝数が大きくなり、 1 手の探索にかかる時間が増えるのだと思われる。

学習ロスと検証ロスについては、開始手数の最大値が大きくなるほど、教師データに含まれる評価値が大きくなるためだと思われる。

平手局面の評価値については、機械学習に大きな問題が生じていないことを表している。

評価値の絶対値については、学習ロスと検証ロスと同様、教師データに含まれる評価値が大きくなるためだと思われる。

レーティングについては、計測誤差が大きく、確かなことは言えなかった。ただし、開始手数の最大値が 0 の場合と 1000 の場合は、学習データとしては不向きなように思われる。

取り急ぎ、最もレーティングの高かった 70 を、今後使用していきたいと思う。