机器学习基石-Validation

大纲

这里写图片描述

Model Selection Problem

1 Model Selection Problem

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

这里写图片描述

我们的目标是选择最好的搭配,建立好模型,得到一个好的 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)))

这样会存在问题

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

  • 假设演算法 A1 H1 中选择最小的 Ein ,演算法 A2 H2 中选择最小的 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)

这里写图片描述

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

Validation

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

  • 剩下的 Nk 个样本构成 Dtrain

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

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

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

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

2 Model Selection by Best Eval

这里写图片描述

假设有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的 Eout Dtrain Eout 要小:

这里写图片描述

3 Validation in Practice

这里写图片描述

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

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

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

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

这里写图片描述

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

  • 当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

这里写图片描述

如上图所示,要对二维平面上的三个点做拟合,上面三个图表示的是线性模型,下面三个图表示的是常数模型。对于两种模型,分别使用留一交叉验证法来计算 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) 的平均值。具体推导过程如下:

这里写图片描述

所以我们可以得出结论
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

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值