1 共変量シフトの定義

共変量シフトは、データの生成過程において入力の分布が変わる一方で、入力が与えられたときの目的変数の条件付き分布は変化しない、という前提から整理される分布変化の枠組みである。実務上は、学習データと実運用データ入力の見え方が異なるにもかかわらず、その背後にある「条件付き関係」が同一であるとみなせる場合に対応する。

この前提が満たされないと、学習時に最適化されたモデルが、実運用時のデータ分布の違いによって性能を落としやすくなる。したがって共変量シフトの考え方では、分布の変化を前提としてリスクを再計量し、必要なら補正することが中心的な関心となる。

1.1 基本概念(分布変化の種類)

1.1.1 分布のどこが変わるか(共変量と条件付き分布)

機械学習で扱う観測は、入力を表す共変量 \(X\)、出力を表すラベル(目的変数)を \(Y\) とすると整理できる。共変量シフトの定義では、学習時と実運用時(しばしばソースとターゲットと呼ぶ)の間で、入力 \(X\) の周辺分布 \(p(X)\) は変化してよい。一方で、条件付き分布 \(p(Y\mid X)\) は不変と仮定する。

この性質は、「同じ入力 \(X\) に対する出力の振る舞いは変わらないが、入力そのものが別の場所から来る」ことに対応する。たとえばセンサー条件や撮影条件が変わって観測値の統計が変わるといった状況が該当しやすい。

1.1.2 学習時と実運用時の関係式

学習時の分布を \(p_s(X,Y)\)、実運用時の分布を \(p_t(X,Y)\) と表す。共変量シフトでは次が成り立つとされる。

p_s(Y\mid X)=p_t(Y\mid X) \]

  • 差異は主に入力側:\[

p_s(X)\neq p_t(X) \quad \text{(一般に)} \]

この条件があると、両分布の関係は \[ p_t(X,Y)=p_t(X)p_s(Y\mid X) \] のように、目的の関係部分は共通で周辺分布のみが切り替わる形で表現できる。結果として、学習時に推定した条件付き構造を利用しつつ、評価や学習の重みを調整する発想につながる。

1.2 他のシフトとの対比

共変量シフトは分布変化の一類型であり、他の変化形と混同すると補正の設計が誤る可能性がある。そこで、近い概念との違いを明確にしておくことが重要になる。

1.2.1 ラベルシフトとの違い

ラベルシフト(prior shift)は、周辺分布のどこが変わるかという点で共変量シフトと対照的である。ラベルシフトでは \(p(Y)\) が変わり、条件付き分布 \(p(X\mid Y)\) は不変と仮定する。

共変量シフトが「\(p(Y\mid X)\) は一定、\(p(X)\) が変わる」なのに対し、ラベルシフトは「\(p(X\mid Y)\) は一定、\(p(Y)\) が変わる」という向きの違いがある。この違いにより、補正に用いるべき比(密度比)の対象も変わる。

1.2.2 確率的分類境界が変わる場合との違い

実運用で性能低下が生じる原因は分布の変化だけではない。たとえば、同じ入力 \(X\) に対しても出力の傾向が変わってしまうケースでは、条件付き不変性が壊れている。これに相当するのは \(p(Y\mid X)\) が変化する状況であり、共変量シフトの前提では扱いにくい。

この場合、入力分布の補正だけでは十分でなく、機能(表現)やラベル生成メカニズム自体の変化を考える必要がある。したがって共変量シフトの適用可能性は、条件付き分布の不変性をどれだけ妥当視できるかに依存する。

2 数理的定式化

共変量シフトの数学的な核は、ターゲット環境での期待損失を、ソース分布で観測されたサンプルから推定するための変換にある。具体的には、条件付き不変性を用いてリスク(期待値)を密度比でつなぐ。

2.1 潜在リスクと期待値の変換

2.1.1 重要度重み付けに基づく推定

共変量シフトでは、ターゲットのリスクをソースでの期待値に書き換える操作が中心となる。モデルを \(f\) とし、損失関数を \(L(f(X),Y)\) とすると、ターゲットの期待損失は \[ R_t(f)=\mathbb{E}_{(X,Y)\sim p_t}[L(f(X),Y)] \] で表される。

共変量シフトの仮定により、周辺分布の変化のみを密度比で補える。密度比 \(w(X)=\frac{p_t(X)}{p_s(X)}\) を導入すると、次の変換が成り立つ。

\[ R_t(f)=\mathbb{E}_{(X,Y)\sim p_s}\left[w(X)\,L(f(X),Y)\right] \] この式は「ターゲットで重要な入力 \(X\) を、ソースでの観測に対してより大きく重み付けする」ことを意味する。

1.2.1.1 重みの定義と積分形の理解

