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

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

tanuki- 2018-07-27 探索パラメーター自動調整実験

tanuki- 2018-07-27 探索パラメーター自動調整実験

実験内容

  • NNUE-v1.0相当を探索パラメーターを外部ファイルから渡せるようにする
  • tanuki-optimizer\optimize_parameters.py を用い、やねうら王v4.82+QQRに対して勝率を最大化するようなパラメーターを探索させる
  • tanuki-optimizer\analyze_optimizer_log.py を用い、勝率が高くなると思われる探索パラメーターを1つ選択する

  • 1探索パラメーターの試行あたりの試行時間は10,000ms
  • 同時対局数は20局

実験結果

analyze_optimizer_log.py

Loading the pickle file...

Reading values...

.................................

Generating log entries...

Now: 2018-07-27 19:39:03

Log file path: optimize_parameters.hyperopt_state.20180712_094705.pickle

Total iterations: 703

Effective entry: 703 -> 703

Total effective iterations: 703

Effective entry: 703 -> 703

Maximum matches per iteration: 20.0

Effective entry: 703 -> 703

Total matches: 14060.0

Effective entry: 703 -> 703

Effective entry: 703 -> 703

Parameters in log: 33

Parameter file path: parameters.csv

Parameters in CSV: 33

Effective entry: 703 -> 703

Param # 0: PARAM_FUTILITY_MARGIN_ALPHA1 (min=100, max=240, default=172) empirical statistics: (min=100.0, max=240.0)

Param # 1: PARAM_FUTILITY_MARGIN_ALPHA2 (min=25, max=100, default=50) empirical statistics: (min=25.0, max=100.0)

Param # 2: PARAM_FUTILITY_MARGIN_BETA (min=100, max=240, default=195) empirical statistics: (min=100.0, max=240.0)

Param # 3: PARAM_FUTILITY_MARGIN_QUIET (min=50, max=160, default=145) empirical statistics: (min=50.0, max=160.0)

Param # 4: PARAM_FUTILITY_RETURN_DEPTH (min=5, max=15, default=9) empirical statistics: (min=5.0, max=15.0)

Param # 5: PARAM_FUTILITY_AT_PARENT_NODE_DEPTH (min=5, max=20, default=12) empirical statistics: (min=5.0, max=20.0)

Param # 6: PARAM_FUTILITY_AT_PARENT_NODE_MARGIN1 (min=100, max=300, default=256) empirical statistics: (min=100.0, max=300.0)

Param # 7: PARAM_FUTILITY_AT_PARENT_NODE_MARGIN2 (min=0, max=300, default=248) empirical statistics: (min=0.0, max=300.0)

Param # 8: PARAM_FUTILITY_AT_PARENT_NODE_GAMMA1 (min=20, max=50, default=40) empirical statistics: (min=20.0, max=50.0)

Param # 9: PARAM_FUTILITY_AT_PARENT_NODE_GAMMA2 (min=20, max=60, default=51) empirical statistics: (min=20.0, max=60.0)

Param # 10: PARAM_NULL_MOVE_DYNAMIC_ALPHA (min=500, max=1500, default=818) empirical statistics: (min=500.0, max=1491.0)

Param # 11: PARAM_NULL_MOVE_DYNAMIC_BETA (min=50, max=100, default=67) empirical statistics: (min=50.0, max=100.0)

Param # 12: PARAM_NULL_MOVE_MARGIN (min=10, max=60, default=31) empirical statistics: (min=10.0, max=60.0)

Param # 13: PARAM_NULL_MOVE_RETURN_DEPTH (min=4, max=16, default=14) empirical statistics: (min=4.0, max=16.0)

Param # 14: PARAM_PROBCUT_DEPTH (min=3, max=10, default=5) empirical statistics: (min=3.0, max=10.0)

Param # 15: PARAM_PROBCUT_MARGIN1 (min=100, max=300, default=202) empirical statistics: (min=100.0, max=300.0)

Param # 16: PARAM_PROBCUT_MARGIN2 (min=20, max=80, default=24) empirical statistics: (min=20.0, max=80.0)

Param # 17: PARAM_SINGULAR_EXTENSION_DEPTH (min=4, max=13, default=7) empirical statistics: (min=4.0, max=13.0)

Param # 18: PARAM_SINGULAR_MARGIN (min=128, max=400, default=194) empirical statistics: (min=128.0, max=400.0)

Param # 19: PARAM_SINGULAR_SEARCH_DEPTH_ALPHA (min=8, max=32, default=20) empirical statistics: (min=8.0, max=32.0)

