台大林轩田《机器学习基石》学习笔记:重要工具三(Validation)

本文是作者学习台大林轩田教授《机器学习基石》课程后整理的简要笔记(未按课程回目分节),内容大部分来源于林轩田教授的课程资料,其余相关参考链接已标出。


重要工具 - Key tools


  • Validation验证

    有很多模型摆在面前,我们解决问题时又常常是把很多个模型组合起来使用,那么面临着“怎么选择和组合才能learn better”的模型选择问题,由此引出validation

 

    模型选择问题一般化定义:有M个模型,每个模型有其对应的hypothesis set以及学习算法A,希望选出某一个模型得到的g,它的Eout(g)是最小的。以下做法行不通:

    (1) 以Eout作为标准:Eout是未知的

    (2) 以Ein作为标准:造成overfitting,例如下图H2;造成badgeneralization(假设有两个模型PK,算法A1在H1上让Ein最小;算法A2在H2上让Ein最小,最后选出来的g的效果是在H1和H2的并集上让Ein最小,也就说H增大,额外增加了模型复杂度)

 

    (3) 用实际测试资料来选:自欺欺人...

基于以上,选择一个折中方式,把训练数据留一部分下来作为测试数据(validation set),用其他的训练数据来训练模型,然后用测试数据来测试模型的表现好坏;通常情况validation Set的大小K取N/5比较合适

    Leave-One-Out Cross Validation把每笔数据都作为一次validationdata然后平均起来,选择平均Error最小的作为最后的g

    缺点:大大增加了计算的复杂度,实际应用上上可能不太行;对于二元分类来说,分类结果在0与1之间跳动,Leave-One-Out求一个平均值。对这个平均值来说,这些0与1的跳动是很大的,希望用平均的方式把这些很大的跳动消掉,其实还是不太容易

     V-fold Cross Validation将训练资料分为V份,取其中V-1份做训练,1份做validation;V通常取10

 

    比喻:Traning就像初赛,各个模型都从HypothesisSet中选出最合适的h;Validation就像复赛,从多种模型的scheme中选出一个最优的。这两步都是在进行模型选择,之后的testing methods都只是在对模型进行estimate了。也因为Validation还是在做选择,只要做选择就会有数据的污染等等,所以Validation仍然比testing要乐观。对于模型来说,testing的表现才是真正要看重的,不是最好的validation的表现




你可能感兴趣的:(机器学习,学习笔记)