2.7 構造化回帰モデル

機械学習でよく聞く「過学習」という言葉。「訓練データに合わせすぎると良くない」と言われますが、なぜでしょうか? データに合わせることが目的なのに、合わせすぎると駄目?

このセクションでは、この一見矛盾した問題の核心に迫ります。 実は、制約なしでは予測問題は解けないのです。 この驚くべき事実を理解することが、機械学習全体の見通しを得る鍵となります。

データだけでは答えが決まらない

予測問題を考えてみましょう。

まず用語を整理します。訓練データ(training data)とは、モデルを学習させるために使うデータのことです。$(x_1, y_1), \ldots, (x_N, y_N)$ という $N$ 個のペアが与えられ、 この情報を使って、新しい入力 $x$ に対する出力 $y$ を予測するルール(関数 $f$)を見つけたいのです。

最もシンプルなアプローチは、残差平方和(RSS: Residual Sum of Squares)を最小化することです。

$$\text{RSS}(f) = \sum_{i=1}^{N}(y_i - f(x_i))^2$$

この式の意味を読み解きましょう。$f(x_i)$ は「関数 $f$ に入力 $x_i$ を入れたときの予測値」、$y_i$ は「実際の正解値」です。$(y_i - f(x_i))^2$ は「予測と正解のズレの2乗」。 これを全データ点について足し合わせたものがRSSです。

RSSが小さいほど、訓練データへのフィットが良いことを意味します。では、RSSを0にできれば完璧でしょうか?

ここに落とし穴があります。

RSSを最小化する関数は無限に存在します。

同じ訓練点を通る複数の異なる曲線

なぜでしょうか?訓練点をすべて通る関数であれば、どんな形でもRSS = 0を達成できるからです。 直線でも、うねうねした曲線でも、訓練点を通りさえすればRSSは0です。

これは深刻な問題です。無限の候補の中から1つを選ばなければなりませんが、データだけを見ても、どれが正しいかわからないのです。

制約がなければ予測は失敗する

無限の解があることの何が問題なのでしょうか?

問題は、訓練データに完璧にフィットしても、新しいデータの予測が壊滅的に悪くなりうることです。

ここでテストデータ(test data)という概念が重要になります。 テストデータとは、モデルの学習には使わず、学習後のモデルの性能を評価するために取っておくデータのことです。 モデルが本当に「予測できる」かどうかは、見たことのないテストデータで測らなければわかりません。

複雑な曲線が訓練点にフィットするが、テスト点で大きく外れる様子

先ほどのうねうねした曲線を思い出してください。訓練点はすべて通過しているので、訓練データに対してはRSS = 0、つまり「完璧」です。

しかし、訓練点のを見てください。曲線は激しく上下に振動しています。 もし新しいデータ点(テストデータ)が訓練点の間に落ちたら、予測は大きく外れるでしょう。

これが過学習(オーバーフィッティング)の本質です。

過学習とは

訓練データに合わせすぎた結果、データの本質的なパターンではなく、ノイズや偶然の配置まで学習してしまい、 未知のデータに対する予測力が失われること。

ここで重要な洞察があります:

良い予測をするためには、関数の自由度を制限しなければならない。

無制限の自由度は、一見するとデータによく適合しますが、実際には予測能力を破壊します。制約こそが予測を可能にするのです。

複雑性制約という発想

では、どのような制約を課せばよいのでしょうか?

機械学習で最も広く使われるのは、複雑性制約(complexity restriction)という考え方です。

直感的には、「関数が急激に変化しすぎないようにする」制約です。 入力空間の小さな領域内では、関数が以下のような「規則的な」振る舞いをすることを要求します:

滑らかな関数と急激な関数を比較

なぜ「滑らかさ」が良いのでしょうか?

それは、現実世界の多くの現象が連続的に変化するからです。 身長と体重の関係、気温と電力消費の関係、広告費と売上の関係—どれも、入力が少し変わったら出力も少し変わる、という性質を持っています。

急激に振動する関数は、このような現実のパターンをうまく表現できません。 滑らかさの制約は、「現実はおおむね連続的だ」という事前知識を反映しているのです。

近傍サイズが制約の強さを決める

複雑性制約を実装する最も直接的な方法は、近傍(neighborhood)のサイズを調整することです。

ここでk近傍法(k-Nearest Neighbors, k-NN)について簡単に振り返りましょう。 k近傍法は、「新しい点の値を予測するには、その近くにある訓練点を見ればよい」という直感に基づく手法です。 具体的には、予測したい点 $x_0$ の周りにある最も近い $k$ 個の訓練点を見つけ、 それらの平均(回帰の場合)または多数決(分類の場合)で予測値を計算します。

