斯坦福大学公开课 :机器学习课程(Andrew Ng)——8、监督学习:Learning Theory

1)交叉验证(Cross validation)

    1.1)hold-out cross validation或者称为简单交叉验证

    1.2)k-fold cross validation(k-折叠交叉验证)

    1.3)leave-one-out cross validation

2)特征选择(Feature selection)

    2.1)封装特征选择(wrapper feature selection)

    2.2)过滤特征选择(Filter feature selection)

3)贝叶斯统计和规范化(Bayesian Statistics and Regularization)

    3.1)频率学派(frequentist statistics)

    3.2)贝叶斯学派(Bayesian)

4)在线学习(Online Learning)




由于学习理论部分大多数是数学推导,这些推导其实是非常容易理解的,这里就直接省去一些,另外一些则简单一笔带过。

Bias/variance Tradeoff

Empirical Risk Minimization (ERM)

The Case of Finite H: Sample Complexity Bound, Error Bound, PAC(probably approximately correct

The Case of Infinite H: The Concept of 'Shatter' and VC Dimension



1)交叉验证(Cross validation)

1.1)hold-out cross validation或者称为简单交叉验证

1、 从全部的训练数据S中随机选择70%的样例作为训练集clip_image018,剩余的30%作为测试集clip_image020

2、 在clip_image018[1]上训练每一个预测模型clip_image010[1],得到假设函数clip_image012[1]

3、 在clip_image020[1]上测试每一个clip_image012[2],得到相应的经验错误clip_image022

4、 选择具有最小经验错误clip_image022[1]clip_image012[3]作为最佳模型。

1.2)k-fold cross validation(k-折叠交叉验证)

1、 将全部训练集S分成k个不相交的子集,假设S中的训练样例个数为m,那么每一个子集有m/k个训练样例,相应的子集称作{clip_image024}。

2、 每次从模型集合M中拿出来一个预测模型clip_image010[3],然后在训练子集中选择出k-1个{clip_image026}(也就是每次只留下一个clip_image028),使用这k-1个子集训练clip_image010[4]后,得到假设函数clip_image030。最后使用剩下的一份clip_image028[1]作测试,得到经验错误clip_image032

3、 由于我们每次留下一个clip_image028[2](j从1到k),因此会得到k个经验错误,那么对于一个clip_image010[5],它的经验错误是这k个经验错误的平均。

4、 选出平均经验错误率最小的clip_image010[6],然后使用全部的S再做一次训练,得到最后的clip_image012[4]

1.3)leave-one-out cross validation


2)特征选择(Feature selection)

2.1)封装特征选择(wrapper feature selection)

1、 初始化特征集F为空。

2、 扫描i从1到n,如果第i个特征不在F中,那么将特征i和F放在一起作为clip_image036(即clip_image038),在只使用clip_image036[1]中特征的情况下,利用交叉验证来得到clip_image036[2]的错误率。

3、 从上步中得到的n个clip_image036[3]中选出错误率最小的clip_image036[4],更新F为clip_image036[5]

4、如果F中的特征数达到了n(即全部特征都包含进去了)或者预设定的阈值(如果有的话),那么输出整个搜索过程中最好的F,没达到转到2

上面的方法叫前向搜索,说白了就是每次增量地从剩余未选中的特征选出一个加入特征集中,待达到阈值或者n时,从所有的F中选出错误率最小的。

既然有前向搜索,那也就有后向搜索。先将F设置为{1,2,..,n},然后每次删除一个特征,并评价,直到达到阈值或者为空,然后选择最佳的F。

这两种算法都可以工作,但是计算复杂度比较大。时间复杂度为clip_image040

2.2)过滤特征选择(Filter feature selection)

过滤特征选择方法的想法是针对每一个特征clip_image042,i从1到n,计算clip_image042[1]相对于类别标签clip_image044的信息量clip_image046,得到n个结果,然后将n个clip_image046[1]按照从大到小排名,输出前k个特征。显然,这样复杂度大大降低,为O(n)。

一般情况下,我们使用互信息(Mutual information)度量clip_image046[2]。当clip_image042[5]是0/1离散值的时候(很容易推广到clip_image042[6]是多个离散值的情况),互信息(Mutual information)公式如下:

clip_image047 ,这里的clip_image049clip_image051clip_image053都是从训练集上得到的。