Param # 20: PARAM_PRUNING_BY_MOVE_COUNT_DEPTH (min=8, max=32, default=16) empirical statistics: (min=8.0, max=32.0)

Param # 21: PARAM_PRUNING_BY_HISTORY_DEPTH (min=2, max=32, default=9) empirical statistics: (min=2.0, max=32.0)

Param # 22: PARAM_REDUCTION_BY_HISTORY (min=2000, max=8000, default=4000) empirical statistics: (min=2011.0, max=7998.0)

Param # 23: PARAM_RAZORING_MARGIN2 (min=400, max=700, default=590) empirical statistics: (min=401.0, max=700.0)

Param # 24: PARAM_RAZORING_MARGIN3 (min=400, max=700, default=604) empirical statistics: (min=400.0, max=700.0)

Param # 25: PARAM_REDUCTION_ALPHA (min=64, max=256, default=135) empirical statistics: (min=64.0, max=256.0)

Param # 26: PARAM_FUTILITY_MOVE_COUNT_ALPHA0 (min=150, max=400, default=240) empirical statistics: (min=150.0, max=400.0)

Param # 27: PARAM_FUTILITY_MOVE_COUNT_ALPHA1 (min=300, max=600, default=492) empirical statistics: (min=300.0, max=600.0)

Param # 28: PARAM_FUTILITY_MOVE_COUNT_BETA0 (min=500, max=2000, default=740) empirical statistics: (min=501.0, max=1996.0)

Param # 29: PARAM_FUTILITY_MOVE_COUNT_BETA1 (min=500, max=2000, default=1000) empirical statistics: (min=501.0, max=2000.0)

Param # 30: PARAM_QUIET_SEARCH_COUNT (min=32, max=128, default=64) empirical statistics: (min=32.0, max=128.0)

Param # 31: PARAM_ASPIRATION_SEARCH_DELTA (min=12, max=40, default=16) empirical statistics: (min=12.0, max=40.0)

Param # 32: PARAM_EVAL_TEMPO (min=10, max=50, default=20) empirical statistics: (min=10.0, max=50.0)

--------------------------------------------------------------------------------

Calculate optimal parameters with Gaussian Process

using 1000 iterations (-1: all)

Effective entry: 703 -> 703

Effective entry: 703 -> 703

Effective entry: 703 -> 703

C:\Users\nodchip\AppData\Local\Programs\Python\Python36\lib\site-packages\sklearn\utils\deprecation.py:58: DeprecationWarning: Class GaussianProcess is deprecated; GaussianProcess was deprecated in version 0.18 and will be removed in 0.20. Use the GaussianProcessRegressor instead.

warnings.warn(msg, category=DeprecationWarning)

...

Score at random point: [0.30409503]

C:\Users\nodchip\AppData\Local\Programs\Python\Python36\lib\site-packages\sklearn\utils\deprecation.py:77: DeprecationWarning: Function constant is deprecated; The function constant of regression_models is deprecated in version 0.19.1 and will be removed in 0.22.

warnings.warn(msg, category=DeprecationWarning)

C:\Users\nodchip\AppData\Local\Programs\Python\Python36\lib\site-packages\sklearn\utils\deprecation.py:77: DeprecationWarning: Function absolute_exponential is deprecated; The function absolute_exponential of correlation_models is deprecated in version 0.19.1 and will be removed in 0.22.

warnings.warn(msg, category=DeprecationWarning)

Score at random point: [0.2793681]

C:\Users\nodchip\AppData\Local\Programs\Python\Python36\lib\site-packages\sklearn\utils\deprecation.py:77: DeprecationWarning: Function constant is deprecated; The function constant of regression_models is deprecated in version 0.19.1 and will be removed in 0.22.

warnings.warn(msg, category=DeprecationWarning)

C:\Users\nodchip\AppData\Local\Programs\Python\Python36\lib\site-packages\sklearn\utils\deprecation.py:77: DeprecationWarning: Function absolute_exponential is deprecated; The function absolute_exponential of correlation_models is deprecated in version 0.19.1 and will be removed in 0.22.

warnings.warn(msg, category=DeprecationWarning)

Score at random point: [0.29811158]

C:\Users\nodchip\AppData\Local\Programs\Python\Python36\lib\site-packages\sklearn\utils\deprecation.py:77: DeprecationWarning: Function constant is deprecated; The function constant of regression_models is deprecated in version 0.19.1 and will be removed in 0.22.

warnings.warn(msg, category=DeprecationWarning)

C:\Users\nodchip\AppData\Local\Programs\Python\Python36\lib\site-packages\sklearn\utils\deprecation.py:77: DeprecationWarning: Function absolute_exponential is deprecated; The function absolute_exponential of correlation_models is deprecated in version 0.19.1 and will be removed in 0.22.

