龙星计划机器学习笔记

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

龙星计划机器学习笔记前言最近几周花了点时间学习了下今年暑假龙星计划的机器学习课程,具体的课程资料参考见附录。本课程选讲了写ML中的基本模型,同时还介绍了最近几年比较热门,比较新的算法,另外也将ML理论和实际问题结合了起来,比如将其应用在视觉上,web上的等。总之,虽然课程内容讲得不是特别细(毕竟只有那么几节课),但是内容还算比较新和比较全的。学完这些课后,收获还算不少的,至少了解到了自己哪方面的知识比较弱,下面是课程中做的一些简单笔记。第1课绪论课机器学习中3个比不可少的元素,数据,模型和算法。现在数据来源比较广泛,每天都可以产生T级以上的数据。模型的话就是机器学习课程中需要研究的各种模型,算法就是怎样通过数据和模型来学习出模型中的参数。但是余老师在课堂上提出一个观点就是这3个元素都不重要,最重要的是需求,一旦有了需求,就会采用各种方法取求解问题了。不愧是百度公司的技术副总监。另外机器学习的主要应用场合包括计算机视觉,语音识别,自然语音处理,搜索,推荐系统,无人驾驶,问答系统等。第2课线性模型线性回归模型需要解决下面3个问题:1.怎样从训练数据估计线性模型的参数?即截距和斜率。2.学习到的线性模型性能怎样?我们是否可以找到更好的模型?3.模型中2个参数的重要性怎么估计?解决第1个问题是一个优化问题,即求得使损失函数最小的参数。这里的损失函数是平方项的,也称为线性最小二乘思想。线性模型的表达式为:其中噪声参数为0均值的高斯噪声。如果后面求出的噪声不是一个均值为0,方差相同的类似高斯分布的随机变量,则说明这个模型还可以被改进。比如说将x首先映射到非线性函数中去,然后对非线性函数用最小二乘法做线性回归。至于怎样得到非线性映射函数f(x)则要么通过人为观察推测,要么通过机器学习中的特征学习来自动获得。更广义的线性模型并不一定是一个线性方程。只是其参数可能是线性的。线性模型能够模拟非线性函数。残差可以看做是噪声的近似。但是一般来说残差要比噪声小。所以在线性模型中,噪声项就可以用残差来估计,不过其分母不是1/n,而是1/(n-p),因为需要达一个无偏估计。特征向量元素属性的重要性评价常见的有以下2种方法:第一是抽掉一个特征想,然后计算其残差变化值与全部特征都用上的比值,所得到的分数为F-score,F-score越大,说明该属性越重要。第2种方法是采用t分布来假设检验得到Z-score,即假设对应特征属性不存在(即其值为0)时,出现样本数据的概率为Z-score,如果Z-score越大,说明该属性越不重要。第3课过拟合和规则项Regularization中文意思是规则,指的是在overfitting和underfitting之间做平衡,通过限制参数空间来控制模型的复杂度。测试误差和训练误差之间差一个规则项,其公式为:模型越复杂说明模型越不稳定,学习到的目标函数越不光滑,也就越容易over-fitting。所以需要控制模型的复杂度,一般来说有2种方法,即减少模型中参数的个数或者减小参数的空间大小,目前用得最多的就是减小参数的空间大小,是通过规则项达到的。规则项的引入同时也需要引入一个调节的参数,该参数的大小一般通过交叉验证获得。如果规则项是2次的,则也称为ridge回归,规则项是一次的则称为lasso回归。Ridge回归的优点是解比较稳定,且允许参数的个数大于样本的个数。Lasson回归的优点是有稀疏解,不过解不一定稳定。如果碰到参数个数大于样本个数,这时候就不能够用参数个数来做规则化了,而是采用缩小参数空间的方法,这样的话既在统计学上对特征数量集大时有鲁棒性,同时在数值计算上方程解也具备稳定性。第4课线性分类器很好的理解线性分类器,可以理解很多ml的概念,以及非线性问题。线性分类器是在实际应用过程中最有用的模型。据余老师讲,从06年开始,人工神经网络又开始热起来了,主要体现在deeplearning领域。svm理论很完美,应用场合也很广,同理,logistic回归应用场合也非常广,和svm差不多。当数据为大样本数据时,用线性SVM模型比较好。第5课非线性svmRKHS表示定理:即模型的参数是在训练样本的线性子空间中,是训练样本的线性组合。这不仅适用于svm,对其他的模型,比如感知机,RBF网络,LVQ,boosting,logistic回归等模型都成立。Kernel可以简单理解为表示2个值相似度的测量。通过核函数可以更好的了解regularization。所需优化的目标函数可以写成参数形式,参数形式的对偶形式和非参数形式这3种。如果在非参数形式中,其规则项是由所学习到的函数f(x)来控制的,它的模与对应核函数进行特征函数分解时的特征值系数成反比。即特征函数分解中非主成分的函数对应的特征系数小,得到的惩罚就大,就会更加被抑制。因此我们保留的主要是主成分的那些特征函数。从上面可以看出,核函数是有一定的结构的,该结构决定了最终的目标函数f(x)长得什么样。逻辑回归和svm的区别只是loss函数的不同,logstic回归的loss函数为logstic函数,核svm的loss函数为hingeloss。两者有着相同的性能,逻辑回归是带概率的输出,更容易用于多分类问题。不过目前,这2种方法都是旧方法了。LVQ中文名为学习矢量化,它是一个基于模型的有监督学习分类器。因此我们在设计一个模型时,需要考虑采用什么样的loss函数?采用什么样的基函数h(x)?h(x)是有限维的还是无限维的?是否需要学习h(x)?用什么样的方法来优化目标函数,QP,LBFGS,还是梯度下降等?理论上使用kernel理论可以实现用有限的计算完成无限空间的学习问题,但是在实际问题中,由于其复杂度是样本个数N的3次方,所以当样本数据很多时,基本上是无法实现的。参数模型和非参数模型的区别不是看模型中是否有参数,所有的模型都是有参数的,非参数模型是指随着样本数的增加,其模型中的参数的个数也跟着增加。反之就为参数模型了。常见的非参数模型有高斯过程,核svm,dirichlet过程等。第6课模型选择模型选择在实际应用过程中非常有用,一般把与模型有关的数据分为3部分,训练数据,验证数据和测试数据,如下图所示:其中训练数据和验证数据都是已有的样本数据,即已观察到了的数据。测试数据是未来实际应用中产生的数据,是事先不知道的。模型的参数分为2部分,第一部分是模型确定后通过训练样本学习得到的参数。另一部分是手动输入的参数,也叫做超参数,是用来控制模型的复杂度的,也就是来控制模型本身长什么样的,它是由验证数据来调节的。模型选择问题就是说怎样验证一个模型是否好。模型的好坏最终是要看它在测试数据集上的表现。因此在未观测到测试数据时,我们只能用验证数据集来代替它进行测试。一般采用的方法为交叉验证,比如说LOOCV,即留一法交叉验证,类似的还有k折交叉验证。交叉验证的主要目的是防止训练出来的模型过拟合。但是在当今由于数据都是海量的,交叉验证方法使用越来越少了,因为如果训练数据集非常大的话,一般不会产生过拟合现象。还有一些方法是不需要通过验证而直接来评价模型好坏的,比如是AIC,BIC,MDL,SRM等。第7课模型平均本文中讲的model是指的一个learningalgorithm,甚至比learningalgorithm所指的范围还要小,因为在一个learningalgorithm里,不同的参数调节和不同的输入特征都会导致不同的model。模型选择的目标是使模型有更好的可解释性和更好的性能,而模型平均的目标只需要使模型有更好的性能即可,因为模型平均过程中用到了很多模型,而模型个数越多则其可解释性就越低。模型平均的英文名称有modelensemble,modelblending,modelcombination,modelaveraging.Modelselection和modelcombination的不同使用体现在,如果某个模型以绝对的优势好于其他所有模型,那么这时候我们就采用modelselection,因为不仅有好的性能,还可以获得好的可解释性。如果所有的模型在性能表现上都差不多,没有所谓的好坏,且模型本身又有很大的不同,这时候就可以采用modelcombination来大大提高其性能了。通常来说,modelcombination比modelselection要稳定些。那么该怎样构造差异性大的模型呢?可以从下面四个方面入手:1.不同的学习算法。2.不同参数调整。3.有差异的输入特征。4.引入随机思想,比如bagging。关于指数权值的模型平均只是在均一模型平均(即采用投票的方式)的基础上将投票权值改为模型误差的指数形式,而不是相同的均值。如果所学习到的一个模型的误差越大,则其权值越低,理论上比较完美。不过在张老师讲他自己实验的时候发现并没有什么提高,有时候效果还不如voting。Stacking和指数权值的模型平均有点类似,也是先学习出各个模型,然后把学习出的模型作为第二层学习的输入,优化最小的第二层的误差来学习模型的权值。Bagging也是一种均一模型平均,它的所有模型的学习算法一样,只是输入样本采用bootstrip获得。因为是采用boostrip获得的,所以其训练样本有些不一定用到了,而有些则重复用到了。这样每个学习出来的model不是很稳定,因而这也扩大了model之间的差异性,提高了集群学习的性能。Bagging是减小学习的方差,而boosting是减小学习的偏差。最后模型平均的一个比较出名的应用场合就是把决策树改造成随机森林的例子。因为单颗决策树虽然有可解释性,能够很好的处理非均匀的特征以及是一种非线性的方法,但是它的最大缺点就是分类结果不准确,因此在样本选择和输入特征选择方面采用了随机的方法得到不同的模型后,再做平均就成了随机森林,理论和实验表明随机森林的效果要比决策树好很多。第8课BoostingBoosting既可以看做是signallearning也可以看做是ensemblelearning,本课中将其看做是ensemblelearning。它是由多个弱分类器组合成一个强分类器,但是这里所指的弱分类器满足的条件其实并不弱,因为它需要满足对样本的所以加权情况的分类效果都要大于0.5,因此现在有不少学者不称这些为弱分类器了,而称为基本分类器。Boosting中最常用的算法是AdaBoosting,AdaBoosting是对分类错误的样本加大其权重来达到resamble的效果。且采用贪婪算法进行loss的函数的优化。VC维的传统定义为:对一个指标函数集,如果存在H个样本能够被函数集中的函数按所有可能的2的K次方种形式分开,则称函数集能够把H个样本打散;函数集的VC维就是它能打散的最大样本数目H。AdaBoosting不是最大margin的,但为什么比最大marign的boosting效果要好呢?课程中从传统的boosting分析来做了一定的解释,但是仍不能够解释当训练误差为0时,其泛化误差还在减小这一问题,后面的学者又提出了从marginbound方面来解释这个问题。另外从另一个角度来更好的理解boosing的方法是greedyboosting,即寻找样本权重d和弱分类器权重w的过程是一个贪婪过程。最后老师讲了一个generalloss函数以及利用这个函数进行的generalboosting。第9课学习理论概论这节课的内容比较理论化,听不太懂。机器学习理论的主要目标是平均一个学习算法的好坏,即怎样通过训练误差来估计测试误差。可以通过一致性收敛来估计训练误差和测试误差之间的关系,即测试误差以大概率事件小于训练误差加上某个值,这个值的大小与训练样本数以及概率值有关。证明上面的一致性收敛需要用到切比雪夫不等式,VC维,coveringnumbers这几种技术。其中coveringnumbers定义为attain训练样本的预测函数的个数(具体是什么没有理解清楚)。我们可以用VC维来估计converingnumber。最后老师还讲了一个Rademacher复杂度并说了下它和VC维之间的

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功