5.6–5.7 スプラインの応用拡張

スプラインは「1変数・回帰専用のツール」なのだろうか?

実は、滑らかさへの罰則というコアアイデアは驚くほど汎用的です。 分類問題(0か1かを予測したい)でも、多次元データ(複数の入力変数がある)でも、 同じ枠組みがそのまま機能します。 本章では前半で学んだスムージングスプラインを、 まず分類問題へ(5.6節)、次に多次元入力へ(5.7節)拡張する方法を見ていきます。

「分類に滑らかさを」— ロジスティック回帰への応用

回帰問題ではデータ点に滑らかな曲線をフィットさせました。 では分類問題——出力が0か1の二値——ではどうすればいいでしょうか?

直感的には、あるデータ点の「クラス1に属する確率」を表す曲線を滑らかに推定したい。 単純に0/1のデータを直接スプラインでフィットしても、確率の解釈がうまくいきません。 ここで登場するのが対数オッズの考え方です。

二値データ(青=クラス0、黄=クラス1)と滑らかなシグモイド確率曲線(緑)を示すアニメーション
青い点(y=0)と黄色い点(y=1)を分ける確率曲線(緑)が描かれ、決定境界(赤)が現れる

クラス1の確率 $p(x) = \Pr(Y=1|X=x)$ に対して、 その対数オッズが滑らかな関数 $f(x)$ であると仮定します:

$$\log \frac{\Pr(Y=1|X=x)}{\Pr(Y=0|X=x)} = f(x)$$

これを逆に解くと、確率はシグモイド型の曲線になります:

$$\Pr(Y=1|X=x) = \frac{e^{f(x)}}{1 + e^{f(x)}}$$

つまり、$f(x)$ が滑らかな関数ならば、確率 $p(x)$ もなめらかに変化します。 上のアニメーションで見えているシグモイド型の緑の曲線が、まさにこの確率関数です。 赤い垂直線は「確率がちょうど0.5になる点」——すなわち決定境界です。

問題は $f(x)$ をどう推定するかです。 スムージングスプラインと同様に、データへのフィットと滑らかさのバランスを取る目的関数を最大化します:

$$\ell(f; \lambda) = \sum_{i=1}^N \left[y_i f(x_i) - \log(1 + e^{f(x_i)})\right] - \frac{\lambda}{2}\int \{f''(t)\}^2 dt$$

この式は2つの部分からなります。 第1項は対数尤度(データへのフィット度)、 第2項は滑らかさへの罰則$\lambda$ が大きいほど滑らかな曲線を好み、$\lambda \to 0$ でデータをほぼ完全に通過する曲線になります。

スムージングスプラインとの比較:

  • スムージングスプライン(回帰):二乗誤差をデータフィット項として使用
  • 非パラメトリックロジスティック回帰:対数尤度をデータフィット項として使用
  • 両者とも罰則項 $\int \{f''\}^2 dt$ は同じ!

反復重み付き最小二乗法による最適化

通常の平滑化スプラインは閉じた形の解(行列計算)で求まりますが、ロジスティック回帰の場合は非線形なので反復計算が必要になります。

ここで山の上から少しずつ転がり落ちる様子を想像してください。 谷底が「最適解」で、各ステップで少しずつ最適値に近づく——これがニュートン・ラフソン法の直感です。

直線の初期推定から始まり、段階的にシグモイド曲線に収束していく反復最適化の様子
グレーの直線(初期推定)が青→緑と段階的に変形し、滑らかなシグモイド型曲線に収束する

このアニメーションの鍵となる点があります。 各反復ステップは「重み付きスムージングスプライン問題」に帰着するのです—— つまり前章で学んだ技術がそのまま使えます。

具体的には、現在の推定 $f^{\text{old}}$ から 「修正された応答変数」 $\mathbf{z}$ を計算し、 それに重み付きスムージングスプラインをフィットさせます:

$$\mathbf{f}^{\text{new}} = \mathbf{S}_{\lambda, w} \mathbf{z}$$

ここで $\mathbf{S}_{\lambda, w}$ は重み付きスムーザー行列です。 この更新を繰り返すことで、$f(x)$ が最適な滑らかな確率曲線に収束します。

更新式を展開すると:

$$\theta^{\text{new}} = (\mathbf{N}^T\mathbf{W}\mathbf{N} + \lambda\mathbf{\Omega})^{-1}\mathbf{N}^T\mathbf{W}\mathbf{z}$$

ここで $\mathbf{N}$ はスプライン基底行列、$\mathbf{W}$ は対角重み行列 ($w_i = p(x_i)(1-p(x_i))$)、$\mathbf{\Omega}$ は罰則行列です。

重み $w_i$ の直感的な意味:

$w_i = p(x_i)(1-p(x_i))$ は 確率が $p \approx 0.5$ のとき最大(最も不確か)になります。 確率が0や1に近い点(確信が高い点)は重みが小さく、 中間の「迷っている」点を重視するという直感的な意味があります。

さらに面白いことに、$\mathbf{S}_{\lambda, w}$ を 任意の非パラメトリック回帰演算子に差し替えることができます。 これは「非パラメトリックロジスティック回帰」の一般的なフレームワークを与え、 第9章で詳しく扱う一般化加法モデル(GAM)へとつながります。

多次元への拡張 — テンソル積スプライン

1次元スプラインはデータが1変数のとき(例:年齢→血圧)に使います。 しかし現実のデータは多変数です(年齢、体重、身長、…)。 どうやって1次元のアイデアを多次元に拡張すればいいでしょうか?

最も素直な拡張はテンソル積基底です。$X_1$ に対する1次元の基底関数と、$X_2$ に対する基底関数を「掛け合わせる」という発想です。

