对于某个特定的模型来说,它的泛化误差(Generation Error)可以分为三部分:模型预测值的方差(variance)、预测值相对真实值的偏差(bias)、样本本身存在的噪声(noise),可以用下面的公式进行表示:
E ( ( y − f ^ ( x ) ) 2 ) = σ 2 + V a r [ f ^ ( x ) ] + ( B i a s [ f ^ ( x ) ] ) 2 E((y-\hat f(x))^2)=\sigma^2+Var[\hat f(x)]+(Bias[\hat f(x)])^2 E((y−f^(x))2)=σ2+Var[f^(x)]+(Bias[f^(x)])2
其中 B i a s [ f ^ ( x ) ] = E [ f ^ ( x ) − f ( x ) ] Bias[\hat f(x)]=E[\hat f(x)-f(x)] Bias[f^(x)]=E[f^(x)−f(x)]
我们分别看一下泛化误差的这三个部分:
下面我们通过一个例子具体看一下:假设靶的中心是样本的真实值,左图镖的位置距离中心远,表示偏差大,但是位置相对集中,则方差较小;右图镖的位置相对左图距离中心更近,表示偏差较小,但是位置分散,表示方差较大。
相对于前面的公式表示,我们用图像化表示后就可以很直观的看到偏差、方差和噪声的情况。
那么前面 E ( ( y − f ^ ( x ) ) 2 ) = σ 2 + V a r [ f ^ ( x ) ] + ( B i a s [ f ^ ( x ) ] ) 2 E((y-\hat f(x))^2)=\sigma^2+Var[\hat f(x)]+(Bias[\hat f(x)])^2 E((y−f^(x))2)=σ2+Var[f^(x)]+(Bias[f^(x)])2 是怎样的出来的呢?我们以最基本的回归问题为例,假设某一个数据集中样本的真实分布为 P r ( x , y ) P_{r}(x,y) Pr(x,y),采用最常用的平方损失来度量预测效果,则模型的期望错误可以写成:
R ( f ) = E ( x , y ) ∼ p r ( x , y ) [ ( y − f ( x ) ) 2 ] \mathcal{R}(f)=\mathbb{E}_{(\mathbf{x}, y) \sim p_{r}(\mathbf{x}, y)}\left[(y-f(\mathbf{x}))^{2}\right] R(f)=E(x,y)∼pr(x,y)[(y−f(x))2]
那么最优的模型表示为 f ∗ ( x ) = E y ∼ p r ( y ∣ x ) [ y ] f^{*}(\mathrm{x})=\mathbb{E}_{y \sim p_{r}(y | x)}[y] f∗(x)=Ey∼pr(y∣x)[y] ,那么再将上面的期望错误进行分解
R ( f ) = E ( x , y ) ∼ p r ( x , y ) [ ( y − f ∗ ( x ) + f ∗ ( x ) − f ( x ) ) 2 ] = E x ∼ p r ( x ) [ ( f ( x ) − f ∗ ( x ) ) 2 ] + ε \begin{aligned} \mathcal{R}(f) &=\mathbb{E}_{(\mathbf{x}, y) \sim p_{r}(\mathbf{x}, y)}\left[\left(y-f^{*}(\mathbf{x})+f^{*}(\mathrm{x})-f(\mathrm{x})\right)^{2}\right] \\ &=\mathbb{E}_{\mathbf{x} \sim p_{r}(\mathbf{x})}\left[\left(f(\mathrm{x})-f^{*}(\mathrm{x})\right)^{2}\right]+\varepsilon \end{aligned} R(f)=E(x,y)∼pr(x,y)[(y−f∗(x)+f∗(x)−f(x))2]=Ex∼pr(x)[(f(x)−f∗(x))2]+ε
其中 ε = E ( x , y ) ∼ p r ( x , y ) [ ( y − f ∗ ( x ) ) 2 ] \varepsilon=\mathbb{E}_{(\mathbf{x}, y) \sim p_{r}(\mathbf{x}, y)}\left[\left(y-f^{*}(\mathbf{x})\right)^{2}\right] ε=E(x,y)∼pr(x,y)[(y−f∗(x))2] ,第一项是可以通过学习优化的,第二项是由于噪声等原因造成的不可优化的误差。而第一项又可以作如下的分解:
E D [ ( f D ( x ) − f ∗ ( x ) ) 2 ] = E D [ ( f D ( x ) − E D [ f D ( x ) ] + E D [ f D ( x ) ] − f ∗ ( x ) ) 2 ] = ( E D [ f D ( x ) ] − f ∗ ( x ) ) 2 ⎵ ( bias ) 2 + E D [ ( f D ( x ) − E D [ f D ( x ) ] ) 2 ] ⎵ variance \begin{aligned} \mathbb{E}_{\mathcal{D}} &\left[\left(f_{\mathcal{D}}(\mathrm{x})-f^{*}(\mathrm{x})\right)^{2}\right] \\=& \mathbb{E}_{\mathcal{D}}\left[\left(f_{\mathcal{D}}(\mathrm{x})-\mathbb{E}_{\mathcal{D}}\left[f_{\mathcal{D}}(\mathrm{x})\right]+\mathbb{E}_{\mathcal{D}}\left[f_{\mathcal{D}}(\mathrm{x})\right]-f^{*}(\mathrm{x})\right)^{2}\right] \\=& \underbrace{\left(\mathbb{E}_{\mathcal{D}}\left[f_{\mathcal{D}}(\mathrm{x})\right]-f^{*}(\mathrm{x})\right)^{2}}_{(\text { bias })^{2}}+\underbrace{\mathbb{E}_{\mathcal{D}}\left[\left(f_{\mathcal{D}}(\mathrm{x})-\mathbb{E}_{\mathcal{D}}\left[f_{\mathcal{D}}(\mathrm{x})\right]\right)^{2}\right]}_{\text { variance }} \end{aligned} ED==[(fD(x)−f∗(x))2]ED[(fD(x)−ED[fD(x)]+ED[fD(x)]−f∗(x))2]( bias )2 (ED[fD(x)]−f∗(x))2+ variance ED[(fD(x)−ED[fD(x)])2]
综合上面的分析,期望错误可以写成 R ( f ) = ( b i a s ) 2 + variance + ε \mathcal{R}(f)=(\mathrm{bias})^{2}+\text { variance }+\varepsilon R(f)=(bias)2+ variance +ε 。其中:
( b i a s ) 2 = E x [ ( E D [ f D ( x ) ] − f ∗ ( x ) ) 2 ] variance = E x [ E D [ ( f D ( x ) − E D [ f D ( x ) ] ) 2 ] ] \begin{aligned}(\mathrm{bias})^{2} &=\mathbb{E}_{\mathrm{x}}\left[\left(\mathbb{E}_{\mathcal{D}}\left[f_{\mathcal{D}}(\mathrm{x})\right]-f^{*}(\mathrm{x})\right)^{2}\right] \\ \text { variance } &=\mathbb{E}_{\mathrm{x}}\left[\mathbb{E}_{\mathcal{D}}\left[\left(f_{\mathcal{D}}(\mathrm{x})-\mathbb{E}_{\mathcal{D}}\left[f_{\mathcal{D}}(\mathrm{x})\right]\right)^{2}\right]\right] \end{aligned} (bias)2 variance =Ex[(ED[fD(x)]−f∗(x))2]=Ex[ED[(fD(x)−ED[fD(x)])2]]
由于 ϵ \epsilon ϵ是不可优化的,所以最小期望错误就等于最小偏差和最小方差之和。
模型的期望错误、偏差和方差随复杂度的变化情况如下所示,从中可以看出,最优的模型并不一定是偏差曲线和方差曲线的交点。
因此,想让模型同时拥有低偏差和低方差是不可能的,也被称为偏差-方差窘境。在模型训练的起始阶段,拟合效果差,则偏差较大,数据集的变化对于模型的影响也很小,表示方差较小;随着训练的深入,模型的拟合能力越来越强,偏差逐渐减小,方差逐渐增大;当模型训练的一定程度时,它的拟合能力非常强,这时的所有样本都可以很好的被拟合,偏差很小,但是训练集细微的变化都会对模型的效果产生很大的影响,方差就很大,则将发生过拟合。
一般来说:参数或者线性的机器学习算法一般都会有一个很高的偏差和一个很低的方差。但是,非参数或者非线性的机器学习算法一般都有一个很低的偏差和一个很高的方差。
所以,根据偏差-方差分解说明,泛化性能是由学习算法的能力、数据的充分性以及学习任务本身的难度所共同决定的。给定学习任务,为了取得好的泛化性能,则需使偏差较小,即能够充分的拟合数据,并且使方差较小,即使得数据扰动产生的影响小。故在实际使用中,我们需要在两者之间做一个权衡,使我们的模型效果达到最优。
Stanford机器学习课中关于这部分的讲解可见我的另一篇博客: Stanford机器学习-应用机器学习的建议
https://www.jianshu.com/p/8c7f033be58a
https://blog.csdn.net/weixin_40604987/article/details/79676066
https://segmentfault.com/a/1190000012461409
https://blog.csdn.net/simple_the_best/article/details/71167786
邱锡鹏 《神经网络和深度学习》 2.4节