誤差の分解

機械学習における汎化誤差(Expected Loss = Generalization Error)は 3 つに分解できます。
テストデータに対する期待二乗誤差を例に説明します。

  • $x$:説明変数(入力データ)。予測の対象となる特徴量
  • $y(x)$:予測モデル。訓練データ $D$ から学習された関数で、入力 $x$ に対する予測値を出力する。データセット $D$ に依存するため、依存性を明示する場合は $y(x; D)$ と書く。訓練データが変われば $y(x)$ 自体も変わりうる
  • $h(x)$:理想的な予測モデル(真の関数)。ノイズを除いた、$x$ が与えられたときの目的変数の期待値 $h(x) = E[t\vert{}x]$ として定義される。データセットに依存しない、唯一の正解の関数
  • $t$:目的変数の真値(観測値)。理想モデル $h(x)$ にノイズが加わったもので、同じ $x$ に対しても観測のたびにばらつきうる確率変数

分解前の式

\[\mathbb{E}[L] = \int \big( y(x) - h(x) \big)^2 p(x)\,dx \;+\; \iint \big( h(x) - t \big)^2\, p(x,t)\,dx\,dt\]

分解後の式

\[\mathbb{E}[L] = \underbrace{\int \Big( \mathbb{E}_D[y(x;D)] - h(x) \Big)^2 p(x)\,dx}_{\text{Bias}^2} \;+\; \underbrace{\int \mathbb{E}_D\Big[ \big( y(x;D) - \mathbb{E}_D[y(x;D)] \big)^2 \Big]\, p(x)\,dx}_{\text{Variance}} \;+\; \underbrace{\iint \big( h(x) - t \big)^2\, p(x,t)\,dx\,dt}_{\text{Noise}}\]

バイアス(Bias)

  • モデルの予測の平均値と、真の関数とのずれの大きさ
  • モデルが単純すぎる(表現力が足りない)ときに大きくなる
  • 例:本質的に非線形な関係を線形回帰で近似しようとすると、バイアスが大きくなる
  • アンダーフィッティングと関連が深い

バリアンス(Variance:分散)

  • 訓練データを変えたときに、モデルの予測がどれだけばらつくか
  • モデルが複雑すぎる(訓練データに過剰に適応してしまう)ときに大きくなる
  • 例:高次多項式回帰や深すぎる決定木は、訓練データの細かいノイズまで学習してしまいばらつきが大きくなる
  • オーバーフィッティングと関連が深い オーバーフィッティング過剰適合):モデルが複雑すぎて、訓練データのノイズや細かい変動まで学習してしまっている状態です

ノイズ(Noise / 既約誤差)

  • データ自体に本質的に含まれるランダムな誤差
  • 測定誤差や、説明変数だけでは説明しきれない要因によるもの
  • どんなに優れたモデルを使っても減らすことができない誤差(既約誤差、irreducible error)

トレードオフの関係

バイアスとバリアンスにはトレードオフの関係があります。

モデルの複雑さ バイアス バリアンス 状態
低い(単純) アンダーフィッティング
高い(複雑) オーバーフィッティング
適切 バランス バランス 汎化性能が良い

図で表すと、モデルの複雑さを横軸、誤差を縦軸にとったとき、バイアスは複雑さとともに減少し、バリアンスは複雑さとともに増加する、U字型の総誤差曲線を描くのが典型的なイメージです。

実務での対処法

この図が示す通り、モデルの複雑さを闇雲に上げても下げても最適にはならず、検証データ(バリデーションセット)での誤差を見ながら、この谷底(緑の点)に近づけていくのが一般的なアプローチです。正則化(L1/L2)、早期終了(early stopping)、交差検証などは、この最適な複雑さを見つけるための代表的な手法です。

  • バイアスが大きい場合:モデルを複雑にする(特徴量追加、より柔軟なモデル、正則化を弱める)
  • バリアンスが大きい場合:正則化を強める、データを増やす、モデルを単純化する、アンサンブル学習(バギングなど)を使う
  • ノイズ:データ収集プロセスの改善以外では基本的に減らせない

理想的な予測モデル $h(x)$

予想モデル($y(x)$)と理想的な予測モデル $h(x)$ の関係は、$h(x)$ はデータが生成される仕組み(真の関数)として先験的に存在するもので $y(x)$ の収束してほしい先です。

\[h(x) \;\; \xleftarrow{\text{理想的にはここに収束してほしい}} \;\; E_D[y(x;D)]\]

