5.7 多次元スプライン — 変数の「絡み合い」を滑らかに扱う

1次元のスプラインは強力だ——しかし現実のデータは複数の変数を持つことが多い。

「気温」と「湿度」の両方から「体感温度」を予測したい。 「年齢」と「肥満度」の両方から「血圧」を推定したい。 2つの変数が絡み合っているとき、どのように滑らかな関数を推定すればよいのか?

このチャプターでは、テンソル積基底薄板スプラインという2つのアプローチを見ていく。 そして「次元の呪い」に立ち向かうためのANOVA分解という戦略も学ぶ。

1次元から2次元へ — テンソル積基底

1次元のスプラインは、ある関数 $f(x)$ を「節点ごとに滑らかにつながる区分多項式」として表現する手法でした。 では入力が2次元、つまり $(X_1, X_2)$ という2つの変数がある場合はどうすればよいのでしょうか?

直感的なアイデアは「掛け合わせる」ことです。

1次元の2つの山型曲線がテンソル積で2次元のドーム形曲面になる様子
左:X1用とX2用の1次元基底関数。右:それらの積で作られる2次元基底関数(ドーム型)

$X_1$ に対して $M_1$ 個の基底関数 $h_{1k}(X_1)$ を用意し、$X_2$ に対して $M_2$ 個の基底関数 $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次元関数を次のように展開でき、係数 $\theta_{jk}$ は通常の最小二乗法で決定できる:

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

アニメーションで見えているように、各2次元基底関数は「X1方向の山」と「X2方向の山」の積——つまりドーム型の立体的な形状を持つ。 縦横のグリッド線が、テンソル積の「格子構造」を示している。

次元の呪い:

$M_1 = M_2 = M$ とすると基底の数は $M^2$ になる。$d$ 次元に一般化すると $M^d$ 個の基底が必要になり、 次元数が増えるにつれて爆発的に増加する。これが「次元の呪い」の一形態だ。

加法モデルとの違い — 「交互作用」の世界

テンソル積基底の理解を深めるために、加法モデル(additive model) と比較してみよう。

加法モデルでは、関数を各変数の影響の「足し算」として表現する:

$$f(X) = f_1(X_1) + f_2(X_2)$$

これは「$X_1$ が増えたときの効果」と「$X_2$ が増えたときの効果」が独立に働くという仮定だ。 グラフで見ると、等高線が平行に並ぶシンプルな形になる(左側のパネル)。

左:加法モデルの等高線(シンプルな楕円)、右:テンソル積モデルの等高線(複雑な形)
左(シアン):加法モデルの等高線は単純な楕円形。右(黄):テンソル積の等高線は複雑に歪んだ形

一方、テンソル積基底を使うモデルでは:

$$f(X) = \sum_{j,k} \theta_{jk} h_{1j}(X_1) h_{2k}(X_2)$$

これは「$X_1$ の影響が $X_2$ の値によって変わる」という交互作用を表現できる。 アニメーション右側のように、等高線が複雑に歪んだ形になる。

教科書のFigure 5.11では、2章の分類問題に対して両者を比較している:

手法自由度訓練誤差テスト誤差
加法型スプライン7 = 1 + (4-1) + (4-1)0.230.28
テンソル積スプライン16 = 4 × 40.2300.282

テンソル積の方が訓練誤差は若干低いが、テスト誤差も若干高い。 交互作用のモデル化には余分なパラメータが必要で、過学習のリスクが伴うことがわかる。

薄板スプライン — 「等方的な」滑らかさ

テンソル積基底には一つの弱点がある。座標軸への依存性だ。

$h_{1j}(X_1) \cdot h_{2k}(X_2)$ という構造は、「$X_1$ 方向」と 「$X_2$ 方向」を特別扱いする。 つまり、入力を45度回転した座標に変換すると、モデルの動作が変わってしまう。

これに対して薄板スプライン(thin-plate spline) は、どの方向にも同じように滑らかさを評価する等方的(isotropic) な手法だ。

2Dの散布データ点群に薄板スプライン曲面が滑らかにフィットしていく様子
データ点(白)の上に、滑らかな曲面が等方的にフィットする。方向に依存しない「薄板スプライン」の特性

1次元のスムージングスプラインの正則化項 $\int [f''(x)]^2 dx$ を2次元に自然に拡張すると:

