1次元のスプラインは強力だ——しかし現実のデータは複数の変数を持つことが多い。
「気温」と「湿度」の両方から「体感温度」を予測したい。 「年齢」と「肥満度」の両方から「血圧」を推定したい。 2つの変数が絡み合っているとき、どのように滑らかな関数を推定すればよいのか?
このチャプターでは、テンソル積基底と薄板スプラインという2つのアプローチを見ていく。 そして「次元の呪い」に立ち向かうためのANOVA分解という戦略も学ぶ。
1次元のスプラインは、ある関数 $f(x)$ を「節点ごとに滑らかにつながる区分多項式」として表現する手法でした。 では入力が2次元、つまり $(X_1, X_2)$ という2つの変数がある場合はどうすればよいのでしょうか?
直感的なアイデアは「掛け合わせる」ことです。

$X_1$ に対して $M_1$ 個の基底関数 $h_{1k}(X_1)$ を用意し、$X_2$ に対して $M_2$ 個の基底関数 $h_{2k}(X_2)$ を用意する。 そして両者の「すべての組み合わせ」を取ることで、2次元の基底関数を作る。これがテンソル積基底だ:
この基底を使えば、2次元関数を次のように展開でき、係数 $\theta_{jk}$ は通常の最小二乗法で決定できる:
アニメーションで見えているように、各2次元基底関数は「X1方向の山」と「X2方向の山」の積——つまりドーム型の立体的な形状を持つ。 縦横のグリッド線が、テンソル積の「格子構造」を示している。
次元の呪い:
$M_1 = M_2 = M$ とすると基底の数は $M^2$ になる。$d$ 次元に一般化すると $M^d$ 個の基底が必要になり、 次元数が増えるにつれて爆発的に増加する。これが「次元の呪い」の一形態だ。
テンソル積基底の理解を深めるために、加法モデル(additive model) と比較してみよう。
加法モデルでは、関数を各変数の影響の「足し算」として表現する:
これは「$X_1$ が増えたときの効果」と「$X_2$ が増えたときの効果」が独立に働くという仮定だ。 グラフで見ると、等高線が平行に並ぶシンプルな形になる(左側のパネル)。

一方、テンソル積基底を使うモデルでは:
これは「$X_1$ の影響が $X_2$ の値によって変わる」という交互作用を表現できる。 アニメーション右側のように、等高線が複雑に歪んだ形になる。
教科書のFigure 5.11では、2章の分類問題に対して両者を比較している:
| 手法 | 自由度 | 訓練誤差 | テスト誤差 |
|---|---|---|---|
| 加法型スプライン | 7 = 1 + (4-1) + (4-1) | 0.23 | 0.28 |
| テンソル積スプライン | 16 = 4 × 4 | 0.230 | 0.282 |
テンソル積の方が訓練誤差は若干低いが、テスト誤差も若干高い。 交互作用のモデル化には余分なパラメータが必要で、過学習のリスクが伴うことがわかる。
テンソル積基底には一つの弱点がある。座標軸への依存性だ。
$h_{1j}(X_1) \cdot h_{2k}(X_2)$ という構造は、「$X_1$ 方向」と 「$X_2$ 方向」を特別扱いする。 つまり、入力を45度回転した座標に変換すると、モデルの動作が変わってしまう。
これに対して薄板スプライン(thin-plate spline) は、どの方向にも同じように滑らかさを評価する等方的(isotropic) な手法だ。

1次元のスムージングスプラインの正則化項 $\int [f''(x)]^2 dx$ を2次元に自然に拡張すると:
この罰則を最小化する問題を解くと、解は次の形を取る:
ここで $h_j(x) = \|x - x_j\|^2 \log\|x - x_j\|$ は放射基底関数(radial basis function) の一種。 この関数は「$x_j$ からの距離」だけに依存するため、方向を問わず等方的に広がる。
1次元の性質と同様:
計算コストの注意点:
1次元スムージングスプラインは $O(N)$ 程度で解けるが、 薄板スプラインの計算複雑度は $O(N^3)$ だ(スパース構造がないため)。 実践では代表点(ノット)の格子を使って近似し、$K$ 個のノットで$O(NK^2 + K^3)$ に削減できる。
テンソル積基底は柔軟だが次元の呪いに弱い。加法モデルはシンプルだが交互作用を捉えられない。 この2つの欠点を補うのがANOVA(分散分析)スプライン分解という考え方だ。
一般的な多変数関数を以下のように分解する:

各項の意味:
罰則関数も各スプライン成分に対して個別にかかる:
このアプローチの強みは必要な項だけを選択できる点だ:
ANOVA分解による次元の呪い対策:
どの交互作用項を含めるかをデータから自動選択するアルゴリズムが、第9章のMARSや第10章のMARTだ。 これらは「段階的に有用な項を追加する貪欲法」として、ANOVAスプライン分解を実践的に実装している。
多次元スプラインの理論を学んできたが、最後に実践的な観点から「次元の呪い」への対処戦略をまとめよう。
問題の本質:$d$ 次元の関数を表現するのに必要な基底数は、単純なテンソル積では $M^d$ と指数的に増大する。 10次元データに10個ずつの基底を置けば $10^{10}$ 個の基底——明らかに現実的でない。

この爆発的な増加に対して、主に4つの戦略がある:
各変数に独立にスプラインを適用するだけで、$d \times M$ 個の基底で十分。 これが第9章の一般化加法モデル(GAM) の基本アイデアだ。
2次の交互作用まで許容すれば $dM + \binom{d}{2}M^2$ 個の基底で済む。 3次以上の交互作用を無視することで計算可能になる。
全データ点をノットとして使う代わりに、代表的な $K$ 個のノットからなる格子を使う。 計算量は $O(NK^2 + K^3)$($K \ll N$)に削減できる。
どの交互作用を含めるかをデータから自動選択するのがMARSアルゴリズム(第9章)だ。 最小二乗の基準で「最も役に立つテンソル積項」を貪欲に追加していく。
共通するメッセージ:「何でも詰め込む」のではなく、問題の構造に応じた節約的モデル化が鍵だ。 データが支持するときのみ複雑さを追加する——これが多次元スプラインを実践的に使うための哲学だ。