何が変動し、何が繰り返しかを定義する
まず問いから始めます。評価したいのは、学習の初期化の効果、データの順序、train/testの分割、それとも確率的生成の効果でしょうか。シードは乱数生成器を制御しますが、それだけでこれらの次元のすべてを特定するものではありません。実行ごとに1行を保ち、実際に変更した因子を記録します。
同じチェックポイントを同じコーパスで決定的に評価する作業を10回繰り返しても、10回の独立した学習にはなりません。同様に、単一モデルから得た1000件の予測は、そのばらつきを推定するための複数回の学習の代わりにはなりません。判断に対応する繰り返しの単位を選びましょう。
系列を始める前に、主要な指標、その意味、そして変更を正当化する最小の効果を決めておきましょう。以下の例では、値が高いほど望ましく、有用とみなす閾値は0〜100で表示される指標における0.30ポイントという例示的な値です。この閾値はプロジェクトの判断によるものであり、普遍的な統計的ルールではありません。
共通の条件で構成を対応させる
ペア i について、参照 A と候補 B を同じデータ分割で、かつ予定された共通の条件下で実行します。次に dᵢ = score(Bᵢ) − score(Aᵢ) を計算します。対応付けは結果の前に定義された対応関係に基づくものであり、後から似たスコア同士を結びつけることではありません。
同じシードのリストを使うとペアの整理に役立つことがありますが、2つのアーキテクチャは乱数を異なる形で消費する可能性があります。コードが区別する場合は、初期化、データ、生成のシードを別々に宣言します。また、分割やその識別子も記録します。共通の整数はデータが同じように走査されたことを証明しません。
あるペアに失敗が含まれる場合は、両方のステータスを保持し、そのペアをどう扱うかを説明します。集団が変わったことを示さずに、成功した候補5件の平均と参照6件の平均を比べてはいけません。
技術的な出典: NIST — 対応のある観測間の対応関係
シードと決定性の限界を押さえる
PyTorch は、同じシードであっても、バージョン、プラットフォーム、あるいは CPU と GPU の実行の間で完全に再現可能な結果は保証されないと述べています。そのガイドでは、生成器の制御と非決定的な演算の制御を区別しています。環境を「seed 固定」と要約するのではなく、バージョンと適用したオプションを記録しましょう。
決定的な実行は、とりわけ、与えられた条件下で挙動を再現するために役立ちます。しかし、モデルが他の初期化やデータに対して頑健であることを示すものではありません。逆に、同一の再実行の間に生じた差は、候補の効果として解釈する前に診断する価値があります。
両方のバリアントで同じ決定性ポリシーを維持しましょう。エラーの診断のためにポリシーを変更した場合は、その系列を別に識別しましょう。実験結果は、それが得られた条件に結び付けたままにしておく必要があります。
技術的な出典: PyTorch 2.14 — 再現性と乱数の制御
計算例:5つの対応のある差
以下は計算用の架空の5ペアで、学習は実行していません。シードは例示用の識別子です。ここでは参照と候補が同じ比較プロトコルを用います。スコアは100点満点で表し、差はポイントであり、相対的なパーセンテージではありません。
差の平均は (0.4 + 0.3 + 0.1 + 0.5 + 0.1) / 5 = 0.28ポイントです。中央値は0.30ポイントで、範囲は0.10から0.50です。差の標本標準偏差は約0.179ポイントで、分母は n − 1 です。5つの符号はすべて正ですが、平均利得に対して振幅は依然として大きいままです。
| 例示用シード | 参照 A | 候補 B | B − A |
|---|---|---|---|
| 17 | 71,0 | 71,4 | +0,4 |
| 29 | 71,6 | 71,9 | +0,3 |
| 43 | 71,3 | 71,4 | +0,1 |
| 71 | 70,8 | 71,3 | +0,5 |
| 101 | 71,8 | 71,9 | +0,1 |
区間を過大な意味合いを与えずに読む
一般的な計算を例示するために、ペア間で差が独立であり、かつ近似的に正規分布に従うと仮定しましょう。その平均に対する95%の Student の区間は、ここでは自由度4を用いて、0.28 ± 2.776 × 0.080、すなわち約 [0.058; 0.502] ポイントとなります。わずか5ペアでは、分布の形状を評価するのは困難です。計算によってこれらの仮定が真になるわけではありません。
この区間は例ではゼロより上ですが、0.30ポイントに設定された実用的なしきい値を含んでいます。したがって、「平均ゲインが0.30ポイントを超える」という厳格なルールは支持しません。正の差であっても、変更を正当化するには小さすぎたり不確かすぎたりする可能性があります。
95%区間は、その仮定の下での被覆手続きを記述するものであり、計算後にパラメータに付随する95%の確率ではありません。ここではペアが表す変動のみをカバーしており、別の領域、別のコーパス、将来のハードウェアを自動的にカバーするものではありません。
SciPyを使用する場合、ttest_relは対応のあるサンプルを比較し、信頼区間を提供します。配列の順序が符号を決定します。B − Aの場合、Bを最初に置きます。p値だけでなく、値と使用した手法を保存してください。
技術的な出典: NIST — 平均の信頼区間 · SciPy 1.18 — ttest_relと差の区間
意思決定と後続の反復を準備する
例の結果は「有用なゲインは未確立」であり、「無用な候補」ではありません。変更のコストに応じて、基準を維持する、収集を続ける、あるいはより大幅な変更をテストすることができます。このルールは、データを見る前に宣言してください。実用的なしきい値を上回る下限は、プロトコルの残りの部分が妥当であれば、採用をより強く支持します。
必要な精度と予想される変動性から反復を計画し、失敗に対する余裕を確保してください。普遍的に結論を保証するシード数は存在しません。パイロットは分散の推定に役立ちますが、その探索的な位置づけを保ち、その後で確認手順を確定してください。
各ペアの後に結果を確認し、有利になった時点で停止することを、固定サンプルサイズ用に設計された区間を使って行うのは避けてください。サンプルサイズと分析を事前に選択するか、適切な逐次法を使用してください。失望した候補にのみ試行を追加することも、比較のバランスを変えてしまいます。
訓練の変動性とコーパス評価を混同しない
固定されたテストセット上での一連のシードは、そのセット上での訓練の変動を明らかにします。テスト例の選択に起因する不確実性を単独で測定するものではありません。分割やドメインも問題に含まれる場合は、これらの次元を変化させつつ、単一の反復カウンタに混ぜない計画を立ててください。
最終評価はモデル選択から切り離しておいてください。同じテストで多数のバリアントから選択すると、偶然そこに良く見える選択肢が有利になります。サブグループや補完的な指標は意思決定を照らすべきであり、その数と探索的な位置づけを可視化してください。
最終的な出力は、生スコア、ペア、差、分散、区間の手法、そして実用的なしきい値に対する決定をまとめます。失敗と一般化の限界も添えてください。そうすれば、その差が十分、不十分、あるいはまだ判定不能と考える理由を説明できます。
技術的な出典: scikit-learn — テストをモデル選択から切り離す
実用的な質問
5つのシードで選択するのに十分ですか?
5つのシードは最初の観察には使えますが、十分な精度を保証するものではありません。必要な数は変動性と最小の有用な効果に依存します。生の差と不確実性を検討してください。まだ判定不能な結果は、魔法の数ではなく、より適切に設計されたプロトコルを求めています。
ゼロを含む区間は等価性を証明しますか?
ゼロを含む区間は等価性を証明しません。重要なゲインや損失とも両立し得ます。実用的な等価性を支持するには、許容できるマージンを事前に設定し、その問いに適した分析を、検討するのに十分な精度で使用してください。
最良のシードだけを公開してもよいですか?
最良のシードは、手続きの典型的な性能ではなく、有利な選択を表しています。予定されたすべての反復と、提供されるモデルの選択ルールを公開してください。その最良モデルを評価する必要がある場合は、選択に使われなかった最終評価を使用してください。