warnings.warn(msg, category=DeprecationWarning)

Score at random point: [0.34471499]

C:\Users\nodchip\AppData\Local\Programs\Python\Python36\lib\site-packages\sklearn\utils\deprecation.py:77: DeprecationWarning: Function constant is deprecated; The function constant of regression_models is deprecated in version 0.19.1 and will be removed in 0.22.

warnings.warn(msg, category=DeprecationWarning)

C:\Users\nodchip\AppData\Local\Programs\Python\Python36\lib\site-packages\sklearn\utils\deprecation.py:77: DeprecationWarning: Function absolute_exponential is deprecated; The function absolute_exponential of correlation_models is deprecated in version 0.19.1 and will be removed in 0.22.

warnings.warn(msg, category=DeprecationWarning)

Score at random point: [0.28468591]

C:\Users\nodchip\AppData\Local\Programs\Python\Python36\lib\site-packages\sklearn\utils\deprecation.py:77: DeprecationWarning: Function constant is deprecated; The function constant of regression_models is deprecated in version 0.19.1 and will be removed in 0.22.

warnings.warn(msg, category=DeprecationWarning)

C:\Users\nodchip\AppData\Local\Programs\Python\Python36\lib\site-packages\sklearn\utils\deprecation.py:77: DeprecationWarning: Function absolute_exponential is deprecated; The function absolute_exponential of correlation_models is deprecated in version 0.19.1 and will be removed in 0.22.

warnings.warn(msg, category=DeprecationWarning)

Score at random point: [0.32471541]

C:\Users\nodchip\AppData\Local\Programs\Python\Python36\lib\site-packages\sklearn\utils\deprecation.py:77: DeprecationWarning: Function constant is deprecated; The function constant of regression_models is deprecated in version 0.19.1 and will be removed in 0.22.

warnings.warn(msg, category=DeprecationWarning)

C:\Users\nodchip\AppData\Local\Programs\Python\Python36\lib\site-packages\sklearn\utils\deprecation.py:77: DeprecationWarning: Function absolute_exponential is deprecated; The function absolute_exponential of correlation_models is deprecated in version 0.19.1 and will be removed in 0.22.

warnings.warn(msg, category=DeprecationWarning)

Score at random point: [0.33944681]

C:\Users\nodchip\AppData\Local\Programs\Python\Python36\lib\site-packages\sklearn\utils\deprecation.py:77: DeprecationWarning: Function constant is deprecated; The function constant of regression_models is deprecated in version 0.19.1 and will be removed in 0.22.

warnings.warn(msg, category=DeprecationWarning)

C:\Users\nodchip\AppData\Local\Programs\Python\Python36\lib\site-packages\sklearn\utils\deprecation.py:77: DeprecationWarning: Function absolute_exponential is deprecated; The function absolute_exponential of correlation_models is deprecated in version 0.19.1 and will be removed in 0.22.

warnings.warn(msg, category=DeprecationWarning)

Score at random point: [0.28936312]

C:\Users\nodchip\AppData\Local\Programs\Python\Python36\lib\site-packages\sklearn\utils\deprecation.py:77: DeprecationWarning: Function constant is deprecated; The function constant of regression_models is deprecated in version 0.19.1 and will be removed in 0.22.

warnings.warn(msg, category=DeprecationWarning)

C:\Users\nodchip\AppData\Local\Programs\Python\Python36\lib\site-packages\sklearn\utils\deprecation.py:77: DeprecationWarning: Function absolute_exponential is deprecated; The function absolute_exponential of correlation_models is deprecated in version 0.19.1 and will be removed in 0.22.

warnings.warn(msg, category=DeprecationWarning)

Score at random point: [0.31002744]

C:\Users\nodchip\AppData\Local\Programs\Python\Python36\lib\site-packages\sklearn\utils\deprecation.py:77: DeprecationWarning: Function constant is deprecated; The function constant of regression_models is deprecated in version 0.19.1 and will be removed in 0.22.

warnings.warn(msg, category=DeprecationWarning)

C:\Users\nodchip\AppData\Local\Programs\Python\Python36\lib\site-packages\sklearn\utils\deprecation.py:77: DeprecationWarning: Function absolute_exponential is deprecated; The function absolute_exponential of correlation_models is deprecated in version 0.19.1 and will be removed in 0.22.

warnings.warn(msg, category=DeprecationWarning)

Score at random point: [0.3104404]