左側に2つの1次元波形(青と黄色)があり、掛け合わせると右側に2次元の色分け曲面が出現するアニメーション
1次元基底関数(青・黄)を掛け合わせると2次元基底関数(緑のメッシュ)が生まれる

上のアニメーションで見えているのがまさにその「掛け算」の様子です。 左上の青い波($h_{1j}(X_1)$)と 左下の黄色い波($h_{2k}(X_2)$)を掛け合わせると、 右の2次元の色分けされた曲面が生まれます。

数式で書くと:

$$g_{jk}(X) = h_{1j}(X_1) \cdot h_{2k}(X_2), \quad j=1,\ldots,M_1, \; k=1,\ldots,M_2$$

2次元関数は $M_1 \times M_2$ 個の基底の線形結合で表現されます:

$$g(X) = \sum_{j=1}^{M_1} \sum_{k=1}^{M_2} \theta_{jk} g_{jk}(X)$$

視覚的に言えば:X軸方向の「波」とY軸方向の「波」を掛け合わせると、 2次元の「凸凹した曲面」が作れます。 これがテンソル積の美しさです。

しかしここに大きな落とし穴が潜んでいます。 次元 $d$ が増えると、 必要な基底関数の数は指数的に増加します($M^d$ 個)。 これが次元の呪いの一側面です。

次元の呪いの例:

  • 1次元、$M=10$:10個の基底関数
  • 2次元、$M=10$$10^2 = 100$
  • 5次元、$M=10$$10^5 = 100{,}000$
  • 10次元、$M=10$$10^{10}$ 個(現実的に不可能)

この問題を解決するのが第9章のMARS(多変量適応回帰スプライン)です。

Thin-Plate スプライン — より自然な多次元スプライン

テンソル積スプラインには一つの「くせ」があります。 X軸方向とY軸方向を独立に扱うため、座標軸の向きに依存してしまうのです。 現実には、データが「たまたまX軸とY軸に沿っている」とは限りません。

そこで登場するのが薄板スプライン(Thin-Plate Spline)です。 「薄板」というのは金属の薄い板を想像してください—— データ点を通るように少し曲げながら、できるだけ平らに保とうとする曲面です。

XY平面上に散らばるデータ点(白い点)を通る滑らかな3次元曲面(ティール色)がカメラ回転しながら現れるアニメーション
白い点(データ点)を通るように滑らかな曲面が浮かび上がり、カメラが回転して3D構造を見せる

$d$ 次元の場合、目的関数は:

$$\min_f \sum_{i=1}^N \{y_i - f(x_i)\}^2 + \lambda J[f]$$

2次元での罰則項 $J[f]$ は全方向の2階微分の二乗を積分します:

$$J[f] = \int\!\!\int_{\mathbb{R}^2} \left[\left(\frac{\partial^2 f}{\partial x_1^2}\right)^2 + 2\left(\frac{\partial^2 f}{\partial x_1 \partial x_2}\right)^2 + \left(\frac{\partial^2 f}{\partial x_2^2}\right)^2\right] dx_1 dx_2$$

1次元スムージングスプラインと同じく、最適解は有限次元で表現できます:

$$f(x) = \beta_0 + \beta^T x + \sum_{j=1}^N \alpha_j h_j(x)$$

ここで $h_j(x) = \|x - x_j\|^2 \log\|x - x_j\|$放射基底関数(RBF)の一種です。 各データ点 $x_j$ を「中心」とした、 距離に依存する関数の重ね合わせで曲面を表現します。

計算コストのトレードオフ:

  • Thin-Plate スプラインの計算は $O(N^3)$
  • データが多い(大きな $N$)場合は工夫が必要
  • 一方で等方的(座標軸に依存しない)という重要な利点がある
  • テンソル積スプラインとのトレードオフを状況に応じて判断する

このトレードオフは機械学習の設計判断において重要な実用的制約です。 「理論的に自然」なモデルが「計算的に扱いやすい」とは限らない—— この緊張関係はスプライン以外でも繰り返し登場します。

まとめ — スプラインの広がり

「滑らかさへの罰則」というアイデアは驚くほど汎用的です。 ここまでの章で見てきた手法をまとめてみましょう。

4種類のスプライン手法を2x2のグリッドで対比するアニメーション(左上:1D回帰、右上:1D分類、左下:2Dテンソル積、右下:2D Thin-Plate)
4つのスプラインファミリーが順番に現れる概念地図。左上から右上、左下、右下の順に

上のアニメーションは4つのアプローチの「概念地図」です。 それぞれの違いを整理しましょう:

問題設定アプローチ特徴
回帰(1D)スムージングスプライン閉じた解、効率的
分類(1D)非パラメトリックロジスティック回帰反復計算(IRLS)が必要
回帰(多次元、軸分離可)テンソル積スプライン次元数に指数的なコスト
回帰(多次元、任意)Thin-Plate スプライン$O(N^3)$、等方的

見えてきたパターンがあります——どのケースでも「罰則付き最適化」という枠組みが共通しています。 目的関数 = データへの適合 + 滑らかさへの罰則、という形が維持されています。

次節(5.8節)では「どんな関数空間でも使える汎用的な罰則の枠組み」を学びます。 Thin-Plate スプラインで登場した放射基底関数が、 より深い数学的構造と結びついていることが分かります。 それは「再生核ヒルベルト空間(RKHS)」と呼ばれる、 関数解析の美しい理論です。

さらに先を見ると:

  • 第9章 GAM:スプラインを複数変数に拡張する実用的アプローチ(バックフィッティング)
  • 第9章 MARS:次元の呪いを回避する多変量スプライン
  • 5.8節 RKHS:スプラインを統一する数学的枠組み