用語集
ShogiArena のドキュメントで使う専門用語のリファレンス。 各用語に、英語名、略称、定義、関連ページへのリンクを記載する。 本文で不明な用語に出会ったときは、このページで確認できる。
このページの収録範囲
- 統計的検定(SPRT, LLR, LOS)、レーティング(Elo, BayesElo)、チューニング(SPSA)の主要概念
- STC/LTC などテストワークフローに関わる用語
- USI, SFEN, KIF/CSA など将棋固有のプロトコルとフォーマット
- 各用語から詳細な解説ページへの相互参照
統計的検定
SPRT(Sequential Probability Ratio Test / 逐次確率比検定)
対局結果を 1 局ずつ追加しながら、累積的な証拠を 2 つの仮説(H0: 改善なし、H1: 改善あり)に対して評価する逐次検定手法。 あらかじめ設定した判定閾値に LLR が到達した時点でテストを終了するため、 固定局数のテストよりも必要な対局数を大幅に削減できる。 エンジンの強さの差を統計的に判定するための標準的な手法。
→ 詳細:SPRT(逐次確率比検定)
LLR(Log-Likelihood Ratio / 対数尤度比)
SPRT の中心となる検定統計量。各対局結果から計算される尤度比の対数を累積したもので、 証拠が H0(改善なし)と H1(改善あり)のどちらを支持するかを定量化する。 LLR が上限閾値に到達すれば H1 を採択し、下限閾値に到達すれば H0 を採択する。 加法性を持つため、1 局ごとに効率的に更新できる。
→ 詳細:対数尤度比(LLR)
LOS(Likelihood of Superiority / 優位性の尤度)
あるエンジンが対戦相手よりも強い確率を表す指標。 勝ち数 \(W\) と負け数 \(L\) から \(\text{LOS} = \Phi((W - L) / \sqrt{W + L})\) として計算される。 引き分けは LOS の計算に含まれない。 スコアベースでは \(\text{LOS} = \Phi((\mu - 0.5) / (\sigma / \sqrt{n}))\) とも表現できる。 SPRT のような厳密な仮説検定ではないが、直感的に「どれくらい確信があるか」を示す尺度として有用。
→ 詳細:BayesElo と引き分けモデル
Elo レーティング(Elo Rating)
ハンガリー系アメリカ人の物理学者アルパッド・エロが考案した、対戦型競技のレーティングシステム。 2 者間の勝率をレーティング差というスカラー値で表現し、400 点差で勝率 10:1 となる。 期待スコアはロジスティック関数 \(E_A = 1 / (1 + 10^{-\Delta R/400})\) で計算される。
→ 詳細:Elo レーティング
BayesElo
引き分け率を独立したパラメータ(drawelo)として明示的にモデル化した Elo の拡張。 標準的な Elo(Logistic Elo)では引き分けを 0.5 勝として扱うが、 BayesElo では \(P_{\text{win}} = 1/(1+10^{(-\text{elo}+\text{drawelo})/400})\)、 \(P_{\text{loss}} = 1/(1+10^{(\text{elo}+\text{drawelo})/400})\) として 勝ち、引き分け、負けの 3 つの確率を個別にモデル化する。 Fishtest は歴史的に BayesElo を使用していたが、現在は Logistic Elo に移行している。
→ 詳細:BayesElo と引き分けモデル
Logistic Elo
ShogiArena で標準的に使用される Elo モデル。 勝率とレーティング差の関係をロジスティック関数で表現する。 BayesElo と異なり、引き分けを中間結果(スコア 0.5)として統一的に処理するためシンプルで実装が容易。 ShogiArena の SPRT 実装はこのモデルに基づいている。
GSPRT(Generalized SPRT / 一般化逐次確率比検定)
標準 SPRT を拡張し、仮説中の未知パラメータを最尤推定量(MLE)で置き換えた検定手法。 エンジンテストでは引き分け率などの未知パラメータが存在するため、単純仮説を設定できない。 GSPRT はこの問題を解決し、複合仮説に対応する。 誤り率が 0 に近づくとき、GSPRT は標準 SPRT と漸近的に同じ振る舞いをすることが証明されている。 Fishtest が採用している「SPRT」は実際には GSPRT である。
→ 詳細:GSPRT(一般化逐次確率比検定)
MLE(Maximum Likelihood Estimation / 最尤推定)
観測データに対する尤度を最大化するパラメータ値を求める推定法。 GSPRT では、「期待スコアが \(s\) である」という制約のもとで多項分布の MLE を計算する。 この制約付き MLE は世俗方程式(secular equation)を解くことで得られる。
→ 詳細:GSPRT(一般化逐次確率比検定)
世俗方程式(Secular Equation)
GSPRT の制約付き MLE を求める際に解く方程式。 \(\sum_i \hat{p}_i (a_i - s) / (1 + x(a_i - s)) = 0\) の形をしており、 ラグランジュ乗数法から導出される。Brent 法などの数値解法で解く。
→ 詳細:GSPRT(一般化逐次確率比検定)
オーバーシュート補正(Overshoot Correction)
SPRT の判定境界は連続的な LLR 変化を前提としているが、 実際には離散的(1 局または 1 ペアごと)に更新されるため、 LLR が境界を飛び越えることがある。 このオーバーシュートを補正しないと、実際の誤り率が設定値より大きくなる。 Fishtest は Siegmund (1985) の理論に基づく動的オーバーシュート補正を実装している。
→ 詳細:GSPRT(一般化逐次確率比検定)
nElo(Normalized Elo / 正規化 Elo)
スコアの標準偏差で正規化した Elo 差。 \(\text{nElo} = (800 / \ln 10) \cdot (\mu - 0.5) / \sigma_{\text{pg}}\) として計算される。 通常の Elo 差は持ち時間や引き分け率の影響を受けるが、nElo ではこれらの影響が大幅に軽減され、 異なる持ち時間(STC と LTC)間でのパフォーマンス比較が可能になる。 Fishtest では検定の閾値を nElo で表現し、テストの所要対局数を安定化させている。
→ 詳細:正規化 Elo(nElo)
五項分布(Pentanomial Distribution)
ペアゲーム(先後入れ替え 2 局セット)の結果を 5 つのカテゴリ(0.0, 0.5, 1.0, 1.5, 2.0 点)に分類するモデル。 先手有利バイアスを除去し、三項分布よりも情報量が多いため、 SPRT の判定に必要な対局数を 20-40% 削減できる。
→ 詳細:五項分布モデル
三項分布(Trinomial Distribution)
各対局を独立に扱い、結果を勝ち、引き分け、負けの 3 カテゴリに分類するモデル。 最もシンプルなモデルだが、先手有利バイアスがノイズとして含まれるため、 ペアゲームを活用できる場合は五項分布の方が精度が高い。
アカウンティング恒等式(Accounting Identity)
五項分布と三項分布の間に成り立つ恒等式。 三項分布のスコア分散と五項分布のスコア分散の差が、開局集(定跡ファイル)に含まれるバイアスの分散に対応する。 \(\text{Var}{\text{trinomial}} = \text{Var}{\text{pentanomial}} + \text{Var}_{\text{bias}}\) として、開局集バイアスの RMS 値を推定できる。
→ 詳細:五項分布モデル
ブラウン運動近似(Brownian Approximation)
GSPRT の LLR 過程を、ドリフト付きブラウン運動で近似する手法。 十分なサンプル数のもとでは \(\text{LLR}_n \approx \mu n + \sigma W_n\)(\(W_n\) はウィーナー過程)と近似でき、 期待テスト長の計算、Elo 推定、SPRT calculator の基礎となっている。
→ 詳細:GSPRT(一般化逐次確率比検定)
引き分け率(Draw Ratio)
全対局に占める引き分けの割合。 引き分け率が高いほど 1 局あたりの情報量が少なくなり、統計的有意性の判定に必要な対局数が増加する。 BayesElo モデルでは重要なパラメータとなる。 将棋はチェスと比べて引き分け率が低い傾向にある。
偽陽性率 α(Type I Error Rate / 第一種の過誤率)
実際には改善がないにもかかわらず「改善あり(H1)」と誤判定する確率。 SPRT のパラメータとして設定し、通常は α = 0.05(5%)を使用する。 α を小さくするとより確実な判定になるが、判定に必要な対局数が増加する。
→ 詳細:SPRT(逐次確率比検定)
偽陰性率 β(Type II Error Rate / 第二種の過誤率)
実際には改善があるにもかかわらず「改善なし(H0)」と誤判定する確率。 SPRT のパラメータとして設定し、通常は β = 0.05(5%)を使用する。 検出力(Power)は \(1 - \beta\) で表される。
→ 詳細:SPRT(逐次確率比検定)
SPRT Calculator
Fishtest が提供する Web ツール。elo0、elo1、引き分け率、真の Elo 差などのパラメータを入力すると、 SPRT テスト完了までの期待対局数を計算できる。 テストの計画段階でリソース見積もりに活用できる。 ブラウン運動近似に基づく計算を行う。
→ ツール:SPRT Calculator
無関心領域(Indifference Zone)
SPRT における elo0 と elo1 の間の区間。 この区間内の Elo 差では、H0 と H1 のどちらを採択しても許容される。 例えば elo0=0, elo1=5 の場合、0〜5 点の Elo 差は「検出する必要がない微小な差」として扱われる。 無関心領域を狭くするほど検出感度は上がるが、必要な対局数が増大する。
→ 詳細:SPRT(逐次確率比検定)
持ち時間とテスト
STC(Short Time Control / 短時間制御)
SPSA チューニングや初期検証に使用する短い持ち時間設定。 典型的にはノード数制限(例: 100,000 ノード/手)や短い固定時間で実行する。 高速なフィードバックループが利点だが、長時間での探索特性を十分に反映しない可能性がある。 STC で有望な結果が得られたパッチは、LTC で再検証するのが標準的なワークフロー。
→ 関連:LTC 回帰テスト
LTC(Long Time Control / 長時間制御)
STC で得られたチューニング結果やパッチの最終検証に使用する長い持ち時間設定。 典型的には数秒〜数分/手で実行し、エンジンの実戦的な探索深度でのパフォーマンスを評価する。 STC の結果が LTC でも有効かを確認するため、回帰テストとして実施される。
→ 詳細:LTC 回帰テスト
TC(Time Control / 持ち時間)
対局における時間制限の設定。ShogiArena では以下の形式をサポートする。
| 形式 | 説明 | 記法例 |
|---|---|---|
| 固定時間 | 1 手あたりの固定時間 | fx1000(1 秒/手) |
| フィッシャー | 持ち時間 + 1 手ごとの加算 | t60000+i1000 |
| 秒読み | 持ち時間 + 秒読み | t300000+b10000 |
| ノード数 | 1 手あたりのノード数制限 | n100000 |
| 深さ | 探索深度制限 | d20 |
秒読み(Byoyomi)
日本将棋特有の持ち時間制度。持ち時間を使い切った後、1 手ごとに一定の秒数(例: 10 秒)が与えられる。
フィッシャー方式(1 手ごとに時間が加算される)とは異なり、秒読み時間は蓄積されない。
ShogiArena では t{ms}+b{ms} の形式で設定する。
回帰テスト(Regression Test)
SPSA チューニングの途中で、パラメータの変更が長時間制御(LTC)でも有効かを定期的に検証するテスト。 STC でのチューニング結果が LTC で性能低下を起こしていないかを確認し、 フェイルした場合は自動的にパラメータをリバートする。 局所最適への陥落を防止する安全機構。
→ 詳細:LTC 回帰テスト
チューニング
SPSA(Simultaneous Perturbation Stochastic Approximation / 同時摂動確率近似法)
エンジンパラメータを対局結果に基づいて自動最適化するアルゴリズム。 p 次元のパラメータを同時に ±1 摂動させ、わずか 2 回の関数評価(2 セットの対局)で全パラメータの勾配を推定する。 パラメータ数に依存しない効率性が特徴で、数十〜数百のパラメータを持つエンジンのチューニングに適している。
→ 詳細:SPSA(同時摂動確率近似法)
ゲインスケジュール(Gain Schedule)
SPSA の更新ゲインと摂動幅を制御する減衰系列。ShogiArena では パラメータ単位 で、
ペア通し番号 \(k_{\text{pair}}\) に対して摂動 \(c_i = \text{step}i (k{\text{total}}/k_{\text{pair}})^\gamma\)、
更新ゲイン \(r_i\)(delta / step / A / alpha / gamma から導出)として定義される。
グローバルな学習率スカラ(かつての mobility / a0)は存在しない。
既定は Spall 推奨の減衰(\(\alpha = 0.602,\ \gamma = 0.101\))。
→ 詳細:ゲインスケジュール
Rademacher 摂動(Rademacher Perturbation)
SPSA で使用される確率分布。各次元で等確率で +1 または -1 を取る。 正規分布などの連続分布と異なり、離散的なので整数パラメータとの相性が良い。 全次元を同時に摂動させることで、2 回の評価で p 次元の勾配を近似できる。
→ 詳細:勾配推定と摂動
CRN(Common Random Numbers / 共通乱数法)
摂動パラメータ \(\theta^+\) と \(\theta^-\) の評価に同じ開始局面を使用することで、 局面の難易度による変動を相殺し、スコア差 \(s^+ - s^-\) の分散を削減する手法。 追加コストなしで 30-50% の分散削減効果が得られるため、常に有効にすることが推奨される。
→ 詳細:分散削減テクニック
将棋とエンジンに固有の用語
USI プロトコル(Universal Shogi Interface)
将棋エンジンと GUI/フレームワーク間の標準的な通信プロトコル。
チェスの UCI(Universal Chess Interface)を将棋向けに適応したもので、
position sfen ...、go、bestmove、setoption などのコマンドでテキストベースの通信を行う。
ShogiArena はこのプロトコルを完全実装しており、USI 準拠の任意の将棋エンジンを制御できる。
SFEN(Shogi Forsyth-Edwards Notation)
将棋の盤面状態をコンパクトなテキストで表現する記法。
駒の配置、手番、持ち駒、手数を 1 行で表す。
初期局面は lnsgkgsnl/1r5b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL b - 1。
定跡ファイルや局面のスナップショットに使用される。
KIF 形式(KIF Format)
日本将棋連盟が定めた棋譜の標準テキスト形式。 日本語の駒名と座標を使い、人間にとって読みやすい。 対局情報(対局者名、日時、戦型など)のヘッダも含められる。
CSA 形式(CSA Format)
コンピュータ将棋協会(CSA)が定めた棋譜形式。 コンピュータ処理に適した簡潔な表記で、英数字のみで記述される。 電竜戦などのコンピュータ将棋大会で標準的に使用される。
裁定(Adjudication)
フレームワークが対局を自動的に早期終了させる仕組み。 評価値の差が十分大きい場合の投了裁定、手数上限に達した場合の引き分け裁定、 勝ち判定(入玉宣言など)がある。 計算資源の節約のため、特に STC でのテストでは積極的に使用される。
定跡ファイル(Opening Book)
対局の開始局面を SFEN 形式で収録したファイル。
同じ定跡セットを使うことで対局間の条件を統一し、CRN による分散削減効果を得る。
pair_both ポリシーでは同じ局面を先後入れ替えて 2 局実施し、先手バイアスを除去する。
→ 関連:分散削減テクニック
フレームワークとツール
OpenBench
Andrew Grant が開発した、チェスエンジンテスト向けのオープンソース分散テストフレームワーク。 SPRT、SPSA、固定局数テスト、データ生成をサポートし、Django ベースの Web UI を提供する。 ShogiArena は OpenBench 互換の API クライアントを実装しており、 OpenBench/ShogiBench サーバに直接結果を提出できる。
→ 詳細:テストフレームワーク概説
Fishtest
Stockfish 開発チームが運営する公式テストインフラ。 世界中のボランティアマシン(数百台規模)で分散テストを実行し、 パッチの STC→LTC 階層テストワークフローを確立した。 SPRT の実用的な採用と五項分布モデルの普及に大きく貢献した。
→ 詳細:テストフレームワーク概説
Cutechess
チェス用のトーナメントマネージャ。CLI(cutechess-cli)と GUI の両方を提供する。 Round-robin、Gauntlet、Knockout など複数のトーナメント形式をサポートし、 SPRT 実装や裁定ロジックの参照実装として広く使われている。 ShogiArena の SPRT 実装は cutechess の設計を参考にしている。
→ 詳細:テストフレームワーク概説
fastchess
Disservin が開発した、高性能なチェスエンジントーナメントランナー。 C++ で実装されており、高速な対局実行と効率的な並列処理が特徴。 cutechess-cli の後継として開発され、SPRT や五項分布をサポートする。
→ 詳細:テストフレームワーク概説
次に読む
→ テストフレームワーク概説:OpenBench、Fishtest、Cutechess の解説と ShogiArena との関係
→ 統計的検定とチューニング:各用語の理論的背景