C:\Users\nodchip\AppData\Local\Programs\Python\Python36\lib\site-packages\sklearn\utils\deprecation.py:77: DeprecationWarning: Function constant is deprecated; The function constant of regression_models is deprecated in version 0.19.1 and will be removed in 0.22.

warnings.warn(msg, category=DeprecationWarning)

C:\Users\nodchip\AppData\Local\Programs\Python\Python36\lib\site-packages\sklearn\utils\deprecation.py:77: DeprecationWarning: Function absolute_exponential is deprecated; The function absolute_exponential of correlation_models is deprecated in version 0.19.1 and will be removed in 0.22.

warnings.warn(msg, category=DeprecationWarning)

Exhausitive search on data points.. found index: 671 (was result: (2.0, 0.0, 18.0), score: 0.1) -> -0.7852518628450559

Best parameters: (+: default, @: best)

PARAM_FUTILITY_MARGIN_ALPHA1 = 191 |--------+--@------| (raw=190.9999999935, min=100, max=240 default=172)

PARAM_FUTILITY_MARGIN_ALPHA2 = 25 |@----+------------| (raw=25.0, min=25, max=100 default=50)

PARAM_FUTILITY_MARGIN_BETA = 113 |-@---------+------| (raw=112.99999999907143, min=100, max=240 default=195)

PARAM_FUTILITY_MARGIN_QUIET = 145 |--------------@---| (raw=144.99999999136367, min=50, max=160 default=145)

PARAM_FUTILITY_RETURN_DEPTH = 9 |------@-----------| (raw=8.999999996, min=5, max=15 default=9)

PARAM_FUTILITY_AT_PARENT_NODE_DEPTH = 6 |-@-----+----------| (raw=5.999999999333333, min=5, max=20 default=12)

PARAM_FUTILITY_AT_PARENT_NODE_MARGIN1 = 256 |-------------@----| (raw=255.9999999922, min=100, max=300 default=256)

PARAM_FUTILITY_AT_PARENT_NODE_MARGIN2 = 10 |@-------------+---| (raw=9.999999999666667, min=0, max=300 default=248)

PARAM_FUTILITY_AT_PARENT_NODE_GAMMA1 = 44 |-----------+-@----| (raw=43.999999992, min=20, max=50 default=40)

PARAM_FUTILITY_AT_PARENT_NODE_GAMMA2 = 41 |--------@----+----| (raw=40.99999999475, min=20, max=60 default=51)

PARAM_NULL_MOVE_DYNAMIC_ALPHA = 563 |-@---+------------| (raw=562.9999999993643, min=500, max=1500 default=818)

PARAM_NULL_MOVE_DYNAMIC_BETA = 53 |-@---+------------| (raw=52.9999999994, min=50, max=100 default=67)

PARAM_NULL_MOVE_MARGIN = 49 |-------+-----@----| (raw=48.9999999922, min=10, max=60 default=31)

PARAM_NULL_MOVE_RETURN_DEPTH = 15 |--------------+@--| (raw=14.999999990833333, min=4, max=16 default=14)

PARAM_PROBCUT_DEPTH = 6 |----+--@----------| (raw=5.999999995714286, min=3, max=10 default=5)

PARAM_PROBCUT_MARGIN1 = 207 |--------+@--------| (raw=206.99999999465, min=100, max=300 default=202)

PARAM_PROBCUT_MARGIN2 = 53 |-+-------@--------| (raw=52.9999999945, min=20, max=80 default=24)

PARAM_SINGULAR_EXTENSION_DEPTH = 6 |---@-+------------| (raw=5.999999997777778, min=4, max=13 default=7)

PARAM_SINGULAR_MARGIN = 340 |----+--------@----| (raw=339.99999999220586, min=128, max=400 default=194)

PARAM_SINGULAR_SEARCH_DEPTH_ALPHA = 23 |--------+-@-------| (raw=22.99999999375, min=8, max=32 default=20)

PARAM_PRUNING_BY_MOVE_COUNT_DEPTH = 26 |-----+------@-----| (raw=25.9999999925, min=8, max=32 default=16)

PARAM_PRUNING_BY_HISTORY_DEPTH = 2 |@--+--------------| (raw=2.0, min=2, max=32 default=9)

PARAM_REDUCTION_BY_HISTORY = 6719 |-----+-------@----| (raw=6718.9999999921365, min=2000, max=8000 default=4000)

PARAM_RAZORING_MARGIN2 = 658 |----------+---@---| (raw=657.9999999914046, min=400, max=700 default=590)

PARAM_RAZORING_MARGIN3 = 601 |-----------@------| (raw=600.9999999933, min=400, max=700 default=604)

PARAM_REDUCTION_ALPHA = 140 |------@-----------| (raw=139.99999999604165, min=64, max=256 default=135)

