学習(2)
前回の学習の続き。5回目のiteration。
Moves Countedは減り続けている。Move Predictionは少し向上している。
iteration #5 Number of Games : 42756 Total Moves : 329406267 Moves Counted : 71243096 Illegal Moves : 6 Nodes Searched : 14483850750 Max pos_buf : 10ecb Move Prediction : 36.5% 53.8% 64.2% 71.2% 76.4% 80.3% 83.3% 85.7% Target : 0.053406 (0.009128) Futility : misc=312 drop=316 cap=526 mt=1345 misc(k)=611 cap(k)=585 Parse 2 Moves Counted : 71243096 Objective Func. : 0.071143 0.053315 0.017828 Steps 888888888886321 done
一回のiterationで、34〜38時間かかる。使用しているマシンは、Intel Core 2 Duo 2GHz, 2GB。
学習させている間、他の目的で使用していることもあるので、本当ならもう少し速いかもしれない。さらに、実行させているプログラムは、各パラメタの学習機会数をカウントするように改造しているので、どの程度かは不明だがそれによる実行時間差も存在する。
長時間の留守中に電源を入れたままにしたくないので、休日に1回分のiterationだけを実行して、平日は動かしていない。この場合、fv.binは更新されているものをそのまま使えば良いが、param.hは新しいものに置き換えて毎回Bonanzaを再コンパイルする必要がある。二回目以降では、パラメタの初期化を行わないようにコマンドで指定する。
一回目 > learn ini 100 50000 1 2 2 二回目以降 > learn no-ini 100 50000 1 2 2
これで、連続的に学習をさせた通常の場合とほぼ同じように学習できる。
但し厳密に言うと、futility pruningのために参照される変動マージン(fmg_misc, fmg_cap, fmg_drop, fmg_misc_king, fmg_cap_king, fmg_mt)が、毎回起動時点で初期化されてしまうという違いがある。しかし、これらの値は探索中、check_futil_score_quies()の中で適切な値に更新されていくので、全体に大きな差は生じないと考えている。