我打算边看书边复习讲义,而后用本身的话把每章能看懂的点总结下,欢迎你们指正。因为用语会尽可能口语保证易懂,因此会有失严谨性,具体的细节能够看本书。《Learning from data》
第一章主要解决两个问题:
- 经过一个例子介绍机器学习算法;
- 粗略的证实为何机器学习是可行的?
关于第一点
虽然举得例子PLA比较简单,也基本没啥可用性,可是确实比较适合作为第一个机器学习算法给初学者基本的印象。这个算法的理解在于迭代不等式,为何这个等式能够不断纠错直到最终的收敛?
Cousera课程的ppt上有个很直观的解释:
当y=+1时,表示x与w(也就是直线的法向量,假设w朝向正的这边)的夹角小于90℃,若是有一个点它与w的夹角大于90℃说明是分错的点,作一个向量的加法便可让朝着与x夹角减少的方向前进(问题1,不必定一次就搞定吧?)。
迭代的方向没问题以后,剩下的就是为何会收敛?证实思路是构造一个最终的完美的wf(便可以彻底平分数据集的直线),而后证实w最终在有限轮以后能够和wf的夹角为0,具体证实能够看这里。
2 前一个PLA的例子是给初学者直观的映像,什么是机器学习算法,我的以为第一章最精华的地方是第二点,即粗略证实机器学习是可能的。
首先,什么是机器学习?从这本书的书名咱们能够获得简单的解释,是指机器从数据中学习,这个很是关键,有些时候不是学习而是记忆,例如人们学习数学公式,因为公式已是肯定的理论成果,已经通过实践检验的,那个不是学习而是记忆,而后理解,而学习是它的反向过程,即要求人或机器去推导出这样一个公式,因此机器学习的先觉条件是数据。以后才是算法之类的。
有了数据之后,咱们就要开始学习了。假设所有的数据用D表示,咱们拿到的用于训练的数据用d表示,所谓学习,本质上是获得一个假设函数g,这个g在抽样数据集d上错误率很小,更重要的是,它在全集D的错误率也很低,这样咱们就能够用g去预测将来各类状况了,也就是说咱们学到了g。严格来讲,机器学习伴随着两个过程,一个是学习即求解g,第二个就是验证了。
换句话说。这里有两个问题咱们须要解决:
- 这个假设g怎么获得?-- 学习
- 怎么保证咱们的g在全集D的错误率很低?全集D是无限大的,咱们怎么知道?-- 验证
第一个问题,就是机器学习算法要知道的,就是从一堆假设里面选。怎么选?固然选可以在咱们的d上表现最好的,这样咱们就获得了那个g。其实这个问题没那么简单,由于有第二个问题。怎么验证获得的g在全集的错误率低?d上的错误率和D上的错误率有没有关系呢?这个叫作g的泛化能力。咱们只能求助于几率统计了,那个神奇的公式就是hoffeding inequality。以下所示:
从公式的形式不能看出,它能表示假设h在d和D上的错误率之差在必定的范围内的几率,咱们只须要让这个几率越大越好。从公式,咱们就能够发现,只要N越大,这个就能获得保证,看看,数据的多少也很重要。这里有两个隐形的条件:
- h是固定的,也就是说,这个公式只预先获得的h有做用;
- d的抽取,必须可以反映D的几率分布,这个很天然,若是d只能表示一部分,那咱们学不全嘛,会有不少没见过的样子,怎么学。。。,因此通常都是随机抽取,而不是人工看到哪一个数据顺眼选哪一个,这个和直觉是相符的,咱们作抽样检查就是基于这个原理;
问题又来了,机器学习的训练过程就是先肯定数据,再从茫茫多(暂且理解为M个)的假设里面选取最佳的假设,这样的话hoffeding inequality就不能直接用了?固然不会,花了这么大力气隆重介绍的神奇公式最后不能用岂不很惨。首先明确,问题是什么?咱们要证实:
这个东西是有上限的,这样g才可以在全集D上错误率有所保障。条件呢? 咱们有M个假设,这个是预先肯定的,由于机器学习算法已经定好了才能学,而咱们选的g是从M中来的,因此能够获得:
在几率里面一个事件A能够推导出另外一个事件B则其发生的几率是小于等于B的,因此获得了最终M个几率的和:
这个上限是很松的,并且不少机器学习算法的假设貌似是无限啊,像PLA,那但是全体直线。。。这个问题是第二章要证实的,结论确定是,还有个更紧的上线可以保证g的错误率在d和D上接近。有了这个,咱们就可以放心的选取错误率最小的假设做为g了,由于这个错误率能够泛化到全集。这里再次说明下,那咱们去找错误率为0的就好了啊,但是要找到那个假设得要多少备胎啊,备胎越多M越大,泛化能力就下来了,那就有可能选到的最小的不必定在全集D表现好(例子可参见这里提到的硬币翻转实验),可见万事万物都是要平衡的。