训练是为了得到泛化性能好的模型,希望模型在未知数据上能够取得好的效果,偏差方差分解是解释模型泛化性能的一种方式,
对于测试样本\(x\),使用数据集\(D\)训练的模型\(f\)在\(x\)上的输出记为\(f(x;D)\),\(x\)的真实标签为\(y\),在数据集\(D\)中模型的标签为\(y_D\)。
记
$$\overline f(x;D) = E_D[f(x;D)]$$
偏差
偏差是指模型的期望输出与数据真实标签的差别
$$bias^2(x)=(\overline f(x;D)-y)$$
方差
$$var(x)=E_D[(f(x;D) - \overline f(x;D))^2]$$
噪声
$$\epsilon^2 = E_D[(f(x;D) - y)^2]$$
那么模型的期望泛化误差可以表示为
$$\begin{align}E_D[(f(x;D) - y_D)^2] =& E_D[(f(x;D) - \overline f(x;D) + \overline f(x;D) - y_D)^2]\\ =& E_D[(f(x;D) - \overline f(x;D))^2] + E_D[(\overline f(x;D) - y_D)^2]\\ =& E_D[(f(x;D) - \overline f(x;D))^2] +E_D[(\overline f(x;D) - y + y- y_D)^2]\\ =& E_D[(f(x;D) - \overline f(x;D))^2] +E_D[(\overline f(x;D) - y] + E_D[(y- y_D)^2]\\ =& var(x) + bias^2(x) + \epsilon^2\end{align}$$