上式の根拠は積分の置換で説明できる。ターゲット側の期待値は \[ R_t(f)=\int L(f(x),y)\,p_t(x,y)\,dx\,dy \] である。共変量シフトでは \(p_t(x,y)=p_t(x)p_s(y\mid x)\) と書け、さらに \(p_s(x,y)=p_s(x)p_s(y\mid x)\) を用いると \[ p_t(x,y)=\frac{p_t(x)}{p_s(x)}\,p_s(x,y) \] となる。よって密度比を \(w(x)=\frac{p_t(x)}{p_s(x)}\) と置けば、ターゲットの積分はソースの積分に一致し、期待値の変換が得られる。

この導出から、密度比の定義には \(p_s(x)>0\) が必要になる(ターゲット側で起きる入力がソースで観測されない領域では推定が不可能になる)。また、\(w(X)\) が極端に大きくなると推定の分散が増え、学習や評価が不安定になり得る。

2.1.2 仮定の位置づけ(条件付き不変性)

条件付き不変性 \(p_s(Y\mid X)=p_t(Y\mid X)\) は、共変量シフトを成立させる中心仮定である。この仮定は「因果関係そのものが不変」というよりは、観測された条件のもとでラベル生成の関係が同一だと見なすための数学的要請として位置づく。

実務上は完全に満たされることを保証するのが難しいため、近似として扱われることが多い。そのため、どの特徴量設計・前処理を経た後にこの仮定が最も妥当になるか(たとえば正規化や特徴抽出の選び方)が重要になる場合がある。

2.3 推定対象(変換後のリスク、補正学習)

共変量シフト下での推定対象は、主に次の二系統に整理できる。

  1. 変換後のリスク:ターゲット環境での期待損失 \(R_t(f)\) を、ソースデータから重要度重み付けで評価する。
  2. 補正学習:重要度重みを用いた損失最適化によって、ターゲット向けのモデル \(f\) を直接学習する。

補正学習では、学習アルゴリズムの損失に密度比(または推定値)を掛け、ターゲットでより頻繁に起きる入力に対する誤差を強調する。これにより、分布の違いによるズレがある程度補える。

だし、密度比を推定する過程に誤差が含まれると、補正が過剰または不足になり得る。そのため、後続の章で扱う推定手法の選択や、重みの安定化(クリッピングや正則化)が実務では欠かせない。

3 検出と推定の実務

共変量シフトは「成立しているはず」という前提に依存するが、現実のデータでは検出と推定のステップが重要になる。ここでは、入力分布の差の検出と、必要となる密度比の推定、さらに重みの不安定化への対策を扱う。

3.1 共変量分布の差の検出

3.1.1 ホールドアウト比較統計的検定

実務での第一歩は、学習用データと実運用用データ(またはそのサンプル)で入力分布が変化しているかを確認することである。典型的には、両者を混ぜて二値分類器を作り、「どちらの環境から来たか」を当てる精度を調べる方法がある。精度が高いほど分布差があることを示唆する。

また、統計的検定としては、2サンプル検定(分布が同一かどうかを判定)を用いることができる。低次元特徴ではパラメトリック検定が、比較的高次元ではノンパラメトリック検定や近似手法が選ばれることが多い。いずれにせよ検定は「入力の変化」を扱うものであり、条件付き不変性そのものを直接保証するものではない点に注意が必要である。

3.1.2 表現学習に基づく距離・指標

高次元での比較では、手作業の特徴量よりも表現学習によって得た埋め込み空間のほうが分布差が捉えやすい場合がある。たとえば特徴抽出器を共通にし、その埋め込みの分布を比較することで、見かけ上のズレを統計量に変換できる。

距離指標としては、平均埋め込みの差や、再サンプリングに基づく不確実性を伴う指標、さらには最適輸送に関連する距離など、用途に応じて多様な選択肢がある。目的は「分布変化の大きさ」を定量化して、密度比推定の難しさや補正の必要性を判断する材料を得ることにある。

3.2 重要度比(密度比)の推定

3.2.1 密度比推定の代表的手法

密度比 \(w(x)=\frac{p_t(x)}{p_s(x)}\) を推定する一般的な考え方として、分類に基づく手法が知られている。学習データと運用データを識別する分類問題を構成し、出力確率から比を復元することで密度比が得られる。直感的には、「運用由来であるほどその入力はターゲット側に偏っている」ため、分類器の信号が比の推定に相当する。

別の系統としては、密度そのものを推定して比を取る方法、あるいは比を直接モデル化して損失関数を設計する手法がある。密度比推定では直接比を狙う方が分散や頑健性の観点で有利な場合があるが、設計の難度は上がることがある。

3.2.2 ホールドアウトデータの使い方と注意点

密度比推定には、ソースとターゲットの区別ができるデータが必要である。しばしば、学習に使うデータと密度比推定のためのデータを分け、同一データの再利用による過大評価を避ける工夫が行われる。ホールドアウトの分割は、推定バイアスやモデルの取り違えを抑えるための実務的な安全策となる。

注意点として、推定の分散増大(重みのばらつき)や、密度比が定義できない領域(ソースで見られない入力)の存在が挙げられる。さらに、データ収集時点の違いが大きいほど、入力の関係性の変化(条件付き不変性の破れ)が潜んでしまうため、比の推定結果を「完全な補正」として扱わない姿勢が重要になる。