在对MI进行排名后,最后剩余的问题就是如何选择k值(前k个clip_image042[10])。我们继续使用交叉验证的方法,将k从1扫描到n,取最大的F。不过这次复杂度是线性的了。比如,在使用朴素贝叶斯分类文本的时候,词表长度n很大。使用filter特征选择方法,能够增加分类器的精度。

3)贝叶斯统计和规范化(Bayesian Statistics and Regularization)

题目有点绕,说白了就是要找更好的估计方法来减少过度拟合情况的发生。回顾一下:

线性回归中使用的估计方法是最小二乘法;

logistic回归使用条件概率的最大似然估计;

SVM使用二次规划;

朴素贝叶斯使用联合概率的最大似然估计!

3.1)频率学派(frequentist statistics)

以前我们使用的估计方法是最大似然估计(比如在logistic回归中使用的):     clip_image057

在该上式中,我们视参数clip_image059[2]为未知的常数向量。我们的任务就是估计出未知的clip_image059[3]。这种把clip_image059[4]看做参数(而不是随机变量)的视角称为频率学派(frequentist statistics),他们认为clip_image059[5]不是随机变量,而只是一个未知的常量,因此我们没有把clip_image063写成clip_image065。 

3.2)贝叶斯学派(Bayesian)

他们把clip_image059[4]看做值未知的随机变量。既然clip_image059[7]为随机变量,那么clip_image059[8]就应该满足一定的分布,这样clip_image059[19]的不同取值就有了不同的概率clip_image067(称为先验概率),代表我们对特定的clip_image059[9]的相信度。我们将训练集表示成clip_image069,i从1到m。我们首先需要求出clip_image059[10]的后验概率:

clip_image070

然后根据随机变量clip_image059[10]的分布以一定概率clip_image067[1]选定clip_image059[27],再在给定样本特征clip_image082[1]上计算clip_image084[1]出现的概率积:

     clip_image103

这种方法称为最大后验概率估计(Maximum a posteriori)方法。


与最大似然估计对比发现,MAP只是将clip_image059[32]移进了条件概率中,并且多了一项clip_image067[2]。一般情况下我们认为clip_image111,实际上,贝叶斯最大后验概率估计相对于最大似然估计来说更容易克服过度拟合问题。我想原因是这样的,过度拟合一般是极大化clip_image063[2]造成的。而在此公式中多了一个参数clip_image059[33],整个公式由两项组成,极大化clip_image065[2]时,不代表此时clip_image067[3]也能最大化。相反,clip_image059[34]是多值高斯分布,极大化clip_image065[3]时,clip_image067[4]概率反而可能比较小。因此,要达到最大化clip_image105[2]需要在两者之间达到平衡,也就靠近了偏差和方差线的交叉点。


4)在线学习(Online Learning)

    以前讨论的都是批量学习(batch learning),就是给了一堆样例后,在样例上学习出假设函数h。而在线学习就是要根据新来的样例,边学习,边给出结果。

   假设样例按照到来的先后顺序依次定义为clip_image002。X为样本特征,y为类别标签。我们的任务是到来一个样例x,给出其类别结果y的预测值,之后我们会看到y的真实值,然后根据真实值来重新调整模型参数,整个过程是重复迭代的过程,直到所有的样例完成。这么看来,我们也可以将原来用于批量学习的样例拿来作为在线学习的样例。在在线学习中我们主要关注在整个预测过程中预测错误的样例数

   下面定理阐述了错误率上界:

      定理(Block and Novikoff)

      给定按照顺序到来的clip_image002[1]样例。假设对于所有的样例clip_image020,也就是说特征向量长度有界为D。更进一步,假设存在一个单位长度向量clip_image022clip_image024。也就是说对于y=1的正例,clip_image026,反例clip_image028,u能够有clip_image030的间隔将正例和反例分开。那么感知算法的预测的错误样例数不超过clip_image032

     根据前面对SVM的理解,这个定理就可以阐述为:如果训练样本线性可分,并且几何间距至少是clip_image030[1],样例样本特征向量最长为D,那么感知算法错误数不会超过clip_image032[1]。这个定理是62年提出的,63年Vapnik提出SVM,可见提出也不是偶然的,感知算法也许是当时的热门。

    下面主要讨论这个定理的证明:参见:http://www.cnblogs.com/jerrylead/archive/2011/04/18/2020173.html



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值