5.1 基底展開と正則化 - 線形モデルの壁を超えて

データから「規則」を見つけたい。最もシンプルな方法は「直線を引く」こと。 でも現実のデータは、直線には乗らない。曲がっているのです。

この章では、直線しか引けないはずの道具で、曲線を描く手法を紹介します。 シンプルなアイデアが、驚くほど柔軟な表現力を生み出す瞬間を一緒に見ていきましょう。

この章をマスターすると:

  • 直線しか使えなかった手法で、複雑な曲線パターンを捉えられるようになる
  • 「モデルが複雑すぎる/単純すぎる」問題への対処法がわかる
  • スプラインやリッジ回帰など、実務で頻出する手法の土台を理解できる

線形モデルの限界

まず「線形モデル」とは何か、確認しておきましょう。

例えば、気温($X$)から電力消費量($Y$)を予測したいとします。 最もシンプルな予測式は:

$$Y = \beta_0 + \beta_1 X$$

これは中学校で習った「一次関数」です。グラフに描くと直線になります。

入力変数が複数あっても同じです。広さ($X_1$)と築年数($X_2$)から家賃($Y$)を予測するなら:

$$Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2$$

どの入力変数も、出力に一定の割合で影響します。$X_1$(広さ)が1増えれば、$Y$(家賃)は$\beta_1$だけ増える。 シンプルで解釈しやすい。

しかし、現実のデータを見てみてください。

曲がったデータに直線をフィットさせると、残差が大きくなる
線形モデルの限界:曲がったデータには直線がフィットしない

点が直線上に並ぶことは稀です。多くの場合、データは曲がっています。 年齢と収入の関係は直線ではない。気温と電力消費の関係も、実は直線ではない(極端に暑いとエアコンで消費が跳ね上がる)。

直線を無理やり当てはめると、データの本質的なパターンを見逃してしまいます。

「それなら、曲線を使えばいいじゃないか」

その通りです。でも、どうやって?

発想の転換 - 変数を「変換」する

ここで、シンプルだけれど強力なアイデアを紹介します。

入力変数 $X$ をそのまま使うのではなく、変換してから線形モデルに入れる。

例えば、$X$ の代わりに $X^2$(Xの2乗)も一緒に使ってみましょう。

$$f(X) = \beta_0 + \beta_1 X + \beta_2 X^2$$

この式は $X$ について2次の多項式になります。グラフに描くと放物線です。

ポイントは、この式を次のように見ることです:

$$f(X) = \beta_0 \cdot 1 + \beta_1 \cdot X + \beta_2 \cdot X^2$$

係数 $\beta_0, \beta_1, \beta_2$ は、「変換後の変数」$1, X, X^2$ に対して足し合わせの形で結合しています。

別の見方をしてみましょう。入力 $X$ を、「$X$そのもの」と「$X^2$」という2つの新しい特徴量に変換して考えます。 すると、この拡張された空間では、放物線のパターンがシンプルに表現できるのです。

変数を変換することで曲線のフィットが可能に
発想の転換:変換によってフィットが改善する

つまり、入力を変換すれば、線形モデルの枠組みのまま曲線が描ける

この変換に使う関数 $1, X, X^2$基底関数と呼びます。

「基底」とは?
建物の土台のこと。これらの関数を土台にして、様々な曲線を「組み立てる」というイメージです。 どんな曲線も、基底関数を適切な割合($\beta$)で混ぜ合わせることで作れる。

基底展開の一般形

この考え方を一般化しましょう。

$h_1(X), h_2(X), \ldots, h_M(X)$ という $M$ 個の変換(基底関数)を用意します。 そして、それらを足し合わせてモデルを作ります:

$$f(X) = \sum_{m=1}^{M} \beta_m h_m(X)$$

この $\sum$(シグマ)記号は「足し合わせ」を意味します。つまり:

$$f(X) = \beta_1 h_1(X) + \beta_2 h_2(X) + \cdots + \beta_M h_M(X)$$

これが基底展開です。

例えば $M=3$ で多項式基底を使う場合:

$$f(X) = \beta_1 \cdot 1 + \beta_2 \cdot X + \beta_3 \cdot X^2$$

これは先ほど見た2次多項式そのものです。$M=4$ にすれば3次多項式、$M=5$ にすれば4次多項式...と、$M$ を増やすほど複雑な曲線が描けるようになります。

複数の基底関数を足し合わせて複雑な曲線を作る
基底展開:複数の関数を足し合わせて最終形を作る

様々な基底関数

基底関数 $h_m(X)$ には様々な選択肢があります:

基底関数何ができるか
多項式$X, X^2, X^3, \ldots$滑らかな曲線を描ける
対数・平方根$\log X, \sqrt{X}$急激な変化を緩やかに表現
区間指示関数$I(a \leq X < b)$「この範囲にいるか」で0/1を返す

