林轩田之机器学习课程笔记( how can machines learn better之three learning principles)(32之16)

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

概要

上节讲到了交叉验证,采用这种方法模拟做测试的过程,从而调整超参数。本节要讲到做机器学习的三个锦郎妙计。

奥卡姆剃刀

An explanation of the data should be made as simple as
possible, but no simpler.—Albert Einstein
对数据的解释应该尽可能的简单,但不要太简单。这对应着奥卡姆剃刀。要剔除掉不必要的数据解释。
在机器学习中,表示的是:The simplest model that fits the data is also the most plausible.

对数据拟合的最简单的解释也是最合理的解释

如下图所示:
林轩田之机器学习课程笔记( how can machines learn better之three learning principles)(32之16)
在做模型选择的时候,肯定是选择左边的模型,而不是右边的。
简单的模型对应着什么呢?对应着简单的参数,而不是复杂的参数。假设空间相对更小。

为什么简单说好的呢?如果使用简单的模型;
1)假设空间更小
2)如果资料是没用规律的,那么简单的模型无法进行拟合
3)如果简单的模型能够拟合资料,那么说明资料是有显著差异的。

所以在做机器学习的时候一般从简单模型入手,比如线性的分类器等。

抽样偏差

在1948年美国总统大选,报社抽样进行了民调,通过电话。
得到的结果是:Dewey Defeats Truman
杜威击败了杜鲁门
最后的结果却是是杜鲁门胜出,就是杜鲁门总统。

为什么呢?因为报社是通过电话进行民调,那个时候都是上层的人,但是这个样本和整个人民的样本分布式不一样的。

训练集和测试集要来自同样的数据分布

If the data is sampled in a biased way, learning will produce a similarly biased outcome.

举一个例子:https://www.netflixprize.com/
这是Netflix在2009年举办的一个推荐系统的比赛,如果能够比它自己的系统提升10%,就能得到100W美金。
这个系统是采用前面一段时间的数据进行训练,后面一段时间的数据进行测试。如果在整个模型训练过程中,进行随机抽样,那这样抽样数据和测试数据就不是同一个分布啦。模型就会偏差的比较厉害。

所以我们要保证我们的验证环境和测试环境尽可能的接近

数据偷看

不要偷看资料
If a data set has affected any step in the learning process, its ability to assess the outcome has been compromised.
你在使用数据任何过程都是间接的窥探了数据,所以你在下决策的时候,你要知道,这些数据可能已经被你头脑中的模型复杂度所污染。

举一个例子:有八年的股市数据,6年作为训练,2年作为测试。在实际数据中,比如股价波动范围大,需要做一个归一化操作。有两种方法:
1)将这八年的数据全部拿来做归一化,然后分开测试集和训练集
2)将6年的训练集合做归一化,保存归一化的参数,然后做测试的时候,将6年的归一化参数运用到后面测试的两年。
这两种操作带来的结果是不尽相同的,如下图:
林轩田之机器学习课程笔记( how can machines learn better之three learning principles)(32之16)

if you torture the data long enough, it will confess
这里再插播两句:在做kaggle竞赛或者其他的比赛的时候,通常我们会将训练集和测试集一起来进行特征工程,然后进行分开。因为我们只是要去预测测试集合的数据,这样模型会表现更好。但是实际工作中是不应该这样的,应该是一拿到数据就应该将测试集和训练集分开。

一般来说完全不偷看资料,很难,可能算法表现也不会太好。要避免数据偷看带来的代价,通常有两种做法:
1)非常诚实,数据拿到就将测试资料放在一边,直到需要进行测试的时候。
2)折中方法,做交叉验证,但是资料要小心翼翼的做模型选择。
3)尽量避免使用资料来决定模型,比如做语音模型,一开始就应该将专业知识加入到模型中,而不是看了这些语音数据之后再加入专业知识。这样可能带来在未来的语音数据中,这些专业知识表现不好。
4)保持怀疑,无论是看论文还是自己做实验。

三的力量

机器学习上部分总结,首先是三个领域:
林轩田之机器学习课程笔记( how can machines learn better之three learning principles)(32之16)
然后是三个理论保证:
林轩田之机器学习课程笔记( how can machines learn better之three learning principles)(32之16)
然后是三个模型:
林轩田之机器学习课程笔记( how can machines learn better之three learning principles)(32之16)
然后是模型优化的三个有用的工具:
林轩田之机器学习课程笔记( how can machines learn better之three learning principles)(32之16)

最后是机器学习的三个原则:
1)奥卡姆的剃刀,越简单的模型越好,但是不要太简单。
2)抽样偏差,保证测试环境和验证环境一致
3)不要数据偷看

后面的课程将会介绍更多的模型:
林轩田之机器学习课程笔记( how can machines learn better之three learning principles)(32之16)

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