1 / 6
文档名称:

理解机器学习算法的一点心得.doc

格式:doc   大小:181KB   页数:6页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

理解机器学习算法的一点心得.doc

上传人:beny00011 2016/11/24 文件大小:181 KB

下载得到文件列表

理解机器学习算法的一点心得.doc

文档介绍

文档介绍:理解机器学****算法的一点心得从Andrewng的公开课开始,机器学****的算法我接触到的也越来越多,我觉得机器学****算法和传统算法的最大不同就是:不会要求一个问题被100%求解,也就意味着不会有完美的解法,这也是著名的“Essentially,allmodelsarewrong,butsomeareuseful.”所表达的意思。正因为如此,机器学****算法往往不会有一个固定的算法流程,取而代之的把问题转化为最优化的问题,无论是ML(maximumlikelihood),MAP(MaximumaPosterior)和EM(ExpectationMaximization),都是这样的。然后用不同的方法来优化这个问题,得到尽量好的结果,给人的感觉就像是一个黑盒,实际使用中需要不断地调参实验,但倘若你能理解好算法,至少能让这个盒子透明一点,这也是机器学****算法确实需要使用者去理解算法的原因,举个例子:传统算法比如一些高效的数据结构,我只需要知道一些接口就可以使用,不需要进行太多的理解,了解传统算法更多的是理解算法的思想,开阔思路,增强能力;而机器学****算法,你即使知道接口,也至少要调一些参数来达到实际使用的目的。这样一来,阅读各类书籍和paper也就在所难免了,甚至去阅读代码以至于实现加深理解,对于实际使用还是有很大的好处的,因为不是100%求解问题,所以面对不同的应用场景,想要达到最好的效果都需要加以变化。本文记录了一点自己学****的心得,私以为只要你能对算法有一种说得通的解释,就是OK的,不一定要去深挖其数学上的证明(表示完全挖不动啊…………>_<)=====================================================================,理解这个最优化问题的目的能很好地帮助我们理解算法,比如最简单的最小二乘法(Least-squares):(这里的x是参数,和一些机器学****的常用表示里面有出入)好多机器学****入门书都是从最小二乘开始引入的,其实这是线性代数(还是概率统计?囧rz)的课本内容嘛。理解上式应该非常简单呐,括号内的就是目标值和与测试的差,取平方之后抹掉正负,而该式是要最小化这个东西,那么这个优化问题的“目的”就是最小化预测函数在训练集上的误差。当然这是最简单的一个例子了,我们接着看朴素贝叶斯分类器的优化目标:(这里xi,yi是训练集,π和θ是参数)无论他后面怎么变化,用了什么优化方式,该算法的目的就是在训练集上最大化这个东西,只不过对于朴素贝叶斯来说,它加入了非常强的假设来简化问题而已。然后朴素贝叶斯用了一系列的参数来描述这个需要优化的概率值,为了达到目的还是用了log来变换一下,但对于你来说,只需要记住他的“目的”,就可以很容易地理解算法了。"趋势",广义上来说和目的是一回事,但算法的优化目标的一些部分是与算法总体目的相对分割的,比如一些正则化(regularization)的项,这些项对于算法实际使用效果往往有着重大影响,但并不绝对大的方向(目的),所以“趋势”我们单独开一章来讲。我们还是从最简单的L2-normregularization来开启这个话题吧,把这个项加到最小二乘后面:虽然也能把该式表示为标准的最小二乘结构,但对理解算法并