大纲

机器学习基石-Validation

Model Selection Problem

1 Model Selection Problem

在机器学习建立模型的过程中有很多选择,对于简单的二分类问题

机器学习基石-Validation

我们的目标是选择最好的搭配,建立好模型,得到一个好的g,使Eout(g)最小

假设有M个模型,对应有H1,H2,,HM,即有M个hypothesis set,演算法为A1,A2,,AM,共M个。我们的目标是从这M个hypothesis set中选择一个模型Hm,通过演算法Am对样本集D的训练,得到一个最好的矩gm,使其Eout(gm)最小。所以,问题的关键就是机器学习中如何选择到最好的矩gm

2 Model Selection by Best Ein

对M个模型分别计算使Ein最小的矩g,再横向比较,取其中能使Ein最小的模型的矩gm

m=argmin1mM(Em=Ein(Am(D)))

这样会存在问题

  • 这样会倾向于选择比较复杂的模型,可能会导致过拟合

  • 假设演算法A1H1中选择最小的Ein,演算法A2H2中选择最小的Ein,这种“模型选择+学习训练”的过程,它的VC Dimension是dVC(H1H2),模型复杂度增加.

总得来说这样做会导致泛化能力较差

3 Model Selection by Best Etest

假设有一个独立于训练样本的测试集Dtest,我们可以这样选择

m=argmin1mM(Em=Etest(Am(D)))

这种测试集验证的方法,根据finite-bin Hoffding不等式,可以得到
Eout(gm)Etest(gm)+O(logMNtest)

由上式可以看出,模型个数M越少,测试集数目越大,那么(logMNtest) 越小,即Etest(gm)越接近于Eout(gm)

机器学习基石-Validation

因为Dtest数据是拿不到的,所以我们可以采取一种折中的办法,我们可以使用已有的训练集D来创造一个验证集validation set,即从D中划出一部分Dval作为验证集。D另外的部分作为训练模型使用,Dval独立开来,用来测试各个模型的好坏,最小化Eval,从而选择最佳的gm

Validation

1 Validation Set Dval

  • D中随机抽样k个样本构成Dval,使Dval独立同分布与p(x,y),这样可以使DvalDout联系起来

  • 剩下的Nk个样本构成Dtrain

  • 为了保证Dval是干净的,应该只用Dtrain做模型的训练

我们把用训练数据Dval训练得到的模型叫gm¯,那么我们就有

Eout(gm¯)Eval(gm¯)+O(logMK)

所以为了让Eout(gm¯)小,我们应该尽量让Eval(gm¯)

2 Model Selection by Best Eval

机器学习基石-Validation

假设有M种模型hypothesis set,Dval的数量为K,那么从每种模型m中得到一个在Din上表现最好的矩,再横向比较,从M个矩中选择一个在Dval最好的m作为我们最终得到的模型。

m=argmin1mM(Em=Eval(Am(Dtrain)))

现在由于数量为N的总样本D的一部分K作为验证集,那么只有N-k个样本可供训练。从Dtrain中得到最好的gm¯,而总样本D对应的最好的矩为gm。根据之前的leraning curve很容易知道,训练样本越多,得到的模型越准确,其hypothesis越接近target function,即D的EoutDtrainEout要小:

机器学习基石-Validation

3 Validation in Practice

机器学习基石-Validation

  • 黑色的虚线表示用Etest来做选择,肯定是最优的。但实践中我们往往做不到

  • 黑色的直线表示用Ein来做选择,会导致过拟合,所以泛化误差较高

  • 红色的直线表示用Eval做选择,但选择的是gm¯,它的变化趋势随着K增大是先减少后增大,当K大于一定值时,甚至会超过黑色的线

  • 蓝色的直线表示用Eval做选择,但选择的是gm,其趋势是随着K的增加,它对应的$Eout先缓慢减小再缓慢增大,且一直位于红色曲线和黑色直线之下。从此可见,蓝色曲线对应的方法最好,符合我们之前讨论的使用验证集进行模型选择效果最好。

4 The Dilemma about K

机器学习基石-Validation

  • 当K比较大的时候,EoutEval,但是gg可能相差很多。

  • 当K比较小的时候,gg,但是Eout可能和Eval相差很多

一般k取值的经验值是N5,值得一提的是,划分验证集通常不会增加整体的时间复杂度,反而会降低时间复杂度。

Leave-One-Out Cross Validation

1 Extreme Case

当验证集的大小k=1的时候,我们称之为留一交叉验证。

留一交叉验证的误差估计

Eloocv{H,A}=1Nn=1Nen=1Nn=1Nerr(gn(xn),yn)

我们希望Eloocv(H,A)Eout(g)

2 Illustration of Leave-One-Out

机器学习基石-Validation

如上图所示,要对二维平面上的三个点做拟合,上面三个图表示的是线性模型,下面三个图表示的是常数模型。对于两种模型,分别使用留一交叉验证法来计算Eloocv,计算过程都是每次将一个点作为验证集,其他两个点作为训练集,最终将得到的验证误差求平均值,就得到了Eloocv(linear)Eloocv(constant),比较两个值的大小,取值小对应的模型即为最佳模型。

3 Theoretical Guarantee of Leave-One-Out Estimate

接下来,我们从理论上分析Leave-One-Out方法的可行性,即Eloocv(H,A)是否能保证Eout的矩足够好?假设有不同的数据集D,它的期望分布记为εD,则其Eloocv(H,A)可以通过推导,等于Eout(N1)的平均值。由于N-1近似为N,Eout(N1)的平均值也近似等于Eout(N)的平均值。具体推导过程如下:

机器学习基石-Validation

所以我们可以得出结论
Eloocv(H,A)Eout(g)

4 Disadvantage of Leave-One-Out Estimate

  • 计算量巨大

  • 稳定性差,由于单个点估计得偏差

V-Fold Cross Validation

1 V-fold Cross Validation

  • 把数据集D随机划分为V等分,取V-1份做训练,1份做验证

  • 通过Ecv(H,A)=1VVv=1E(v)val(gv)作为模型选择的标准

  • m=argmin1mMEm=Ecv(Hm,Am)

2 Selecting Validation Tool

  • V-Fold Validation通常比单个Validation好

  • 5-Fold和10-Fold通常工作的会比较好

3 Nature Of Validation

机器学习基石-Validation

相关文章: