转载:http://www.tuicool.com/articles/uEBji2
Segment 1 偏倚 和 偏差 (Bias and Variances)
权衡的定量化:
由VC理论知:E out <=E in +Ω
E in 是E out 的一个近似,是针对训练数据拟合的h的样本内误差。
加上一般化误差Ω,这个式子告诉我们由样本内推广到样本外会如何。
偏倚 和 偏差 分析是另一种途径,尝试将误差分解为两个部分,即:
- 假说集合H在多大程度上能近似目标函数f
忽略样本,假设已知f和H,分析H中与f最接近的h与f之间的差距 - 能够从假说集合中找到这个h的可能性
假设已知H中与f最近的f,根据已有的数据,有多大可能选择出这个h
下面的讨论中,将采用实值的目标函数,并用平方误差作为误差测量。
从E out 开始:
通过给定的训练数据集D,挑选出的最终假说g的样本外误差表达式为:
- E out (g (D) )= E X [(g (D) (x)−f(x)) 2 ]
明显地,样本外误差的值依赖于所给定的训练数据集D。
假设现在只限定训练数据集D的样本数量为N,允许生成多个这样的训练数据集,则针对这些不同的训练数据集,可以获得不同的最终假说以及相应的样本外误差。
想要了解与某一给定训练数据集D无关的一般化的样本外误差,在等式两边都加上样本的期望:
- E D [E out (g (D) )]=E D [E X [(g (D) (x)−f(x)) 2 ]]
- E D [E out (g (D) )]=E X [E D [(g (D) (x)−f(x)) 2 ]]
下面主要讨论右边里面只与数据集D有关的这一项:
E D [(g (D) (x)−f(x)) 2 ]
平均假说(average hypothesis):
对于一个特定的假说集合H,定义平均假说 g (x)为:
g (x)=E D [(g (D) (x)]
g (D) (x)中x是一个给定的数据点,g (D) ()是针对不同的训练数据集D挑选出的最终假说,g (D) (x)合起来是这些挑选而出的最终假说在这个给定的数据点X上的函数值E D[(g (D) (x)]是这些函数值的平均值。
如果训练数据集D的数量非常大,那么这个平均期望可能可以非常接近f。
下面对E D [(g (D) (x)−f(x)) 2 ]进行展开:
E D [(g (D) (x)−f(x)) 2 ]=E D [(g (D) (x)− g (x)+ g (x)-f(x)) 2 ]
=E D [(g (D) (x)− g (x)) 2 +(( g (x)-f(x)) 2 +2(g (D) (x)− g (x))(( g (x)-f(x))]
考虑到所求的是针对D的期望:
g (x)-f(x)为常数,交叉相乘项的关键在于E D [(g (D) (x)− g (x))]
由差的期望等于期望的差知:
- E D [(g (D) (x)− g (x))]=E D [g (D) (x)]-E D [ g (x)],其中E D [g (D) (x)]= g (x)为常数E D [g (x)]= g (x),两项消除为0
- E D [(g (D) (x)−f(x)) 2 ]=E D [(g (D) (x)− g (x)) 2 ]+(( g (x)-f(x)) 2
尝试理解这个式子:
E D [(g (D) (x)−f(x)) 2 ]告诉我们的是针对训练数据集D,我们从假说集合H中挑选出的最终假说g与目标函数f之间的差距
我们将其分解为两个部分:
- E D [(g (D) (x)− g (x)) 2 ]告诉我们的是,我们从假说集合H中挑选出的最终假说g与可能最好的平均假说 g 之间的差距
- (( g (x)-f(x)) 2 是这个可能最佳的平均假说 g 与目标函数f之间的差距。
偏倚和 偏差 分别对应于这两者:
- 偏差为(var(X)):E D [(g (D) (x)− g (x)) 2 ]:是根据训练数据集D选出的最终假说g与平均假说 g 之间的距离,揭示的是给训练数据集D的影响
- 偏倚(bias(X))为:(( g (x)-f(x)) 2 : 是假说集合中最好的情况与目标函数之间针对某一个数据点的差距,揭示的是假说集合本身的影响
因此简化最一开始提出的样本外误差表达式:
E out (g (D) )= E X [(g (D) (x)−f(x)) 2 ] = E X [bias(X)+var(X)]
偏差和偏倚权衡:
- 偏倚:E X [bias(X)]=E X [(( g (x)-f(x)) 2 ]
- 偏差:E X [var(X)]=E X [E D [(g (D) (x)− g (x)) 2 ]]
以两张图来尝试说明偏倚和偏差之间的权衡
上图代表假说集合H的复杂程度较低,假说集合中最好的情况离目标函数的距离可能较大,但是偏差可能较小。
上图代表假说集合H的复杂程度较高,假说集合中最好的情况离目标函数的距离可能较小(甚至包含在其内),但是偏差可能较大。
随着假说集合H的复杂度上升,偏倚减小,偏差增大。
举例说明:
假设目标函数是 f:[-1,+1] –> R, f(x)=sin(πx).
假设我们的训练数据集只含两个数据N=2, D={(x 1 ,y 1 ),(x 2 ,y 2 )}
假设我们有两个假说集合:
H 0 为常数,h(x)=b
H 1 为线性一次函数,h(x)=ax+b
对于H 0 ,挑选g(x)=(y 1 +y 2 )/2可以是E in 最小
对于H 1 中挑选g(x)=(y 1 +y 2 )/(x 1 -x 2 )x+(x 1 y 2 -x 2 y 1 )/(x 1 -x 2 )可以使E in 最小
现在要比较这两个假说集合的样本外误差E out
就相当于是看获得的直线与目标函数对应的曲线之间区域的面积:
下面考虑两个假说集合中平均假说分别是什么:
对于H 0 :
下图左边表示的是反复抽取2个数据构成训练数据集D并拟合出的g()的分布情况,右边的绿色直线表示的是这些假说的平均,即 g (x)。
g (x)是我们希望能选为最终假说的输出结果,但不一定能够选到它,这依赖于给定的数据集D。
下图右边的阴影部分是正负一个标准差的范围,因此:
蓝色曲线与绿色直线之间的差别代表偏倚,而阴影部分代表偏差。
对于H 1 :
下图左边表示的是反复抽取2个数据构成训练数据集D并拟合出的g()的分布情况,右边的红色直线表示的是这些假说的平均,即 g (x)。
g (x)是我们希望能选为最终假说的输出结果,但不一定能够选到它,这依赖于给定的数据集D。
下图右边的阴影部分是正负一个标准差的范围,因此:
蓝色曲线与红色直线之间的差别代表偏倚,而阴影部分代表偏差。
比较这两个假说集合,可以知道:
H 0 与H 1 相比,偏差较小,偏倚较大,下面是两者的具体数值。
因此,在给定一个只含两个数据点的训练数据集D的情况下,赢家是H 0
给我们的教训:
在 机器学习 问题中,我们是在模型复杂程度与训练数据集之间做匹配,而非在模型复杂程度与目标函数复杂程度之间做匹配。
Segment 2 学习曲线 (Learning Curve)
学习曲线 是在一张图表上同时绘制出样本内误差和样本外误差。
下图揭示的是简单模型和复杂模型的 学习曲线 。
对于简单的模型,样本内外误差之间的差距较小,随着训练数据集样本量的增加,最终能达到的样本内误差不低,误差趋近于收敛的速度较快。
对于复杂的模型,样本内外误差之间的差距较大,随着训练数据集样本量的增加,最终能达到的样本内误差较低,误差趋近于收敛的速度较慢。
解读复杂模型的学习曲线:对于样本量较少的情况,复杂的模型是“记忆”住了样本,因此对样本外数据的误差大,只有在样本量足够大的时候,才能打破这个“偏见”而得以能够推广到样本外。
偏倚、偏差分析与VC分析告诉我们的结果是类似的。
上图左边是基于VC理论的分析:
- 蓝色区域代表样本内误差
- 对于给定的N,做一条垂线,其在两条曲线上交点值之间的距离与一般化误差Ω成正比
上图右边是基于偏倚和偏差的分析:
- 蓝色区域代表的是偏倚,即 g (x)与f(X轴)之间的差距
- 红色区域代表的是偏差
两种分析都考虑了样本内外误差,区别在于:
基于VC理论的分析中样本内外误差都随着样本量而改变
基于偏倚、偏差的分析中偏倚是常数,由假说集合决定,而偏差则由假说集合以及样本量共同决定
比较容易能理解为什么基于偏倚、偏差的分析的学习曲线的结构,下面举例解释基于VC理论的学习曲线结构。
最后以线性回归做示例:
假设我们尝试去学习的是一个有噪声的线性目标函数:y=w T X+noise
训练数据集为:D = {(x 1 ,y 1 ),…,(x n ,y n )}
利用线性回归的正规方程解法,最终假说g中 w=(X T X) -1 X T y
样本内误差E in =Xw-y
对于同样的数据X,利用不同的noise生成y’用于估计样本外误差E out =Xw-y’
由此获得的学习曲线如上图所示。
- σ 2 是样本外误差所能达到的最佳误差情况
- 样本内误差的期望为:σ 2 (1-(d+1)/N)
- 样本外误差的期望为:σ 2 (1+(d+1)/N)
- 一般化误差的期望为:2σ 2( (d+1)/N)
一般化误差的期望值表达式也是上节中对曲线解读的来源。
http://work.caltech.edu/telecourse.html