両者のズレがバイアスです。

$h(x)$ とノイズ

\[t = h(x) + \varepsilon\]
  • $h(x)$ は「$x$ が与えられたときに、$t$ が平均的にとる値」を完全に正確に出力するモデル。この意味では「間違いのないモデル」
  • 個々の観測値 $t$ は $h(x)$ ぴったりにはならず、ノイズ $\varepsilon$ の分だけ $h(x)$ からズレる。このズレは $h(x)$ の「間違い」ではなく、現象そのものが持つ本質的な不確実性(ノイズ)。

サイコロの例

  • $h(x) = 3.5$(サイコロの目の期待値)は完全に正しいモデル。何度計算しても $3.5$ という値自体は間違えようがない。
  • しかし実際に振ったときの出目 $t$ は $1〜6$ のどれかであり、$h(x)=3.5$ と一致することは絶対にない。
  • このズレ $(t - h(x))$ は $h(x)$ が「間違っている」からではなく、サイコロという現象自体が持つランダム性(ノイズ)による。

サイコロの例:ノイズは予測方法を変えても消えない

  • ノイズとは $x$ を固定しても $t$ が本質的に持つばらつきのこと
  • 期待値 $3.5$ を出すモデル → 個々の出目とズレる(誤差として直接見える)
  • $4$ が出ると一つの数字に賭けるモデル → 当たる確率 $1/6$、外れる確率 $5/6$(ノイズは「外れる確率」という形で現れる)
  • 予測の仕方を変えても、現象そのものが持つランダム性は変わらない
t = h(x) + \varepsilon

$h(x)$ をどう使う(期待値として出力するか、特定の値に賭けるか)を変えても、$\varepsilon$(ノイズ)自体は消えない。

ノイズが本当に0になる条件

予測方法の工夫ではなく、入力 $x$ に含まれる情報量を増やすことでのみノイズは減る。

  • 現状:$x$ = 「サイコロを振る」だけ → 出目は完全にランダム(ノイズ大)
  • $x$ に「力・角度・初速・空気抵抗など物理条件すべて」が含まれれば → 出目を一意に計算でき、以下が成り立つ
h(x) = t \quad \Longrightarrow \quad \text{Noise} = 0

まとめ

状況 ノイズは消えるか
予測方法を変える(期待値 → 個別の値を当てにいく) 消えない(外れる確率として表面化するだけ)
入力 $x$ の情報量を増やし $t$ を一意に決められるようにする 減る(極限では0になりうる)

y(x;D) の意味

セミコロン ; は、「変数」と「パラメータ・条件」を区別するための表記です。数学や統計学、機械学習でよく使われる慣習的な記法です。

y(x; D)
  • $x$(セミコロンの前):関数の「本来の入力変数」。予測したい対象そのもの。
  • $D$(セミコロンの後):その関数が「どの訓練データセットから学習されたか」という条件・パラメータ。$x$ が変わるたびに変わるものではなく、モデルを訓練する段階で1回だけ決まるもの。

なぜこの表記が必要か

もし単に $y(x, D)$ とカンマで書いてしまうと、$x$ と $D$ が同じ立場の「2つの独立変数」であるかのように見えてしまいます。しかしバイアス・バリアンス分解の文脈では、両者の役割は本質的に異なります。

記号 役割 「動く」タイミング
$x$ 予測したい入力点 予測のたびに変わる(テスト時にいろいろな $x$ に対して予測する)
$D$ 学習に使った訓練データセット モデルを訓練するときに1回だけ固定される。$D$ が違えば別のモデル $y(\cdot; D)$ になる

セミコロンを使うことで、「$D$ はこの関数の”設定”であり、$x$ こそが関数の本来の引数である」ということが視覚的に明確になります。

具体例

例えば、線形回帰でパラメータ $w$ を最小二乗法で推定する場合、

y(x; D) = w_0(D) + w_1(D)\, x

のように、係数 $w_0, w_1$ は訓練データ $D$ から決まる値であり、$x$ が入力されるたびに再計算されるものではありません。この「$D$ に応じてモデル全体(パラメータ)が決まり、$x$ はその決まったモデルへの入力である」という階層構造を表すのがセミコロンの役割です。

バイアス・バリアンス分解での重要性

この表記があるからこそ、以下の操作の意味が明確になります。

E_D[y(x;D)]

