モデル選択・評価

AIC、BIC、交差検証、ROC曲線、混合行列など、統計モデルの選択と評価に関する手法

バイアス・バリアンス分解の計算 レベル1

ある回帰問題において、真の関数をf(x) = 2x + 1、ノイズの分散をσ² = 0.25とする。線形モデルĥ(x) = ax + bを用い、5つの異なる訓練データセットで学習した結果、x = 1における予測値が以下のようになった。\n\n**予測結果:**\n- Dataset 1: ĥ₁(1) = 2.8\n- Dataset 2: ĥ₂(1) = 3.2\n- Dataset 3: ĥ₃(1) = 2.6\n- Dataset 4: ĥ₄(1) = 3.4\n- Dataset 5: ĥ₅(1) = 2.5\n\n**問題:** x = 1におけるバイアス²、バリアンス、期待二乗誤差を計算せよ。

解説
解答と解説を表示

この問題では、機械学習の根幹をなすバイアス・バリアンス分解(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

計算目標:

  1. $\\text{Bias}^2[\\hat{f}(1)]$を計算
  2. $\\text{Var}[\\hat{f}(1)]$を計算
  3. 期待二乗誤差$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$$
問題 1/10
カテゴリ一覧に戻る