前回、入玉宣言に関する特徴量を加えたモデルの強さを測定したが、入玉宣言勝ちした棋譜がなく入玉の精度が測定できていなかった。
NNUE系を相手にして連続対局を行い測定しなおした。
強さ
NNUE系を相手に互角局面から連続対局を行った結果は以下の通り。
NNUE系は持ち時間を調整しているので、参考値。
# PLAYER : RATING ERROR POINTS PLAYED (%) CFS(%) W D L D(%) 1 nnue-4th : 29.2 20.9 333.0 600 56 53 313 40 247 7 2 resnet : 27.5 40.1 99.5 200 50 92 92 15 93 8 3 nyugyoku20 : -22.0 40.7 85.5 200 43 64 79 13 108 6 4 nyugyoku10 : -34.6 38.7 82.0 200 41 --- 76 12 112 6 White advantage = 11.90 +/- 13.71 Draw rate (equal opponents) = 6.74 % +/- 1.05
前回と同様に、入玉特徴量なしの通常のResNetが一番強い(信頼度 92%)という結果になった。
入玉特徴量を加えると、詰みによって勝つ将棋には負の影響があることがわかった。
入玉宣言勝ちの精度
入玉宣言勝ちの数をカウントした結果は以下の通り。
モデル | 入玉宣言勝ち |
---|---|
入玉特徴量なし | 18 |
入玉特徴量あり(残り点数10点未満) | 16 |
入玉特徴量あり(残り点数20点未満) | 24 |
入玉特徴量あり(残り点数20点未満)の場合が、入玉宣言勝ちの数が最も多かった。
カイ二乗検定で、適合度検定を行うと、帰無仮説=すべてのモデルで入玉宣言勝ちの割合は同じに対して、p値は0.48となり、帰無仮説は棄却されない。
よって、有意差はない。
import numpy as np import scipy.stats as stats observed = np.array([18, 16, 24]) total_samples = 200 * 3 expected_prob = sum(observed) / total_samples expected = np.array([200 * expected_prob] * 3) chi2_stat, p_value = stats.chisquare(f_obs=observed, f_exp=expected) print(f"p値: {p_value}") p値: 0.4079740440452
200回の対局では測定できない程度の違いであり、入玉特徴量は実際の対局では効果はなさそうである。