[李宏毅 机器学习] 2.误差来源

您可以在我的个人博客 blog.pengwill.info 获得更好的阅读体验。

思维导图

在这里插入图片描述

系统的误差来自两个方面,Bias和Variance

数理统计中的方差和偏差

当我们需要随机变量xx所服从的总体分布的均值和方差的时候,有不同的估计方法。然而在选择估计量进行估计的时候,可能会有偏差,据此可以分为有偏估计无偏估计。下面为均值和方差的估计方法。

估计均值μ\mu

  1. 首先从总体抽样,获得一个样本集,如抽NN个样本X1,X2,,XNX^1,X^2,\dots,X^N构成一个样本集
  2. 计算此样本集的均值m=i=1NXiNm=\frac{\sum^N_{i=1}X_i}{N}
  3. 多次采样,即得出多个样本集,如共得到KK个样本集,计算样本集均值的均值E[m]=E[1Ni=1NXi]=1NE[i=1NXi]E[m] = E[\frac{1}{N}\sum_{i=1}^{N}X_i]=\frac{1}{N}E[\sum_{i=1}^{N}X_i]

上述表述即为中心极限定理,mm为总体均值μ\mu的一个无偏估计。

估计方差σ2\sigma^2

  1. 首先从总体抽样,获得一个样本集,如抽NN个样本X1,X2,,XNX^1,X^2,\dots,X^N构成一个样本集
  2. 计算此样本集的均值m=i=1NXiNm=\frac{\sum^N_{i=1}X_i}{N},计算样本集的二阶中心矩S2=1Ni=1N(Xim)2S^2=\frac{1}{N}\sum_{i=1}^{N}(X_i-m)^2
  3. 多次采样,即得出多个样本集,如共得到KK个样本集,计算样本集二阶中心距的均值E[S2]=1NE[i=1N(Xim)2]E[S^2]=\frac{1}{N}E[\sum_{i=1}^{N}(X_i-m)^2]
  4. 此时的估计为有偏估计,与真实的方差之间的差别为E[S2]=N1Nσ2E[S^2]=\frac{N-1}{N}\sigma^2

由此可知S2S^2为总体方差的σ2\sigma^2的一个有偏估计。

为什么会有这样的结果

假定我们对于参数为θ\theta的某个分别连续采样,想要通过观测值来估计参数θ\theta,估计的到的参数记为θ^\hat{\theta},那么估计的偏差为Bias[θ^]=E[θ^]θBias[\hat{\theta}]=E[\hat{\theta}]-\theta。那么无偏估计为Bias[θ^]=0Bias[\hat{\theta}] = 0的估计。

对于均值的估计偏差

\[
\begin{align*}
E[m] &=\frac{1}{N}E[\sum_{i=1}^{N}X_i] \\ &= \frac{1}{N}\sum_{i=1}^NE(X_i) \\ &=\frac{1}{N}\sum_{i=1}^{N}\mu\&=\mu
\end{align*}
\]

可以看到样本均值即为总体均值,故为无偏估计。

对于方差估计偏差