驚くべきことに、基底関数を適切に選び、数を十分に増やせば、どんな複雑な曲線も近似できるのです。

係数 $\beta_m$ の推定は、通常の線形回帰と同じ手法が使えます。 基底関数で変換したデータに対して、「予測と実際のズレを最小にする」係数を見つければよい。

線形の手法が、非線形の世界を捉える。

これが基底展開の力です。

しかし、ここで新たな問題が生まれます。
「どれくらいの数の基底関数を使えばいいのか?」

自由度が増えると何が起こるか

基底関数の数 $M$ を増やせば、より複雑な曲線を表現できます。

でも、ここで注意が必要です。

$M$ を増やしすぎると何が起こるでしょうか?

訓練データへのフィットは完璧になります。すべての点を通る曲線が引ける。 しかし、そんな曲線は新しいデータには役立たない。 データに含まれるノイズ(ランダムな誤差)まで覚えてしまうからです。

これが過学習(オーバーフィッティング)の問題です。 訓練データを「暗記」しすぎて、本質的なパターンを見失う。

モデルの複雑さと過学習・過少適合の関係
左:過少適合(シンプルすぎ)、中央:適切、右:過学習(複雑すぎ)

逆に、$M$ が小さすぎると、データの本質的なパターンを捉えきれません。 これは過少適合(アンダーフィッティング)です。 モデルが単純すぎて、複雑な現実を表現しきれない。

過少適合(アンダーフィッティング)

モデルが単純すぎる。本質的なパターンを見逃す。

適切なフィット

パターンを捉えつつ、ノイズは無視。

過学習(オーバーフィッティング)

モデルが複雑すぎる。ノイズまで覚えてしまう。

モデルの複雑さをどうコントロールするか
これが機械学習の核心的な問いなのです。

複雑さを制御する3つのアプローチ

モデルの複雑さをコントロールする方法は、大きく分けて3つあります。


1. 制限(Restriction)

使える基底関数の種類を最初から制限する方法です。

例えば、「各入力変数ごとに独立した曲線を作り、それらを足し合わせるだけ」と決めてしまう。 変数同士の複雑な組み合わせは考えない。この制約により、モデルの複雑さが自動的に抑えられます。


2. 選択(Selection)

多くの基底関数の候補から、有用なものだけを選ぶ方法です。

決定木(データを条件で分岐させる手法)はこの代表例。 データに基づいて、どの変数のどの分割点が予測に役立つかを自動的に選択します。


3. 正則化(Regularization)

すべての基底関数を使うが、係数にペナルティを課す方法です。

やっていることはシンプル:

  1. データへのフィットの良さを測る(予測が実際の値からどれだけズレているか)
  2. そこに「係数が大きすぎるとペナルティ」を加える
  3. この2つのバランスを取る係数を探す

数式で書くと:

$$\min_{\beta} \underbrace{\sum_{i=1}^{N}(y_i - f(x_i))^2}_{\text{フィットの良さ}} + \underbrace{\lambda \sum_{m=1}^{M} \beta_m^2}_{\text{複雑さへのペナルティ}}$$
正則化パラメータλの効果
正則化の効果:λが大きくなると曲線が滑らかに

正則化のポイント
$\lambda = 0$ : ペナルティなし → 複雑なモデル(過学習しやすい)
$\lambda$ が大きい: 強いペナルティ → シンプルなモデル(過少適合しやすい)
適切な $\lambda$ を見つけることが重要です。

この正則化アプローチは、後の章で学ぶリッジ回帰スプラインの基礎になります。

これから学ぶこと

この章では、基底展開の具体的な手法を詳しく見ていきます。

これから学ぶ手法のプレビュー
様々な基底関数:区分多項式、スプライン、多次元、ウェーブレット

区分多項式とスプライン

入力空間を区間に分割し、各区間で多項式をフィットする。 でも、境界でガタガタになっては困る。どうやって滑らかにつなげるか? これがスプラインの核心です。

スムージングスプライン

正則化の考え方をスプラインに適用すると、データ点の数だけ基底を使いながらも、過学習を防ぐことができます。

多次元への拡張

入力変数が複数ある場合、どう対処するか? 変数が増えると必要なデータ量が爆発的に増える「次元の呪い」という問題があります。 これを回避する手法を学びます。

ウェーブレット

信号処理で生まれた基底。時間と周波数の両方で「局所的」な特徴を捉える、ちょっと変わった手法です。

どの手法も、「表現力」と「複雑さ」のバランスという共通の問いに答えようとしています。

一緒に、その答えを探っていきましょう。

この章のまとめ

次のセクションでは、具体的な基底関数の設計方法として、区分多項式とスプラインを詳しく見ていきます。