PARAM_FUTILITY_MOVE_COUNT_ALPHA0 = 305 |------+---@-------| (raw=304.9999999938, min=150, max=400 default=240)

PARAM_FUTILITY_MOVE_COUNT_ALPHA1 = 420 |------@---+-------| (raw=419.999999996, min=300, max=600 default=492)

PARAM_FUTILITY_MOVE_COUNT_BETA0 = 849 |--+@--------------| (raw=848.9999999976723, min=500, max=2000 default=740)

PARAM_FUTILITY_MOVE_COUNT_BETA1 = 1353 |-----+---@--------| (raw=1352.9999999943163, min=500, max=2000 default=1000)

PARAM_QUIET_SEARCH_COUNT = 62 |-----@------------| (raw=61.999999996875005, min=32, max=128 default=64)

PARAM_ASPIRATION_SEARCH_DELTA = 17 |--+@--------------| (raw=16.999999998214285, min=12, max=40 default=16)

PARAM_EVAL_TEMPO = 45 |----+---------@---| (raw=44.99999999125, min=10, max=50 default=20)

C:\Users\nodchip\AppData\Local\Programs\Python\Python36\lib\site-packages\sklearn\utils\deprecation.py:77: DeprecationWarning: Function constant is deprecated; The function constant of regression_models is deprecated in version 0.19.1 and will be removed in 0.22.

warnings.warn(msg, category=DeprecationWarning)

C:\Users\nodchip\AppData\Local\Programs\Python\Python36\lib\site-packages\sklearn\utils\deprecation.py:77: DeprecationWarning: Function absolute_exponential is deprecated; The function absolute_exponential of correlation_models is deprecated in version 0.19.1 and will be removed in 0.22.

warnings.warn(msg, category=DeprecationWarning)

Estimated score: 0.3131890946847134, winning rate: 68.68109053152867%

Wrote header file to: parameters_generated.hpp

続行するには何かキーを押してください . . .

レーティング測定

  • レーティング測定
    • 対局相手
      • NNUE v1.0 + やねうら王 v4.82 + halfkp-256x2-32-32 + F:\hnoda\nnue\eval\halfkp_256x2-32-32.iteration=4.nodes_searched=50000\final (探索パラメーター未調整=ベースライン)
      • やねうら王 v4.82 + QQR
    • 思考時間: 5000ms
    • 全対局数: 1000
    • 同時対局数: 24
    • ハッシュサイズ: 256
    • 開始局面: やねうら王互換局面集24手目からランダムに選択

    engine1=F:\hnoda\nnue.git\source\YaneuraOu-by-gcc.search_parameters.time=10000.exe eval1=F:\hnoda\nnue\eval\halfkp_256x2-32-32.iteration=4.nodes_searched=50000\final

    engine2=F:\hnoda\nnue.git\source\YaneuraOu-by-gcc.halfkp_256x2-32-32.exe eval2=F:\hnoda\nnue\eval\halfkp_256x2-32-32.iteration=4.nodes_searched=50000\final

    対局数1000 先手勝ち461(51%) 後手勝ち441(48%) 引き分け98

    engine1

    勝ち464(51% R10.02) 先手勝ち241(26%) 後手勝ち223(24%)

    宣言勝ち10 先手宣言勝ち7 後手宣言勝ち3

    先手引き分け49 後手引き分け49

    engine2

    勝ち438(48%) 先手勝ち220(24%) 後手勝ち218(24%)

    宣言勝ち3 先手宣言勝ち0 後手宣言勝ち3

    先手引き分け49 後手引き分け49

    engine1=F:\hnoda\nnue.git\source\YaneuraOu-by-gcc.search_parameters.time=10000.exe eval1=F:\hnoda\nnue\eval\halfkp_256x2-32-32.iteration=4.nodes_searched=50000\final

    engine2=F:\hnoda\YaneuraOu-2018-Otafuku-KPPT_V482\YaneuraOu-2018-Otafuku.exe eval2=F:\hnoda\hakubishin\exe\eval\qqr_rel

    対局数1000 先手勝ち491(51%) 後手勝ち465(48%) 引き分け44

    engine1

    勝ち600(62% R90.68) 先手勝ち312(32%) 後手勝ち288(30%)

    宣言勝ち2 先手宣言勝ち1 後手宣言勝ち1

    先手引き分け27 後手引き分け17

    engine2

    勝ち356(37%) 先手勝ち179(18%) 後手勝ち177(18%)

    宣言勝ち2 先手宣言勝ち2 後手宣言勝ち0

    先手引き分け17 後手引き分け27