ML 研究向け GPU · KYC 不要の暗号通貨決済
IteraGPU
手法 · 実験を設計する

アブレーションは一つの意思決定を切り分けるべきです。

アブレーションを計画するには、検討する変更、機能する基準、そしてあなたの決定を変えるであろう結果を定義します。同じ評価データでバリアントを比較し、利得を積み上げる前にそれらの交互作用を確認します。良い計画は、繰り返しと確認の余地も確保します。多くの設定を一度だけ試すことは、狭い問いをしっかり検証するよりも確信が得られないかもしれません。

01 /

反証可能な仮説を書く

「モデルを改善する」では実験が明確になりません。代わりにこう書きます。「クラスの重み付けは、頻出クラスで許容されるリグレッションを超えずに、希少クラスでの品質を向上させる。」主要なメトリクス、重要なサブグループ、実用的な効果の閾値を明示します。また、優先される制約も定めます。メモリ、時間、入力のカバレッジ、モデルの単純さなどです。

追加と削除を区別しましょう。単純な基準にコンポーネントを追加すると、そのコンテキストでの寄与を測ります。完全なシステムから削除すると、そのシステムが失うものを測ります。コンポーネントが相互作用する場合、2つの問いは異なる答えを生み得ます。したがって結論では、基準と他の要因の状態を明示する必要があります。

期待される成果物は、変種の表を伴う意思決定であり、単なる最高スコアではありません。試行を予約する前に、各候補を維持・放棄・深掘りする判断基準を書き出してください。

技術的な出典: NIST — 実験計画の目的を定義する

02 /

対照と解釈可能な変種を構築する

対照はリファレンスの手順を踏襲し、そのバージョン、データ、チェックポイント選択ルールを含みます。これは現在のキャンペーンで実行可能でなければなりません。予測や完全なプロトコルを伴わない古い指標は目安にはなりますが、自動的にこの対照の代わりにはなりません。

各因子について、比較する2つの状態を正確に宣言します。「拡張有効」は曖昧すぎます。変換、確率、対象データを保ちましょう。共通に保たれるパラメータを記述します。検討対象の因子以外の前処理、分割、オプティマイザ、学習予算、評価方法です。学習ステップは固定のまま処理されるトークンが変わる場合は、その結果を記録します。

最終テストセットは変種の選択から除外してください。学習される変換と調整の決定には、そのために用意されたデータを使用する必要があります。テストの誤りに合わせてモデルを調整した後の改善は、もはや独立した評価とはみなされません。

技術的な出典: scikit-learn — データリークを避ける

03 /

2つの因子には4つの状況が必要

クラスの重み付けであるAと、学習時の拡張ルールであるBを検討しているとします。それらの相互作用を見るには、対照、Aのみ、Bのみ、AとBを調べます。この2要因2水準の計画には4つの構成が含まれます。k個の二値要因の場合、完全計画には反復の前に2ᵏの構成が含まれます。試行数は急速に増加します。

次の表は、考え方を説明するために作られた仮の数値例です。そのスコアはどの学習からも得られたものではありません。0から100の尺度での架空のマクロF1平均を表しています。実際の作業では、個々の値とそのばらつきが不可欠です。

4つの構成の説明例 — 架空の値、未測定
構成A:重み付けB : augmentation架空のマクロF1(100点満点)
対照いいえいいえ70,0
Aのみはいいいえ71,2
Bのみいいえはい70,8
A + Bはいはい71,5

技術的な出典: NIST — 2水準の完全要因計画

04 /

効果とその交互作用を読む

この例では、AはBなしで1.2ポイントをもたらしますが、Bがすでに有効な場合は0.7ポイントのみです。BはAなしで0.8ポイント、Aありで0.3ポイントをもたらします。組み合わせた利得は1.5ポイントである一方、2つの単独利得の合計は2.0ポイントです。ここでの−0.5ポイントの差は、非加算的な交互作用を表しています。

この計算は、その頑健性もメカニズムの説明も確立しません。どの問いを確認すべきかを教えてくれます。Aを含むシステムにBを追加することは、この例でのわずか0.3ポイントのためにその複雑さを正当化するのでしょうか。予定されたサブグループも確認してください。同じ平均が異なる利得と損失を隠すことがあります。

