3.7 多出力における収縮と選択

複数の目的変数を同時に予測するとき、各出力を独立に扱うより「出力間の相関」を活用した方が精度が上がる。 正準相関分析(CCA)に基づく縮小ランク回帰と、Curds and Whey法という2つのアプローチを探る。

第3章で学んだ収縮の考え方(リッジ回帰など)を多出力の世界に拡張する。 「出力間の共有情報」を活用することで、個別の予測を超えた精度向上が実現できる。

複数の目的変数があるとき

医療診断の場面を想像してほしい。患者の血液検査データから、「血圧」「血糖値」「コレステロール値」の3つを同時に予測する必要があるとしよう。

最もシンプルな方法は「それぞれを別々の線形回帰で予測する」こと。 実は、最小二乗法では各出力を独立に推定しても、まとめて推定しても数学的に同じ答えが得られる。 だからこそ、長い間これで十分と思われてきた。

でも、本当にそれで十分なのだろうか?

1つの入力空間から複数の出力への変換と、出力間の相関関係を可視化

上のアニメーションを見てほしい。青い点群(入力)から変換を経て、右の黄色い点群(出力)が現れる。 そして出力点が楕円形のパターンを形成している――これが出力間の相関だ。

血圧と血糖値には相関があるはずだ。片方がうまく予測できた方向は、もう片方の予測にも役立つはずではないか? 独立に予測するということは、この「共有情報」を二度活用できないことを意味する。 言い換えれば、使えるはずの情報を捨てているのだ。

この問題を多出力回帰として定式化しよう。K個の目的変数があるとき、モデルは次のように書ける:

$$Y_k = \beta_{0k} + X_1\beta_{1k} + \cdots + X_p\beta_{pk} + \varepsilon_k, \quad k = 1, \ldots, K$$

これをK個の方程式が並んでいると見るより、行列でまとめた方が本質が見えやすい:

$$\mathbf{Y} = \mathbf{X}\mathbf{B} + \mathbf{E}$$

ここで $\mathbf{Y}$$N \times K$ の出力行列(N個のデータ、K個の出力)、$\mathbf{B}$$(p+1) \times K$ の係数行列だ。 各列が「1つの出力に対する回帰係数」を表している。

このセクションでは、出力間の依存関係を積極的に活用する2つのアプローチを探っていく。

正準相関分析(CCA)— 隠れた共通構造を探す

多出力問題のカギは「入力と出力の間に、どんな隠れた共通構造があるか」を見つけることだ。

例えば、複数の血液検査値が実は「1つの炎症マーカー」という共通の原因を持つとしたら、 その原因方向を使って全ての出力を同時に説明できるかもしれない。

CCAが入力と出力の共通方向を段階的に発見する様子。左が入力空間、右が出力空間

アニメーションを見てほしい。左の入力点群と右の出力点群——それぞれの空間に「方向」を引いていく。 青い矢印(入力の方向)と黄色い矢印(出力の方向)が最も強く相関するよう選ばれ、緑の弧でその強い相関が表現されている。 2本目の矢印(灰色)は相関が弱く、「あまり役に立たない方向」だ。

これが正準相関分析(Canonical Correlation Analysis, CCA)の発想だ。 「正準(canonical)」とは「代表的な・標準的な」という意味で、「両空間を最もよく代表する方向」を指す。

CCAは次のような「線形結合の組」を探す:

この2つが最も強い相関を持つように $v_m$$u_m$ を選ぶ。 第1番目の組が「最も重要な方向」を捉え、第2番目の組は最初と無相関な中で次に重要な方向、という順序で進む。

CCAが最大化する目標は相関の二乗だ:

$$\text{Corr}^2(\mathbf{Y}u_m, \mathbf{X}v_m)$$

