前段时间在网上看到了coursera公开课台大机器学习基石课程,比较全面而且清晰地将机器学习所需的基本知识、理论基础给与了讲解。foundation中有几个比较重要的概念和思想,先进行一下回顾,然后开启对后续技法课程的学习和总结。
1. VC dimension(VC维,非常重要的概念)
能够shutter 二分类问题的上限。也是衡量模型复杂度的工具(类似自由度的概念)。之所以这个概念比较重要是它能够解释为什么机器能够学习。
1),以概率统计中常用的手段:用sample来估计整体,机器学习也是如此,就是说,通过对采样得到的sample进行学习,能够用来对out of sample进行估计、处理、预测、分类等等。所谓的学习就是从一堆Hypothesis(set)中,利用sample,通过learning algorithm赛选出合适的hypothesis - g的过程。
2)塞选的标准通常是各种类型的error(0/1error,square error...),这些误差是用来调节W权重,最后得到比较小Error (in sample)的hypothesis(g)。
3)这个g只是在in sample上表现比较好,其实在in sample上表现好并没什么卵用,因为如果你只是处理in sample数据的话就没有必要进行机器学习,之所以使用机器学习,就是因为不可能得到所有的data,你只能sample一部分的sample。所以最好的g应当是在out of sample上表现好的。因为,我们并不能测得error in sample,所以最好的办法就是建立error in sample 与error out of sample的联系,能不能有一个upper bound来衡量两者之间的关系呢?答案是肯定,那就是Hoeffding's 不等式。
4)hoeffding不等式说明了一个问题,如果Hypothesis set中hypothesis能shutter很多种类(就是VC dimension很大),就会导致这个Error in sample与Error out of sample相差很大,也就是指模型复杂度很大。这样error in sample 你能做的很小,但是error out of sample会很大。
5)VC维大=>模型复杂度高=>error in sample 小=>模型不够平滑=>generalization能力弱=>error out of sample大=>overfitting=>模型并没有卵用。
2. Generalization(泛化能力)
1)衡量模型在out of sample上的表现;
2)通常曲线越平滑,泛化能力越强,但error in sample就可能越大,underfitting;曲线也复杂,error in sample就可能做的越小,但泛化能力越弱,overfitting;
3. Regularization(正则化)
1)用来控制模型复杂度,从而实现Error in sample与Error out of sample的逼近,也就是使得既具有较好的精度,又有较好的泛化能力;
2)不同的regularizer对应不同的回归方法:L1,L2,...实际上就是一种惩罚措施。用来权衡是要好的error和好的generalization能力;
除了以上三个我觉得极为重要的概念和思想,还有一些主要内容比如:导致overfitting的几种原因:过度使用vc dimension,noise和limited data size N,解决overfitting的几种方法、技巧:validation(cross validation,leave one out validation, N-folder valiation...),data hinting, data cleaning/pruning, regularization, start from simple model等等。这里都不再进行总结。
待续
2015-7-8 18:12