この問題では、機械学習の根幹をなすバイアス・バリアンス分解(Bias-Variance Decomposition)の計算を通じて、予測誤差の構造的理解を深めます。
バイアス・バリアンス分解の理論的基礎
Step 1: 予測誤差の分解公式
期待二乗誤差の分解:
$$E[(y - \\hat{f}(x))^2] = \\text{Bias}^2[\\hat{f}(x)] + \\text{Var}[\\hat{f}(x)] + \\sigma^2$$
ここで:
- $y$:真の目標値($y = f(x) + \\epsilon$, $\\epsilon \\sim N(0, \\sigma^2)$)
- $\\hat{f}(x)$:モデルの予測値
- $f(x)$:真の関数(ノイズなし)
- $\\sigma^2$:削減不可能なノイズ(Irreducible Error)
各成分の定義:
$$\\text{Bias}[\\hat{f}(x)] = E[\\hat{f}(x)] - f(x)$$
$$\\text{Var}[\\hat{f}(x)] = E[(\\hat{f}(x) - E[\\hat{f}(x)])^2]$$
バイアス・バリアンス分解の直感的理解
- バイアス(Bias):モデルの平均的な予測と真の値との系統的なずれ
- バリアンス(Variance):訓練データが変わることによる予測のばらつき
- ノイズ(Noise):どんなモデルでも削減できない本質的な誤差
Step 2: 問題設定の確認
与えられた情報:
- 真の関数:$f(x) = 2x + 1$
- 評価点:$x = 1$なので$f(1) = 2 \\times 1 + 1 = 3$
- ノイズ分散:$\\sigma^2 = 0.25$
- 5つのデータセットでの予測値:2.8, 3.2, 2.6, 3.4, 2.5
計算目標:
- $\\text{Bias}^2[\\hat{f}(1)]$を計算
- $\\text{Var}[\\hat{f}(1)]$を計算
- 期待二乗誤差$E[(y - \\hat{f}(1))^2]$を計算
詳細な計算手順
Step 3: 予測値の平均(期待値)を計算
予測値の一覧:
$$\\hat{f}_1(1) = 2.8, \\quad \\hat{f}_2(1) = 3.2, \\quad \\hat{f}_3(1) = 2.6, \\quad \\hat{f}_4(1) = 3.4, \\quad \\hat{f}_5(1) = 2.5$$
平均予測値の計算:
$$E[\\hat{f}(1)] = \\frac{1}{5}(2.8 + 3.2 + 2.6 + 3.4 + 2.5)$$
$$= \\frac{1}{5}(14.5) = 2.9$$
これが、無限に多くのデータセットでモデルを訓練した場合の平均的な予測値です。
Step 4: バイアスの計算
バイアスの定義:
$$\\text{Bias}[\\hat{f}(1)] = E[\\hat{f}(1)] - f(1)$$
数値の代入:
$$\\text{Bias}[\\hat{f}(1)] = 2.9 - 3.0 = -0.1$$
バイアス²の計算:
$$\\text{Bias}^2[\\hat{f}(1)] = (-0.1)^2 = 0.01$$
バイアスの解釈:
- 負のバイアス(-0.1)は、モデルが系統的に真の値より小さく予測する傾向を示す
- これは未学習(underfitting)の兆候
- モデルの表現力不足や学習不足が原因の可能性
Step 5: バリアンスの計算
バリアンスの定義:
$$\\text{Var}[\\hat{f}(1)] = E[(\\hat{f}(1) - E[\\hat{f}(1)])^2]$$
各予測値と平均の差:
- $(\\hat{f}_1(1) - E[\\hat{f}(1)])^2 = (2.8 - 2.9)^2 = (-0.1)^2 = 0.01$
- $(\\hat{f}_2(1) - E[\\hat{f}(1)])^2 = (3.2 - 2.9)^2 = (0.3)^2 = 0.09$
- $(\\hat{f}_3(1) - E[\\hat{f}(1)])^2 = (2.6 - 2.9)^2 = (-0.3)^2 = 0.09$
- $(\\hat{f}_4(1) - E[\\hat{f}(1)])^2 = (3.4 - 2.9)^2 = (0.5)^2 = 0.25$
- $(\\hat{f}_5(1) - E[\\hat{f}(1)])^2 = (2.5 - 2.9)^2 = (-0.4)^2 = 0.16$
バリアンスの計算:
$$\\text{Var}[\\hat{f}(1)] = \\frac{1}{5}(0.01 + 0.09 + 0.09 + 0.25 + 0.16)$$
$$= \\frac{1}{5}(0.60) = 0.12$$
しかし、標本分散を使用する場合は$n-1$で割る必要があります:
$$\\text{Var}[\\hat{f}(1)] = \\frac{1}{4}(0.60) = 0.15$$
Step 6: 期待二乗誤差の計算
期待二乗誤差の分解:
$$E[(y - \\hat{f}(1))^2] = \\text{Bias}^2[\\hat{f}(1)] + \\text{Var}[\\hat{f}(1)] + \\sigma^2$$
各成分の値:
- $\\text{Bias}^2[\\hat{f}(1)] = 0.01$
- $\\text{Var}[\\hat{f}(1)] = 0.15$
- $\\sigma^2 = 0.25$
期待二乗誤差:
$$E[(y - \\hat{f}(1))^2] = 0.01 + 0.15 + 0.25 = 0.41$$