プロトコルが許す場合は、対応のある反復でこれらの差を比較してください。各変種の最良のシードを選んではいけません。試行によって符号や振幅が大きく変わる場合、決定は不確実なままです。

加法性からの例示的な差 = score(A+B) − score(A) − score(B) + score(対照) = 71.5 − 71.2 − 70.8 + 70.0 = −0.5ポイント。

技術的な出典: NIST — 要因計画における組み合わせと交互作用

05 /

重要な決定に予算を配分する

試行枠は計画のためのツールであり、GPU速度の予測ではありません。例:組織の予算として完全な実行を24回分確保しているとします。4つの構成にそれぞれ3つのシードで12回、対照と候補の確認に新しいシード5つで10回、正当な再実行に2回を割り当てます。合計は24ですが、それが何時間かかるかはまだ何も示していません。

ここでは最初の3つのシードは探索のために使い、勝者を認定するためではありません。この系列を観察する前に候補の選定ルールを定めておきます。確認は取り決めたプロトコルを用います。新しいシードは初期の選択への依存を減らしますが、モデルの調整にすでに使われたテストセットを修正するものではありません。

その計算枠で必要な反復ができない場合は、係数を減らすか、質問を先送りにしてください。実際の意思決定に影響する変更を優先しましょう。高コストなコンポーネントの削除、失敗の解消、あるいは近い選択肢の優劣をつけることなどです。料金プランを比較する前に、評価と成果物のための時間を確保しておいてください。

24回の実行枠の配分例(所要時間は想定しない)
ステップ計算実行回数
探索4構成 × 3シード12
確認2構成 × 5つの新しいシード10
記録された再実行予備2
総枠12 + 10 + 224
06 /

順序と打ち切りのルールを準備する

実行のリストは起動前に書き出し、識別子、構成、シード、優先度を記載します。すべての対照を終えてからすべての候補を終えるのではなく、変種を実施順に分散させてください。期間、データセット、マシンが比較のブロックを構成する場合は、そのブロックを文書化します。系列の途中で環境を変更した場合は、それが見えるようにしておく必要があります。

エラーの繰り返しやメモリ超過など、技術的な打ち切り理由を用意しておきます。各試行とそのステータスを保持してください。失敗をより短い実行で黙って置き換えたり、期待したスコアが得られるまで失望した試行を新しいシードで置き換えたりしてはいけません。

スコアに基づいて早期に打ち切る場合、分析プロトコルが変わります。中間的な判断を予定しているなら、そのルールと探索上の位置づけをあらかじめ明示してください。確認的な結論を得るには、そうした判断に適した分析計画を維持します。

07 /

検証可能な結論でアブレーションを締めくくる

最終的な記録には、仮説、対照、因子、繰り返し、差、失敗事例を記載します。各値を予測とそれを生み出した実行に関連付けてください。最後に明示的な判断で締めくくります。コンポーネントを維持する、削除する、あるいは選択するにはデータが不十分である、のいずれかです。

3つの近道を避けてください。前処理も変わっているのに変化をAに帰属させること。個別の利得を足し合わせ、その組み合わせを検証しないこと。単一のコーパスから一般的なルールを宣言すること。アブレーションは定義されたプロトコルにおける観察を確立するものです。その射程は、データ、モデル、そして実際に検討した変動に依存します。

実用的な質問

すべての組み合わせを常にテストすべきですか?

完全な計画は交互作用の把握に有用ですが、そのコストは因子の数とともに増大します。まず、あなたの判断を変えうる因子を絞り込んでください。分離できない効果を明示するのであれば、縮小した計画も可能です。存在しない組み合わせをテスト済みとして提示してはいけません。

以前のキャンペーンの対照を再利用できますか?

データ、コード、予算、モデル選択、評価が実際に比較可能であり、文書化されていれば再利用できます。そうでなければ、現在のプロトコルで対照を再実行してください。バージョンや分割の違いが、コンポーネントに帰属させようとしていた差を説明しうるからです。

否定的な結果は、そのコンポーネントが無用だという意味ですか?

否定的な結果は、検討した条件下で狙った効果が得られないこと、あるいは証拠が不足していることを示します。一般化する前に、不確実性と交互作用を確認してください。この結果を記録しておけば、すでに検討した筋道に予算を再び費やすことを避けられます。