この $k$ の値は、実は制約の強さを制御しています:

k が小さい(例:k=1)

  • 非常に小さな近傍のみを考慮
  • 関数は局所的なデータに強く依存
  • 予測は不安定で、ノイズに敏感
  • 制約が弱い → 複雑な関数を許容

k が大きい(例:k=100)

  • 広い範囲のデータを平均化
  • 関数は滑らかになる
  • 予測は安定するが、局所的なパターンを見逃す可能性
  • 制約が強い → シンプルな関数に限定
k近傍法でkを変えると予測曲線がどう変化するか

ここに興味深いトレードオフがあります。 制約を強くしすぎると(kを大きくしすぎると)、データの本質的なパターンまで消してしまいます。 制約が弱すぎると(kを小さくしすぎると)、ノイズまで拾ってしまいます。

最適な制約の強さは、データ自体から決められません。なぜなら、訓練データへのフィットだけを見れば、常に制約を弱くした方が良く見えるからです(k=1ならRSS=0)。 後の章で、この問題をどう解決するかを学びます。

このトレードオフは、k近傍法に限った話ではありません。次のセクションで、制約の選択がより深い問題につながることを見ていきましょう。

制約は「仮定」である

ここで立ち止まって考えてみましょう。

私たちは「滑らかな関数が良い」と言いましたが、それは本当でしょうか?

実は、どんな制約を選ぶかは、データの外にある知識や仮定に基づいています。 「現実世界は滑らかに変化する」という仮定は、多くの場合正しいですが、常に正しいわけではありません。

例えば、株価のデータを考えてみてください。ニュースが出た瞬間に株価は急変動します。 このような「不連続な変化」を含むデータに対して、強い滑らかさ制約は不適切かもしれません。

同じデータに対して異なる制約(仮定)が異なる解を導く

ここで重要な教訓があります:

制約の選択は、問題の曖昧さを解消しない。曖昧さを「どの制約を選ぶか」という問題に移し替えるだけである。

つまり、機械学習において「万能の手法」は存在しません。 どんな手法にも暗黙の仮定があり、その仮定がデータの性質に合っているかどうかが、予測性能を左右します。

この洞察は、後の章で様々な手法を学ぶ際の指針となります。 新しい手法を見たときは、常に「この手法は何を仮定しているのか?」と問いかけてください。

次元の呪いを克服する鍵

最後に、構造化回帰モデルと次元の呪いの関係を整理しましょう。

次元の呪いとは何か?—高次元空間では、私たちの直感に反する現象が起こります。 例えば、10次元空間では、データの99%以上が空間の「境界」付近に集中してしまいます。 「近くの点」を見つけようとしても、すべての点が遠く離れてしまうのです。

前のセクション(2.5)で見たように、この現象のせいで高次元空間ではk近傍法のような局所的な手法は破綻します。 「局所的な」近傍を定義しようにも、近傍を意味のあるサイズに保つと、ほとんどすべてのデータを含んでしまうからです。

しかし、構造化モデルはこの問題を回避できます。

例えば、線形モデル $f(x) = x^T\beta$ を考えてみましょう。この式を展開すると:

$$f(x) = x_1 \beta_1 + x_2 \beta_2 + \cdots + x_p \beta_p$$

つまり、各入力変数 $x_1, x_2, \ldots, x_p$ にそれぞれ重み $\beta_1, \beta_2, \ldots, \beta_p$ をかけて足し合わせたものです。 このモデルは $p$ 個のパラメータ $\beta = (\beta_1, \ldots, \beta_p)$ で完全に特徴づけられます。 次元 $p$ が増えても、推定すべきパラメータの数は $p$ 個のままです。

対照的に、k近傍法の「実効的なパラメータ数」は $N/k$ 程度であり、これは $p$ とは独立にデータ数 $N$ に依存します。 高次元では、十分な密度でデータをサンプリングするために必要な $N$ が指数関数的に増大するため、k近傍法は実用的でなくなります。

構造化モデルが高次元でも安定している一方、局所的手法が破綻する様子

構造化モデルは、次元によらず一定数のパラメータで済むため、次元の呪いを回避できる。

もちろん、これは代償を伴います。線形モデルは「関数が線形である」という強い仮定を置いています。 この仮定が正しければ、高次元でも効率的に学習できます。仮定が間違っていれば、バイアスが生じます。

これが、機械学習における本質的なトレードオフ—バイアスとバリアンス—の核心です。 次のセクション(2.9)で、このトレードオフを詳しく分析します。