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

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

tanuki- 2018-04-08 halfkp_128/256x2-32-32 追加学習

tanuki- 2018-04-08 halfkp_128/256x2-32-32 追加学習

  • 棋譜生成
    • tanuki-棋譜生成ルーチン
      • depth 8
      • 開始局面はfoodgate上の棋譜から1局面ランダムに選択し、ランダムに1手指した局面とする
      • 50億局面生成 うち最初の5億局面は勝敗フラグが誤っていたため破棄
      • 対局は打ち切らず詰みの局面まで学習データに出力する
      • 評価関数はApery SDT5
    • シャフル
      • あり
    • 機械学習
      • NNUE機械学習ルーチン 後述
      • ネットワーク 後述
      • 学習手法 SGD ミニバッチ法
      • batchsize 1000000
      • lambda 後述
      • eta 0.1
      • newbob_decay 0.5
      • nn_batch_size 1000
      • eval_save_interval 100000000
      • loss_output_interval 1000000
      • mirror_percentage 50
      • eval_limit 後述
    • レーティング測定
      • 対局相手: やねうら王 v4.80公式バイナリ avx2版 + Apery SDT5 評価関数
      • 思考時間: 5000ms
      • 全対局数: 1000
      • 同時対局数: 24
      • ハッシュサイズ: 256
      • 開始局面: やねうら王互換局面集24手目からランダムに選択

      実験結果

      halfkp_128x2-32-32 lambda=0.5 eval_limit=32000

      • NNUE機械学習ルーチン v0.4
      • lambda 0.5
      • 教師信号は評価値をそのまま使用している
      • F:\hnoda\nnue\eval\zoukin2.2018-03-12.halfkp_128x2-32-32/final から追加学習
      • eval_limit=32000

      07:53:16.790 engine1=F:\hnoda\nnue.git\source\YaneuraOu-by-gcc-halfkp_128x2-32-32.exe eval1=F:\hnoda\nnue\eval\zoukin2.2018-03-12.halfkp_128x2-32-32.add.lambda=0.5\final 07:53:16.790 engine2=F:\hnoda\YaneuraOu-2018-Otafuku-KPPT_V480\YaneuraOu-2018-Otafuku.exe eval2=F:\hnoda\hakubishin\exe\eval\apery_sdt5_eval_twig_format 07:53:16.790 T1,b5000,498 - 39 - 463(51.82% R12.66) win black: white = 53.07% : 46.93% declaration win engine1=7 engine2=8

      halfkp_128x2-32-32 lambda=0.5 NNUE v0.5 eval_limit=32000

      • NNUE機械学習ルーチン v0.5
      • lambda 0.5
      • 教師信号は評価値をそのまま使用している
      • F:\hnoda\nnue\eval\zoukin2.2018-03-12.halfkp_128x2-32-32/final から追加学習
      • eval_limit=32000

      07:55:25.302 engine1=F:\hnoda\nnue.git\source\YaneuraOu-by-gcc-halfkp_128x2-32-32.exe eval1=F:\hnoda\nnue\eval\zoukin2.2018-03-12.halfkp_128x2-32-32.add.lambda=0.5.NNUE-v0.5.eval_limit=32000\final 07:55:25.302 engine2=F:\hnoda\YaneuraOu-2018-Otafuku-KPPT_V480\YaneuraOu-2018-Otafuku.exe eval2=F:\hnoda\hakubishin\exe\eval\apery_sdt5_eval_twig_format 07:55:25.302 T1,b5000,437 - 51 - 512(46.05% R-27.52) win black: white = 51.00% : 49.00% declaration win engine1=3 engine2=4

      halfkp_128x2-32-32 discount

      • NNUE機械学習ルーチン v0.4
      • lambda 1.0
      • 教師信号にdiscountを適用したものを使用している
      • F:\hnoda\nnue\eval\zoukin2.2018-03-12.halfkp_128x2-32-32/final 追加学習

      09:00:44.826 engine1=F:\hnoda\nnue.git\source\YaneuraOu-by-gcc-halfkp_128x2-32-32.exe eval1=F:\hnoda\nnue\eval\zoukin2.2018-03-12.halfkp_128x2-32-32.add.discount\final 09:00:44.826 engine2=F:\hnoda\YaneuraOu-2018-Otafuku-KPPT_V480\YaneuraOu-2018-Otafuku.exe eval2=F:\hnoda\hakubishin\exe\eval\apery_sdt5_eval_twig_format 09:00:44.826 T1,b5000,254 - 263 - 483(34.46% R-111.65) win black: white = 52.65% : 47.35% declaration win engine1=22 engine2=1

      halfkp_256x2-32-32 lambda=0.5 eval_limit=3000

      • NNUE機械学習ルーチン v0.5
      • lambda 0.5
      • 教師信号は評価値をそのまま使用している
      • F:\hnoda\nnue\eval\zoukin2.2018-03-12.halfkp_256x2-32-32 から追加学習
      • eval_limit=3000

      07:59:28.045 engine1=F:\hnoda\nnue.git\source\YaneuraOu-by-gcc-halfkp_256x2-32-32.exe eval1=F:\hnoda\nnue\eval\zoukin2.2018-03-12.halfkp_256x2-32-32.add.lambda=0.5\final 07:59:28.045 engine2=F:\hnoda\YaneuraOu-2018-Otafuku-KPPT_V480\YaneuraOu-2018-Otafuku.exe eval2=F:\hnoda\hakubishin\exe\eval\apery_sdt5_eval_twig_format 07:59:28.045 T1,b5000,460 - 57 - 483(48.78% R-8.48) win black: white = 49.95% : 50.05% declaration win engine1=22 engine2=1

      halfkp_256x2-32-32 lambda=0.5 eval_limit=32000

      • NNUE機械学習ルーチン v0.5
      • lambda 0.5
      • 教師信号は評価値をそのまま使用している
      • F:\hnoda\nnue\eval\zoukin2.2018-03-12.halfkp_256x2-32-32 から追加学習
      • eval_limit 32000

      思考エンジン NNUE v0.4

      08:09:40.332 engine1=F:\hnoda\nnue.git\source\YaneuraOu-by-gcc-halfkp_256x2-32-32.exe eval1=F:\hnoda\nnue\eval\zoukin2.2018-03-12.halfkp_256x2-32-32.add.lambda=0.5.eval_limit=32000\final 08:09:40.332 engine2=F:\hnoda\YaneuraOu-2018-Otafuku-KPPT_V480\YaneuraOu-2018-Otafuku.exe eval2=F:\hnoda\hakubishin\exe\eval\apery_sdt5_eval_twig_format 08:09:40.332 T1,b5000,483 - 49 - 468(50.79% R5.48) win black: white = 50.26% : 49.74% declaration win engine1=11 engine2=10

      思考エンジン NNUE v0.5

      08:02:19.692 engine1=F:\hnoda\nnue.git\source\YaneuraOu-by-gcc-halfkp_256x2-32-32_v0.5.exe eval1=F:\hnoda\nnue\eval\zoukin2.2018-03-12.halfkp_256x2-32-32.add.lambda=0.5.eval_limit=32000\final 08:02:19.692 engine2=F:\hnoda\YaneuraOu-2018-Otafuku-KPPT_V480\YaneuraOu-2018-Otafuku.exe eval2=F:\hnoda\hakubishin\exe\eval\apery_sdt5_eval_twig_format 08:02:19.692 T1,b5000,470 - 38 - 492(48.86% R-7.95) win black: white = 53.01% : 46.99% declaration win engine1=5 engine2=7

      比較

      halfkp_128x2-32-32 halfkp_256x2-32-32 比較

      • NNUE機械学習ルーチン v0.5
      • lambda 0.5
      • 教師信号は評価値をそのまま使用している
      • F:\hnoda\nnue\eval\zoukin2.2018-03-12.halfkp_256x2-32-32 または F:\hnoda\nnue\eval\zoukin2.2018-03-12.halfkp_256x2-32-32 から追加学習
      • eval_limit 32000

      NNUE v0.4 v0.5 学習ルーチン 比較

      • NNUE機械学習ルーチン v0.4 v0.5
      • lambda 0.5
      • 教師信号は評価値をそのまま使用している
      • F:\hnoda\nnue\eval\zoukin2.2018-03-12.halfkp_128x2-32-32/final から追加学習
      • eval_limit=32000

      • evalはtest_cross_entropy_eval、winはtest_cross_entropy_winを表す