$$J[f] = \iint_{\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$$

この罰則を最小化する問題を解くと、解は次の形を取る:

$$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\|$放射基底関数(radial basis function) の一種。 この関数は「$x_j$ からの距離」だけに依存するため、方向を問わず等方的に広がる。

1次元の性質と同様:

計算コストの注意点:

1次元スムージングスプラインは $O(N)$ 程度で解けるが、 薄板スプラインの計算複雑度は $O(N^3)$ だ(スパース構造がないため)。 実践では代表点(ノット)の格子を使って近似し、$K$ 個のノットで$O(NK^2 + K^3)$ に削減できる。

ANOVA分解 — 交互作用を「段階的に」加える

テンソル積基底は柔軟だが次元の呪いに弱い。加法モデルはシンプルだが交互作用を捉えられない。 この2つの欠点を補うのがANOVA(分散分析)スプライン分解という考え方だ。

一般的な多変数関数を以下のように分解する:

$$f(X) = \alpha + \sum_j f_j(X_j) + \sum_{j<k} f_{jk}(X_j, X_k) + \cdots$$
定数項・主効果・交互作用が積み上げられてANOVA分解が完成していく様子
下から:定数項(灰)→ X1の主効果(シアン)→ X2の主効果(緑)→ 交互作用(黄)と階層的に積み上がる

各項の意味:

罰則関数も各スプライン成分に対して個別にかかる:

$$J[f] = J(f_1 + f_2 + \cdots + f_d) = \sum_{j=1}^d \int f_j''(t_j)^2 dt_j$$

このアプローチの強みは必要な項だけを選択できる点だ:

ANOVA分解による次元の呪い対策:

  • 主効果のみ → 加法モデル。節約的で次元の呪い回避
  • 主効果 + 2次交互作用 → 中間的な柔軟性
  • 全高次交互作用 → 完全なテンソル積(最大柔軟性、次元の呪い)

どの交互作用項を含めるかをデータから自動選択するアルゴリズムが、第9章のMARSや第10章のMARTだ。 これらは「段階的に有用な項を追加する貪欲法」として、ANOVAスプライン分解を実践的に実装している。

次元の呪いへの対処 — 実践的な戦略

多次元スプラインの理論を学んできたが、最後に実践的な観点から「次元の呪い」への対処戦略をまとめよう。

問題の本質:$d$ 次元の関数を表現するのに必要な基底数は、単純なテンソル積では $M^d$ と指数的に増大する。 10次元データに10個ずつの基底を置けば $10^{10}$ 個の基底——明らかに現実的でない。

次元数dが増えるにつれて必要な基底数M^dが爆発的に増加する棒グラフ
M=4の場合:d=1で4個、d=2で16個、d=3で64個、d=4で256個と指数的に増加

この爆発的な増加に対して、主に4つの戦略がある:

戦略1: 加法モデルへの制限

$$f(X) = \sum_{j=1}^d f_j(X_j)$$

各変数に独立にスプラインを適用するだけで、$d \times M$ 個の基底で十分。 これが第9章の一般化加法モデル(GAM) の基本アイデアだ。

戦略2: 低次交互作用のみ含める

2次の交互作用まで許容すれば $dM + \binom{d}{2}M^2$ 個の基底で済む。 3次以上の交互作用を無視することで計算可能になる。

戦略3: 格子ノット(薄板スプライン近似)

全データ点をノットとして使う代わりに、代表的な $K$ 個のノットからなる格子を使う。 計算量は $O(NK^2 + K^3)$$K \ll N$)に削減できる。

戦略4: MARSによる自動選択

どの交互作用を含めるかをデータから自動選択するのがMARSアルゴリズム(第9章)だ。 最小二乗の基準で「最も役に立つテンソル積項」を貪欲に追加していく。

共通するメッセージ:「何でも詰め込む」のではなく、問題の構造に応じた節約的モデル化が鍵だ。 データが支持するときのみ複雑さを追加する——これが多次元スプラインを実践的に使うための哲学だ。

次の5.8節では、スプラインをより一般的な枠組みで見る「再生核ヒルベルト空間(RKHS)」を学ぶ。 RKHS は薄板スプラインも含め、あらゆる正則化手法を統一する美しい数学的基盤だ。