訓練データを様々に変えたときの、この点 $x$ における予測の平均。

E_D\Big[\big(y(x;D) - E_D[y(x;D)]\big)^2\Big]

バリアンス:同じ $x$ でも $D$ が違えば予測がどうばらつくか。

つまり「$x$ を固定したまま $D$ についてだけ期待値・分散をとる」という操作の意味が明確になります。もし $y(x)$ とだけ書いていたら、何に関して期待値をとっているのか(データについてなのか、$x$ についてなのか)が曖昧になってしまいます。

目的関数(Objective Function)

定義

学習アルゴリズムが実際に最小化(または最大化)しようとする関数。 損失関数に正則化項などを加えたもの全体を指すことが多い。

関連用語の整理

用語 役割
損失関数(loss function) 1つのデータ点に対する予測と正解のズレを測る関数(例:交差エントロピー、二乗誤差)
コスト関数(cost function) 損失関数をデータセット全体で平均・合計したもの
目的関数(objective function) 損失関数 + 正則化項など、最適化のターゲットとなる関数全体

基本式

目的関数 = 損失関数(誤差) + 正則化項

例(L2正則化の場合):

目的関数 = 交差エントロピー(予測, 正解)  ← 損失関数(誤差そのもの)
         + λ × Σ W²                      ← 正則化項(誤差ではない)

なぜ「誤差」だけでなく「目的関数」と呼ぶのか

  • 誤差(損失)だけでは、正則化項のような「モデルを単純に保て」という別の制約を含められない
  • 誤差と制約を1つの数値にまとめることで、勾配降下法などの最適化アルゴリズムが機械的に微分・更新できる

LLM の文脈における目的関数

  • 事前学習(pretraining)における目的関数は、基本的に「交差エントロピー誤差の平均」
    • 各トークン位置で次トークン予測の交差エントロピーを計算
    • バッチ内の全トークン・全系列にわたって平均
    • この平均値を最小化するように重みを更新
  • ファインチューニングや RLHF の段階では、報酬モデルのスコアや KL ダイバージェンス項など、別の目的関数が追加・置換される

正則化(Regularization)

定義

モデルが訓練データに過剰に適合(オーバーフィッティング)しないように、 意図的に制約やペナルティを加えてモデルを「シンプルに保つ」ための手法。

基本的な考え方

損失関数に「パラメータの大きさに対するペナルティ項」を加える。

最終的な目的関数 = 訓練データへの誤差 + λ × ペナルティ項

この λ(ラムダ、正則化係数)を調整することで、正則化の強さをコントロールする。

  • λを大きくする → ペナルティが強く効く → パラメータが小さく抑えられる → モデルが単純になる(正則化を強める)
  • λを小さくする(0に近づける) → ペナルティがほぼ効かない → パラメータが自由に動ける → モデルが複雑になれる(正則化を弱める)

    代表的な種類

  • L2正則化(Ridge): パラメータの二乗和にペナルティをかける。パラメータ全体を滑らかに小さくする。最も一般的。
  • L1正則化(Lasso): パラメータの絶対値の和にペナルティをかける。一部のパラメータを完全に0にする性質があり、特徴量選択にも使える。
  • Elastic Net: L1とL2を組み合わせたもの。
  • Dropout: 学習時に一部のニューロンをランダムに無効化する(ニューラルネットワーク特有)。
  • 重み減衰(weight decay): パラメータ更新の式に直接組み込む手法。現代的な実装(AdamW等)ではL2正則化とは別物として区別される。
  • データ拡張(augmentation): 入力データ側を加工することで汎化性能を高める。
  • 早期終了(early stopping): 学習を打ち切るタイミングの工夫。
  • ラベルスムージング: 正解ラベルの確率分布自体を緩める手法。

損失関数への「足し算」になるか

種類 損失に「足し算」される?
L1 / L2正則化 される(λ × Σ W² のような項を損失に追加)
Dropout されない。ランダムにニューロンを無効化する操作自体が正則化効果を生む
Weight decay(AdamW等) されない。パラメータ更新の式に直接組み込む
データ拡張 されない。入力データ側を加工する
早期終了 されない。学習を打ち切るタイミングの工夫
ラベルスムージング 「足し算」というより「入力の加工」に近い

共通しているのは「モデルがオーバーフィッティングしにくくなるよう、 何らかの制約や工夫を加える」という目的の部分。

バイアス・バリアンスとの関係