《机器学习基石》第15节课学习笔记
第15节课 Validation
- 本节课主要学习了Validation验证。介绍了要选择好的机器学习的模型的一些概念,然后详细介绍了Validation的过程。最后,介绍了两种验证方法,比较它们各自的优点和缺点。两者验证方法的推导过程没怎么听懂,需要进一步消化吸收。另外涉及到以前学过的知识:pocket,忘记了这个知识点,需要复习!
(一)机器学习模型的选择
1.关于二元分类
二元分类可以选择多种演算法,例如:PLA算法、pocket、线性回归、逻辑回归等;这些方法大多需要一步一步去完成,所以要决定需要走100步,还是走1000步,还是走10000步;还可以决定每步要走多大,例如一步是要走1,还是0.1,还是0.01;还有许多的转换可以选择,例如是用原来的转换,还是二次的转换,还是十次的转换等等。需要考虑很多的因素,所以今天主要学习的是怎么样做出合适的选择。
2.引出模型的选择:
①例子:下面有两个模型。H1是一条直线划分的,不过有一点错误;H2是二次曲线划分的,不过没有出现错误,实际情况下我们应该选择哪种模型?
②探讨:N个模型的选择和选择的目的(见下图)
希望通过这些模型选择出一个模型使得到的矩中Eout是最小的,说明这个模型选择的合适。
但问题是Eout没法提前确定。
用手上的资料进行模型选择时,要避免用视觉(即单凭看到的)的去做选择。
3.如何进行选择:
(1)方法:
①选择Ein最小的模型。
②但是这个方法的设定有以下方面需要思考:
- 在这个方法中,转换次数多比转换次数少好,但问题会很难去下手;
- 在这个方法中,加入λ值会使问题变复杂,不加比较好,但是会导致过拟合;
- 在这个方法中,方法的实行是在A1中选择Ein最小的模型H1,在A2中选择Ein最小的模型H2,然后H1和H2再进行pk选择。这种做法会导致modle复杂度的低价变高,可能会导致坏的generalization发生。
③结论:
(2)方法的改变:
①用一堆测试的资料看哪一个模型的表现最好,然后选择那个表现最好的模型。即选择最好的Etest的模型。
②这种方法的理论保证:
但问题是能否找到测试资料?测试资料好比考试以前的卷子,我们考试以前是看不到的,否则就是作弊的行为。
③故该方法的结论是:
(3)比较Ein和Etest这两种选择方法:
(4)因此选择一种折中的方式:Eval选择方法。
(二)引入Validation
1.过程:从自己手上的资料中划出一小块大小为K的资料作为验证资料,用它来模拟测试资料。在这部分测试资料中出现的错误叫做Eval。
剩下的N-K块的资料称为训练资料。
示意图如下:
每个符号表示的含义如下:
理论保证是:
这一做法的好处是:可以防止资料被污染,同时将手上的资料分成两部分,每一部分都完成自己相应的工作。
2.假如D共有1000个样本,那么可以选择其中900个Dtrain,剩下的100个作为Dval。
再假设有M种模型hypothesis set,从M个矩中选择一个最好的m∗作为我们最终得到的模型。
根据之前的leraning curve很容易知道,训练样本越多,得到的模型越准确,即D的Eout比Dtrain的Eout要小:
所以我们通常是用Dval选择出好的模型,再将整体D用该模型进行训练,得到其对应的矩。
3.结论如下:(下面这个总结文字参考的网上资料)
不等式关系是:
4.引例:将validation验证用在选择5次多项式和10次多项式上。下面是四条线的含义及图示:
关于K的大小的推论:
因此实际上K的大小选择应该如下:(K用原来资料的五分之一)
(三)Leave-One-Out Cross 验证方法
1.引例:假设K=1,此时验证资料造成的错误是en。
若有多个en,求其平均值,观察它的大小:
该验证方法的目的:
2.该验证法的推导过程,如下图:
如上图所示,要对二维平面上的三个点做拟合,上面三个图表示的是线性模型,下面三个图表示的是常数模型。
对于两种模型,分别使用留一交叉验证法来计算Eloocv,计算过程都是每次将一个点作为验证集,其他两个点作为训练集,最终将得到的验证误差求平均值,就得到了Eloocv(linear)和Eloocv(constant),比较两个值的大小,取值小对应的模型即为最佳模型。
3.接下来,我们从理论上分析Leave-One-Out方法的可行性,即Eloocv(H,A)是否能保证Eout的矩足够好?
结论:Eloocv(H,A)的期望值和Eout(g−)的期望值是相近的,这代表得到了比较理想的Eout(g),Leave-One-Out方法是可行的。
4.引例:进行手写数字识别
①平面特征分布如下图所示:
②Error与特征数量的关系如下图所示:
③下图是分别使用Ein和Eout进行训练得到的分类曲线:
④结论:使用Ein发生了过拟合,而Eloocv分类效果更好,泛化能力强。
(四)V-Fold Cross 验证方法
1.Leave-One-Out可能的问题:
(1)第一个问题是计算量,假设N=1000,那么就需要计算1000次的Eloocv,再计算其平均值。当N很大的时候,计算量是巨大的,很耗费时间。
(2)第二个问题是稳定性,例如对于二分类问题,取值只有0和1两种,预测本身存在不稳定的因素,那么对所有的Eloocv计算平均值可能会带来很大的数值跳动,稳定性不好。
所以,这两个因素决定了Leave-One-Out方法在实际中并不常用。
2.针对Leave-One-Out的缺点对其作出了改进。
Leave-One-Out是将N个数据分成N分,那么改进措施是将N个数据分成V份(例如V=10),计算过程与Leave-One-Out相似。这样可以减少总的计算量,又能进行交叉验证,得到最好的矩,这种方法称为V-折交叉验证。其实Leave-One-Out就是V-折交叉验证的一个极端例子。如下图:
所以一般的Validation使用V-折交叉验证来选择最佳的模型。
转载于:https://www.cnblogs.com/lxx0/p/lxx_learning-notes-15.html