3.3 外れ値・重み爆発への対策

重要度重み付けの理論上は正しい変換を与えるが、実装では外れ値の寄与が急増しやすい。たとえば密度比が大きい入力は推定誤差も相対的に増えやすく、結果として損失や勾配の分散が跳ねる。これを「重み爆発」と呼ぶことがある。

対策としては、重みのクリッピング(上限・下限を設ける)、重みの滑らか化、分散を抑える推定器の採用、あるいは損失集約の工夫(頑健損失の利用など)がある。どの対策を採るかは、精度より安定性を優先する場面か、逆にバイアスを許してでも分散を減らしたい場面かで変わる。実験計画では、重みの分布(分位点、最大値など)を監視しながら設計することが実務上の要点となる。

4 補正と学習への応用

共変量シフトを前提に補正を行う際、最も代表的なのは重要度重み付け学習である。加えて、ドメイン適応としての運用設計、そして分布外性能の評価指標を適切に選ぶことが、実用化では不可欠となる。

4.1 重要度重み付け学習

4.1.1 損失関数への重み付け

補正学習では、学習データ \((x_i,y_i)\) に対して損失 \(L(f(x_i),y_i)\) を評価する際、密度比の推定値 \(\hat{w}(x_i)\) を掛ける。 \[ \min_f \sum_i \hat{w}(x_i)\,L(f(x_i),y_i) \] という形にすることで、ターゲット分布でのリスク最小化に近い目的を実現する。

実務上は、重みのスケール(総和の扱い)や学習率との兼ね合いも効くため、単に掛け算するだけでなく正規化(たとえば重みの平均が一定になるように調整)を行うことがある。目的は、重み付けによって学習が不安定にならないようにする点にある。

4.1.2 正則化と重みのクリッピング

密度比推定誤差と重み爆発を抑えるため、正則化がしばしば用いられる。例として、重みの大きさにペナルティを課す、もしくはクリップ後の重みで損失を再計算するという方針がある。これらはバイアスを導入する可能性がある一方、分散の暴走を防ぎ、全体の汎化を改善しうる。

また、重み推定器自体に対する正則化(過学習の抑制、特徴抽出の汎化性能の確保)が重要になることも多い。補正は「誤差の伝播」でもあるため、推定部分の安定化は学習全体の信頼性に直結する。

4.2 ドメイン適応としての運用

4.2.1 学習データと適用データの設計

ドメイン適応として共変量シフトを扱う場合、学習データ(ソース)と適用データ(ターゲット)をどう収集・準備するかが成果を左右する。ターゲット側の入力 \(X\) は、ラベルがなくてもよい場合が多いが、少なくとも入力分布を代表するサンプルが必要になる。

設計の観点では、特徴量の前処理を両ドメインで整合させること、可能なら同じセンサー・プロトコルに基づいて収集された入力を用いること、そして時間変化があるなら「いつのターゲット」を反映するかを決めることが重要になる。ここを曖昧にすると、補正対象が別の分布を向いてしまう。

4.2.2 オンライン更新の考え方

実運用ではターゲット分布がさらに変化し得る。そこで、一定期間ごとに分布のずれを監視し、必要に応じて密度比推定やモデルの再学習を行う運用が考えられる。オンライン更新では、計算コストや遅延を抑えつつ、重み推定の安定性を維持する仕組みが求められる。

更新タイミングの判断は、検出指標の閾値や、重みの分布変化の大きさなどを根拠に行うことが多い。特にオンラインでは、過去データの再利用やバッファ管理により、推定の分散を抑えながら追従する戦略が取られる。

4.3 評価とベンチマーク指標

4.3.1 分布外性能の測り方

共変量シフトがある場合の評価は、単に学習時の分割に対する精度を報告するだけでは不十分である。ターゲットに近いデータ、あるいは実運用で想定される入力分布に従うデータで評価する必要がある。評価ではリスク(損失)や分類指標など、タスクに応じた測度を用いる。

分布外性能としては、ターゲット分布での平均性能に加え、失敗領域での振る舞い(特定の入力帯における誤りの増加)を確認することが役立つ。重要度重み付けで補正した場合でも、外れ値領域での不安定性が隠れてしまう可能性があるため、重みの統計と合わせて見るのが望ましい。

4.3.2 共変量シフト下での妥当性検証

共変量シフトの前提(条件付き不変性)を完全に検証することは難しいが、妥当性の兆候を調べることはできる。たとえば、同一の入力特徴に対して出力の傾向が保たれているか、条件付きのキャリブレーションがずれていないか、または重みで補正した評価が過度に改善しすぎていないかなどを観察する。

また、分布差が強い場合は、条件付き関係が変化している可能性が上がるため、補正の効果と検出指標の組み合わせから判断する必要がある。要点は「入力分布の差を補正しただけで、現実のラベル関係まで一致する」と単純化しないことにある。