E[S2]=E[1ni=1n(Xim)2]=E[1ni=1n((Xiμ)(mμ))2] =E[1ni=1n((Xiμ)22(mμ)(Xiμ)+(mμ)2)] =E[1ni=1n(Xiμ)22n(mμ)i=1n(Xiμ)+1n(mμ)2n] =E[1ni=1n(Xiμ)22n(mμ)i=1n(Xiμ)+(mμ)2] =E[1ni=1n(Xiμ)22n(mμ)n(mμ)+(mμ)2] =E[1ni=1n(Xiμ)22(mμ)2+(mμ)2] =E[1ni=1n(Xiμ)2(mμ)2] =E[1ni=1n(Xiμ)2]E[(mμ)2] =σ2E[(mμ)2]=(11n)σ2<σ2 \begin{aligned} \mathrm{E}\left[S^{2}\right] &=\mathrm{E}\left[\frac{1}{n} \sum_{i=1}^{n}\left(X_{i}-m\right)^{2}\right]=\mathrm{E}\left[\frac{1}{n} \sum_{i=1}^{n}\left(\left(X_{i}-\mu\right)-(m-\mu)\right)^{2}\right] \\\ &=\mathrm{E}\left[\frac{1}{n} \sum_{i=1}^{n}\left(\left(X_{i}-\mu\right)^{2}-2(m-\mu)(X_{i}-\mu)+(m-\mu)^{2}\right)\right] \\\ &=\mathrm{E}\left[\frac{1}{n} \sum_{i=1}^{n}\left(X_{i}-\mu\right)^{2}-\frac{2}{n}(m-\mu) \sum_{i=1}^{n}\left(X_{i}-\mu\right)+\frac{1}{n}(m-\mu)^{2} \cdot n\right] \\\ &=\mathrm{E}\left[\frac{1}{n} \sum_{i=1}^{n}\left(X_{i}-\mu\right)^{2}-\frac{2}{n}(m-\mu) \sum_{i=1}^{n}\left(X_{i}-\mu\right)+(m-\mu)^{2}\right] \\\ &=\mathrm{E}\left[\frac{1}{n} \sum_{i=1}^{n}\left(X_{i}-\mu\right)^{2}-\frac{2}{n}(m-\mu) \cdot n \cdot(m-\mu)+(m-\mu)^{2}\right] \\\ &=\mathrm{E}\left[\frac{1}{n} \sum_{i=1}^{n}\left(X_{i}-\mu\right)^{2}-2(m-\mu)^{2}+(m-\mu)^{2}\right] \\\ &=\mathrm{E}\left[\frac{1}{n} \sum_{i=1}^{n}\left(X_{i}-\mu\right)^{2}-(m-\mu)^{2}\right] \\\ &=\mathrm{E}\left[\frac{1}{n} \sum_{i=1}^{n}\left(X_{i}-\mu\right)^{2}\right]-\mathrm{E}\left[(m-\mu)^{2}\right] \\\ &=\sigma^{2}-\mathrm{E}\left[(m-\mu)^{2}\right]=\left(1-\frac{1}{n}\right) \sigma^{2}<\sigma^{2} \end{aligned}

当样本均值mm和总体均值μ\mu相等时,二阶中心矩的期望和总体方差σ2\sigma^2相等,否则二阶中心距期望小于总体方差σ2\sigma^2

话说回来

如果我们对一个量进行估计,若估计的本身就是有偏的,那么无论我们估计的再准,最终结果也会有偏差。这就好比使用二阶中心距来估计总体方差,无论二阶中心距计算的再准,也是会有偏差的(即bias)。使用修正后的公式后则不会出现这个问题。

如果我们在估计时选择无偏估计量,那么如何进一步评价这个估计量的好坏呢?我们一般认为越有效的估计量越好。有效性指的是估计量与总体参数的离散程度,即方差的大小,方差越小,则估计量越有效。

模型的方差和偏差

模型的方差

简单的模型受数据的影响较小,因为简单模型参数少,在数据不同的时候,变化较小。
复杂的模型受数据的影响较大,因为复杂模型参数多,在数据不同的时候,变化较大。

复杂系统的稳定性小,简单模型的稳定性大。

模型的偏差

简单模型的偏差可能会很大,因为简单模型所能表达的有限,故有可能会使得最后的偏差很大。当出现这种情况的时候,这是说明没有很好的拟合数据(underfitting)。

复杂模型的表达能力更强,但是受数据影响较大,即每次得出的模型方差会很大,出现这种情况的时候,说明已经过头拟合了数据(overfitting)。

模型诊断

判断

  1. 如果模型在训练集上的表现很差(高bias),即不能很好的拟合训练集,则说明模型比较简单,处于欠拟合(underfitting)的状态。
  2. 如果模型在训练集上的表现很好,但是在测试集上的表现不好(高variance),则说明模型复杂,且处于过拟合(overfitting)的状态。

调整

  1. 当欠拟合的状态,应该提高模型复杂度,在模型中加入更多的特征。
  2. 当过拟合的时候,应该增加数据量,或者增加正则项。

模型选择

我们希望找到一个模型,他的方差很小,他的偏差也很小。

划分验证集

将Training Set分为两组,一组为Training Set,另一组为Validation Set(验证集)。首先使用Training Set进行训练,训练出多个模型后,使用Validation Set选择一个误差最小的模型。然后提交这个模型。这个模型在Public Set上的误差可以代表在Private Set上的误差。

切记不要通过Public Set来调整模型。比如在猫狗分类中,查看在Public Set上误分类的猫,来进一步提高猫的分类效果。这样的操作相当于过拟合Public Set,会导致看起来在Public Set上的效果很好,但是最后在Private Set的效果很差,最后训练的模型没有很好的泛化能力。

N折交叉验证

将Training Set平均为N组,每一次训练,都将N组中其中一组作为Validation Set,其余作为Training Set。当训练好多个模型的时候,进行评估时,同样执行N次,每一次用其中的Validation Set评估,计算出误差,最后求出N个误差的均值,作为这个模型的平均误差。选取平均误差最小的作为最后的模型。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章