林轩田之机器学习课程笔记( how can machines learn better之validation)(32之15)

欢迎转载,可以关注博客:http://blog.csdn.net/cqy_chen

概要

上节课我们讲到了要避免过拟合,可以添加正则化项来缩放我们的假设空间,这样减少模型的复杂度,从而避免过拟合。还有一个问题就是如何选择需要的 λ .

模型选择问题

当我们需要使用一个机器学习算法去解决一个问题的时候,有很多需要去考虑,就假设进行一个二分类问题。
1)采用什么样的模型,PLA,逻辑回归,还是啥
2)如果采用随机梯度下降,到底走多少步呢?
3)步长选多少呢?
4)如果要进行特征的映射,改选多项式还是高斯的,多项式要选择几次呢?
5)如果做正则化,采用L1还是L2呢?
6)正则化项的系数该如何选择呢?
等等
这里写图片描述
不要忘记我们做机器学习的目的是使得 Eout 变小。
如何来选呢?眼睛来看么?这么多超参数需要挑选,怎么可能选好。我们来选择一个使得 Ein 最小的参数集合?
这里写图片描述
这样的话,我就不多说了,那采用高维度映射已经比低维度映射好,不加正则化一定不正则化好。那就容易发生过拟合啦。
所以直接采用 Ein 来选择容易gg的。
所以呢,能不能用什么代替 Eout 呢,可以留一部分资料来进行测试,这些资料不参与模型的选择,得到 Etest 。使用测试的误差来替换 Eout ,这样的理论保证是什么呢?根据霍夫丁不等式:
这里写图片描述
这就是交叉验证啦。

交叉验证

这里详细的来看看交叉验证是如何做的.
这里写图片描述
从训练资料中,挑选部分资料来进行训练,剩下的做验证。再确定了超参数之后,再将所有的训练资料拿去训练得到最后模型。
整个流程图如下:
这里写图片描述

这里需要提一下,关于如何挑选验证集合,并不是随机挑选的啦,必须要保证验证集合和训练集合的分布一致,不然会出问题啦
详细的可以参考:
http://blog.csdn.net/cqy_chen/article/details/78690975

还有一个问题没有解决,验证集合的大小,到底该选多大呢?首先我们看看验证集合的大小变化带来的损失函数的变化:
这里写图片描述
黑色的线表示不采用验证集,直接选取参数。下面的虚线采用了作弊的方式,使用 Etest 验证。
红色的线表示在验证集合上的误差,蓝色的线表示经后面再传回了 g 拿去做一次的训练。
可以看到,通过交叉验证可以得到比较好的结果。

发现红色穿过了黑色的线,因为k越大,训练集合的资料就少了。
这里写图片描述

所以在这个k要达到一个平衡,一般来说 K=N5

留一法交叉验证

上面讨论到了交叉验证中k的大小。那么如果只留下一条记录用于验证会如何呢?
如果只用一次的验证肯定不行啦,比如在二分类中,验证资料只给出0或者1,这个肯定无法知道到底 Eout 如何了,
这里写图片描述
所以我们可以将每个点都用作验证,其他点用作训练,然后求其均值,这样就大约是 Eout 了 .
比如下面的例子,有三个点,采用线性回归。
这里写图片描述
比如两个模型,一个是线性回归,一个是常数项,那么我们可以根据 Eloocv 来选择模型,三个点只要用常数模型就好了。
那么我们再看看看留一法的理论保证:
这里写图片描述

所以留一法被称为 Eout(g)
实际的应用中,看看在手写数字识别中的案例如下:
这里写图片描述
可以看到 Ecv Eout 如影随形。

K折交叉验证

上面我们讲到留一法交叉验证,效果上不错,但是有另外的问题,就是训练次数太多了,假如样本量过大,基本不可行了。
同时呢,比如在二分类中,资料一次次的计算会导致 Ecv 会有跳动的现象,不平稳。
如何解决这些问题,计算量问题,我们可以只不将数据一笔一笔的分开,而是按比例的分开。比如拆分成k笔,就成了k折交叉验证。

这里写图片描述

通常呢,可以选择k=10就ok了。
这里有几点需要注意:
1)最后验证模型好坏的一定是未知的资料而不是验证集合。
2)验证集合由于参与了模型的选择,可能还是会导致过于乐观。

模型的最终结果是由测试集合来决定而不是验证集合

欢迎转载,可以关注博客:http://blog.csdn.net/cqy_chen

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值