学習(1)
棋譜データを用意して、実際に学習させてみた。
棋譜数42757で、4回iterationした結果の出力の一部。
(Number of Games:42756と表示されているが、max-gamesを棋譜数より多く指定したときに、一個少なく表示されるバグがあると思う。)
iteration #1 Number of Games : 42756 Total Moves : 329406267 Moves Counted : 120033397 Illegal Moves : 6 Nodes Searched : 11631412813 Max pos_buf : 13534 Move Prediction : 18.3% 28.9% 35.5% 40.1% 43.6% 46.3% 48.3% 50.0% Target : 0.151051 (0.015466) Futility : misc=0 drop=0 cap=0 mt=0 misc(k)=0 cap(k)=0 Parse 2 Moves Counted : 120033397 Objective Func. : 0.150991 0.150991 0.000000 iteration #2 Number of Games : 42756 Total Moves : 329406267 Moves Counted : 87353644 Illegal Moves : 6 Nodes Searched : 15595517698 Max pos_buf : 12adc Move Prediction : 33.0% 48.9% 58.6% 65.4% 70.5% 74.6% 77.9% 80.6% Target : 0.071718 (0.012218) Futility : misc=214 drop=214 cap=325 mt=950 misc(k)=451 cap(k)=419 Parse 2 Moves Counted : 87353644 Objective Func. : 0.085919 0.071631 0.014288 iteration #3 Number of Games : 42756 Total Moves : 329406267 Moves Counted : 77390378 Illegal Moves : 6 Nodes Searched : 14672188022 Max pos_buf : 11c21 Move Prediction : 35.3% 52.1% 62.2% 69.1% 74.2% 78.1% 81.2% 83.7% Target : 0.060779 (0.010504) Futility : misc=275 drop=234 cap=431 mt=1148 misc(k)=496 cap(k)=541 Parse 2 Moves Counted : 77390378 Objective Func. : 0.076574 0.060690 0.015884 iteration #4 Number of Games : 42756 Total Moves : 329406267 Moves Counted : 73186315 Illegal Moves : 6 Nodes Searched : 14515592052 Max pos_buf : 111f0 Move Prediction : 35.7% 53.0% 63.3% 70.3% 75.5% 79.4% 82.5% 84.9% Target : 0.056355 (0.009774) Futility : misc=299 drop=294 cap=472 mt=1251 misc(k)=528 cap(k)=569 Parse 2 Moves Counted : 73186315 Objective Func. : 0.073234 0.056265 0.016969
項目について説明すると、
Total Movesは、全局面の全合法手の数(実際に指した手は除く)
Moves Countedは、評価値が±FV_WINDOW以内に入った合法手の数
Illegal Movesは、反則手の数(棋譜を確認すると、最初の二つは王手放置だった。他は調べていない。)
Nodes Searchedは、全合法手について探索したノード数(静止探索ノードを含む)
Move Predictionは、実際に指した手が評価値の上位1〜8番目までに含まれる割合。
Targetは、T(x)の全合法手についての平均値(T(x)は評価値の差を指し手の一致度に変換する関数。保木のGPW2006の資料を参照)、括弧内に書かれた数値は、そのうち±FV_WINDOW外だった部分の量
Objecttive Func.は、最初の数値がTarget + Penalty、二番目がTarget, 三番目がPenalty
(Penaltyは、KPP/KKPの全てのパラメタの絶対値の合計を全合法手で割った値)
反則手があると、そのゲームのその手以降は無視される。