ここで $u_m$$u_{m'}$$m \neq m'$)は無相関、$v_m$$v_{m'}$ も無相関となるように制約を課す。 合計で最大 $M = \min(K, p)$ 組の正準変量を見つけられる。

重要な洞察: 先頭の正準変量ほど入力で予測しやすく、後ろに行くほど予測が難しい。 つまり、後ろの方向は「捨てても大きな損失はない」ことが多い——これが次のセクションで活かされる鍵だ。

縮小ランク回帰 — 予測しにくい方向を切り捨てる

CCAで「入力から予測しやすい方向」と「予測しにくい方向」が分かった。 ここで素朴な疑問が浮かぶ——「予測しにくい方向」は本当に有害なのだろうか? ただ情報が少ないだけなら、使っても害はないのでは?

実は、情報が少ない方向のデータにはノイズが多く含まれる。 その方向で予測しようとすると、ノイズを学んでしまい予測の分散が増える。 だから、予測しにくい方向は最初から無視してしまえ——というのが縮小ランク回帰(Reduced-Rank Regression)の発想だ。

3次元出力空間から2次元への射影。青い点が平面に投影され、黄色の点として現れる

上のアニメーションを見てほしい。3次元の出力空間(Y1, Y2, Y3)に散らばる青い点群が、 ランク2の平面(半透明の平面)に投影される。赤い矢印が各点の「落ち先」を示し、 下の2D空間に投影後の黄色い点群が現れる。

3次元 → 2次元への「次元削減」がここで起きている。 3つ目の方向に含まれる情報を捨てることで、残りの2方向での予測をよりクリーンにできる。

具体的な手順は次の通りだ:

  1. 出力 $\mathbf{Y}$ を正準方向 $\mathbf{U}_m$(上位 $m$ 列)に射影する
  2. 射影した空間で通常の線形回帰を行う
  3. 予測結果を元の出力空間に逆変換する

数式で表すと、ランク $m$ の制約付き多変量回帰の解は:

$$\hat{\mathbf{B}}^T(m) = \mathbf{B}^{ls}\mathbf{U}_m\mathbf{U}_m^-$$

ここで $\mathbf{B}^{ls}$ は通常の最小二乗解、$\mathbf{U}_m$ は上位 $m$ 個の正準ベクトル($K \times m$ 行列)、$\mathbf{U}_m^-$ はその一般逆行列(正方でない行列に対する「逆行列の代わり」)だ。

当てはまり値を計算すると:

$$\hat{\mathbf{Y}}^r(m) = \mathbf{X}(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\mathbf{Y}\mathbf{U}_m\mathbf{U}_m^- = \mathbf{H}\mathbf{Y}\mathbf{P}_m$$

ここで $\mathbf{H}$ は「入力空間への射影行列」、$\mathbf{P}_m$ は「出力の上位 $m$ 次元への射影行列」だ。 「入力空間への射影」と「出力空間の次元削減」という2つの操作の組み合わせ——これが縮小ランク回帰の本質だ。

$m = M$(全方向を使う)なら通常の最小二乗法と同じ結果になるが、$m < M$ にすることで自由度を削減し、 バイアスを少し導入する代わりに分散を大幅に下げられる。 これはまさにバイアス-バリアンス・トレードオフの典型例だ。

Curds and Whey法 — ハード削除よりなめらかな収縮

縮小ランク回帰は「予測しにくい方向を完全に切り捨てる」というハードな操作だった。 ここでまた疑問が湧く——完全にゼロにする必要はあるのか?「少し縮める」だけではダメなのか?

実はその通りで、第3章で学んだRidge回帰の思想をここでも活かせる。 完全に捨てるより、重要度に応じて縮めた方が予測の安定性が増す。

各正準方向の収縮係数を棒グラフで表示。青い点が正準相関係数、黄色い棒が収縮係数、赤い点線がハードカットの境界

このグラフが表しているものを読み解こう。横軸は正準方向のインデックス(1番が最重要)、縦軸は0〜1の係数だ。

Curds and Wheyはこの切り捨て境界を連続的な収縮に置き換える。 Breiman と Friedman が1997年に提案した収縮係数は:

$$\lambda_m = \frac{c_m^2}{c_m^2 + \frac{K}{p}(1 - c_m^2)}$$

この式の意味を理解しよう:

係数行列をまとめると:

$$\hat{\mathbf{B}}^{c+w} = \mathbf{B}^{ls}\mathbf{U}\mathbf{\Lambda}\mathbf{U}^{-1}$$

ここで $\mathbf{\Lambda} = \text{diag}(\lambda_1, \ldots, \lambda_M)$ は収縮係数の対角行列だ。 当てはまり値は:

$$\hat{\mathbf{Y}}^{c+w} = \mathbf{H}\mathbf{Y}\mathbf{S}^{c+w}$$

ここで $\mathbf{S}^{c+w} = \mathbf{U}\mathbf{\Lambda}\mathbf{U}^{-1}$ が出力空間への収縮行列だ。

縮小ランク回帰と比べた違いをひと言で言うなら:縮小ランク回帰は「0か1か(切り捨てるか使うか)」のバイナリな決断だが、 Curds and Wheyは「どの方向もある程度は使うが、予測しにくい方向ほど割引する」という連続的な判断をする。 Ridge回帰がLassoより安定することが多いのと同じ理由で、このなめらかさが精度向上につながる。

まとめ — 3つのアプローチの比較

このセクションで学んだ3つのアプローチを、直接比較してみよう。

3手法(OLS・縮小ランク・Curds and Whey)の予測精度を横並びで比較。下に行くほど予測値が真値に近い

3つのパネルを見比べてほしい。青い点が真の値、色付きの点が各手法の予測値、 色付きの線がその「誤差」だ。下に行くほど誤差が小さくなっているのがわかるだろう。

3つのアプローチを整理する:

方法1: 独立最小二乗法

$$\hat{\mathbf{Y}}^{ls} = \mathbf{H}\mathbf{Y}$$
  • 各出力を独立に予測
  • シンプルで計算が速い
  • 出力間の相関を完全に無視
  • 全方向を使い、収縮なし

方法2: 縮小ランク回帰

$$\hat{\mathbf{Y}}^r(m) = \mathbf{H}\mathbf{Y}\mathbf{P}_m$$
  • CCAで重要な方向を特定
  • 上位 $m$ 方向のみ使用(残りを切り捨て)
  • ハードな選択:0 or 1
  • $m = M$ のとき独立OLSと一致

方法3: Curds and Whey法

$$\hat{\mathbf{Y}}^{c+w} = \mathbf{H}\mathbf{Y}\mathbf{S}^{c+w}$$
  • CCAで各方向の重要度を評価
  • すべての方向を使うが、重要度に応じて縮小
  • なめらかな収縮:0〜1の連続的な重み
  • $\mathbf{\Lambda} = \mathbf{I}$ のとき独立OLSと一致

独立OLSは両手法の特殊ケースだ。縮小ランク回帰は全方向を使うとき($m = M$)独立OLSと一致し、 Curds and Wheyは収縮なし($\mathbf{\Lambda} = \mathbf{I}$)のとき独立OLSと一致する。

なぜ出力間の相関を活用することが有効なのか?

直感的な説明:もし血圧と血糖値が強く相関しているなら、「血圧をうまく予測できた方向」は「血糖値の予測にも役立つ」はずだ。 独立に予測するとこの「共有情報」を二度活用できないが、CCAベースの手法はこの共有情報を効率よく使う。

一般に、Curds and Whey法が最も良い予測性能を示すことが多い。 ただし、計算コストは増える。Ridge回帰Lassoより安定することが多いのと同じ理由—— 急に切り捨てるより徐々に縮める方が予測の分散が小さくなりやすいのだ。

多出力回帰の世界では、「各出力を独立に扱う」という自然な発想を超えて、 出力間の構造を積極的に活用することで大きな改善が得られる。 これがこのセクションの核心だ。