我们一直试图在近似和泛化之间找到一个平衡。
我们的目标是得到一个较小的 Eout ,也希望在样例之外也表现得非常棒的 Eout 。复杂的假设集 H 将有机会得到一个接近目标函数的结果。
VC维分析使用的是泛化边界来进行泛化。根据公式 Eout≤Ein+Ω ,其中 Ein 是我们在算法中需要去减少的值,如果它比较小,我们就得到了一个不错的近似函数(起码在某些点上是这样);而 Ω 则是纯粹的泛化,用于量化如何从样本内泛化到样本外。
偏见方差则是将 Eout 分解成两个不同的值:
H 能够在何种程度上近似 f ; 我们如何能够在何种程度上得到这个h∈H我们对于特定的数据集得到的近似函数通过加一个上标的方式来表示,即 gD 。在偏见方差中,将用期望 E 来表示 Eout 。
Eout(gD)=Ex[(gD(x)−f(x))2]
那么根据上式,我们要得到泛化的表现,就要去除特定的 D 对近似函数的影响。我们对 D 进行一个整合,即求多个相似数据集的期望,以此来消除不同数据集对不同近似函数的影响。
ED[Eout(gD)]==ED[Ex[(gD(x)−f(x))2]]Ex[ED[(gD(x)−f(x))2]]
上式的第二步可以这样转化的原因是(我个人理解),在通过积分求期望的时候,当积分要素非负,积分的顺序与积分的结果无关。
所以我们只需要关注于 ED[(gD(x)−f(x))2]
我们固定住某个特定的 x 值,可以使用无限多的假设集,得到无限多的近似函数gD以及 gD(x) 。这些近似函数的输出可能会有波动,但是我们采用无限多个这样的结果后得到的平均值就是正确的结果。
平均假设不是一个真实的值,因为我们并不会这样使用和计算,但是在分析中会用到。平均假设表示为
g¯(x)=ED[gD(x)]
代入可得
ED[(gD(x)−f(x))2]====ED[(gD(x)−g¯(x)+g¯(x)+f(x))2]ED[(gD(x)−g¯(x))2+(g¯(x)−f(x))2+2(gD(x)−g¯(x))(g¯(x)−f(x))]ED[(gD(x)−g¯(x))2+(g¯(x)−f(x))2]ED[(gD(x)−g¯(x))2]+(g¯(x)−f(x))2
最终可将式子变化为
ED[(gD(x)−f(x))2]=ED[(gD(x)−g¯(x))2]1+(g¯(x)−f(x))22
第一部分表示:离我们在假设集中得到最好的假设有多大的距离,对于平均假设,我们不确定它是不是真的属于某个假设集,也不知道它是不是真的非常好,但是它作为多个假设集的平均,我们姑且认为它是一个不错的假设集;第二部分则表示:我们提出的最好的假设离我们的目标函数还有多远的差距。
那么第一部分就是方差,第二部分就是偏移。
我们再将上面所推导的内容代入会原式子
ED[Eout(gD)]===Ex[ED[(gD(x)−f(x))2]]Ex[ED[(gD(x)−g¯(x))2]+(g¯(x)−f(x))2]Ex[var(x)+bias(x)]=bias+var
我们可以看得出来,当假设集变大, var 会变大,而当假设集变小, bias 会变大,因此两者需要保持一种平衡。
在本例子中提供了目标函数
f:[−1,1]→R f(x)=sin(πx)
提供了两个假设
H0=bH1=ax+b
对于两个假设集,我们可以得到如下的图像
我们随机在目标函数上找两个点,然后我们将目标函数隐去,再进行学习,从而得到两个近似函数;而下图中所得到的近似函数会受到数据集的影响
当我们取得无数个点并得到近似函数时,左图表示其频度,右图表示其均值与方差,两个假设集的表现如下
H0
H1
将两个假设集放在一起进行量化比较
图6偏移方差之所以可以以横轴作为分界,是因为 g¯(x) 十分接近目标函数。
关于VC维和偏移方差红色部分的大小问题,其实并没有什么影响,他们展现出来的规律都是一样的。
当我们将噪音考虑进去之后,目标函数就变为了
y=w⃗ ∗T∗x+noise
数据集为 D={(x1,y1),…,(xN,yN)}
而逻辑回归得到的近似函数权重为
w⃗ =(XTX)−1XTy
我们如果将他们之间的误差评分平方值相加并取得均值,我们将会得到样本误差
Ein=Xw⃗ −y
在处理样本外误差的时候,我们将使用相同的输入,但是使用不同的噪音,这样会跟方便我们去理解问题:
Eout=Xw⃗ −y′
图7
我们不断地采样训练,那么最终的结果会接近于 δ2 ,其中 δ 为噪声的平均值(我们并不知道噪声的具体情况,但是如果足够的样本进行训练,那么噪声的影响将会转化为噪声的平均值)。
从上图可以知道,我们可以得到的最好的近似误差为 δ2 。
样本误差的期望则是 δ2(1−d+1N) ,样本外误差的期望就可以通过对称得到 δ2(1+d+1N) 。
泛化误差的期望为 2δ2(d+1N)