下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 理解机器学习算法一点心得应用

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

理解机器学习算法一点心得应用

那些年_yi个写全班抄
2019-05-26 0人阅读 举报 0 0 暂无简介

简介:本文档为《理解机器学习算法一点心得应用doc》,可适用于医药卫生领域

理解机器学习算法的一点心得从Andrewng的公开课开始机器学习的算法我接触到的也越来越多我觉得机器学习算法和传统算法的最大不同就是:不会要求一个问题被求解也就意味着不会有完美的解法这也是著名的“Essentially,allmodelsarewrong,butsomeareuseful”所表达的意思。正因为如此机器学习算法往往不会有一个固定的算法流程取而代之的把问题转化为最优化的问题无论是ML(maximumlikelihood),MAP(MaximumaPosterior)和EM(ExpectationMaximization)都是这样的。然后用不同的方法来优化这个问题得到尽量好的结果给人的感觉就像是一个黑盒实际使用中需要不断地调参实验但倘若你能理解好算法至少能让这个盒子透明一点这也是机器学习算法确实需要使用者去理解算法的原因举个例子:传统算法比如一些高效的数据结构我只需要知道一些接口就可以使用不需要进行太多的理解了解传统算法更多的是理解算法的思想开阔思路增强能力而机器学习算法你即使知道接口也至少要调一些参数来达到实际使用的目的。这样一来阅读各类书籍和paper也就在所难免了甚至去阅读代码以至于实现加深理解对于实际使用还是有很大的好处的因为不是求解问题所以面对不同的应用场景想要达到最好的效果都需要加以变化。本文记录了一点自己学习的心得私以为只要你能对算法有一种说得通的解释就是OK的不一定要去深挖其数学上的证明(表示完全挖不动啊…………><)=====================================================================O 目的之前说到机器学习算法常常把问题转化为一个最优化问题理解这个最优化问题的目的能很好地帮助我们理解算法比如最简单的最小二乘法(Leastsquares):(这里的x是参数和一些机器学习的常用表示里面有出入)好多机器学习入门书都是从最小二乘开始引入的其实这是线性代数(还是概率统计囧rz)的课本内容嘛。理解上式应该非常简单呐括号内的就是目标值和与测试的差取平方之后抹掉正负而该式是要最小化这个东西那么这个优化问题的“目的”就是最小化预测函数在训练集上的误差。当然这是最简单的一个例子了我们接着看朴素贝叶斯分类器的优化目标:(这里xi,yi是训练集π和θ是参数)无论他后面怎么变化用了什么优化方式该算法的目的就是在训练集上最大化这个东西只不过对于朴素贝叶斯来说它加入了非常强的假设来简化问题而已。然后朴素贝叶斯用了一系列的参数来描述这个需要优化的概率值为了达到目的还是用了log来变换一下但对于你来说只需要记住他的“目的”就可以很容易地理解算法了。一 趋势接下来要讲的是"趋势"广义上来说和目的是一回事但算法的优化目标的一些部分是与算法总体目的相对分割的比如一些正则化(regularization)的项这些项对于算法实际使用效果往往有着重大影响但并不绝对大的方向(目的)所以“趋势”我们单独开一章来讲。我们还是从最简单的 Lnormregularization来开启这个话题吧把这个项加到最小二乘后面:虽然也能把该式表示为标准的最小二乘结构但对理解算法并无帮助我们不这样做。可以看到该式的第二项是想要参数的平方和而整个是Minimize的所以直观来说就是想要学到的参数的绝对值越小越好这就是我理解的“趋势”可是为什么让参数平方和越小能防止overfitting呢?这里就有很多解释了比如加入该项是对数据的原始分布加了个高斯分布作为先验(有证明的貌似)但像我这种数学渣渣还是走intuition的方向吧这样理解:(这是ConvexOptimizition课上提到的我也不知道是否是对的但能够说通)我们得到的训练数据是有测量误差的记为delta,参数为x要优化的为:||Axy||其实是||(A'delta)xy||=||A'xydelta*x||:所以参数x的值越小误差delta对于模型的影响就越小所以能增加模型的泛化能力。二 还是趋势再写上面一章就略长了新开一段…………还是讲趋势对于最小二乘其实是Lossfunction一种也就是我们想要最小化的东西除此之外还有其它的一些Lossfunction其选择同样也会影响算法的效果。(这里的xi和yi又是训练集了不是参数略乱见谅)上面的Huber是在一个阀值内是二次的阀值外则是线性的这能体现什么趋势呢?可以明显看到对于偏差很大的case来说(|yf|>)平方项【】的要比绝对值【】的惩罚大不少这意味着【】对于极端outlier的容忍能力更差离太远了简直是没法承受的对算法带来的影响就是要去满足这个outlier从而带来一些问题。而在一定阀值以内的时候平方项【】的惩罚却比绝对值【】还要小。综合来看相对于绝对值平方项的趋势就是去满足outlier,把绝大多数训练数据的loss降低到够小的范围即可。(略绕但应该不难理解)Huber的优点就是既对outlier有容忍力(大于阀值其增长是线性的)又不至于全是线性增长对误差重要程度没有太大区分(小于阀值是二次的)所以Boyd在公开课上就说:对于绝大多数使用二次Lossfunction的地方来说换用Huber基本上都会有更好的效果三 一个复杂点的例子前段时间组内读书会有大大分享了一片论文开始读着无比顺畅但就是到了其中一步无法理解考虑了很久就用我的“趋势”分析法^^理解了下来这里就不给上下文了论文叫<LearningContinuousPhraseRepresentationsandSyntacticParsingwithRecursiveNeuralNetworks>有兴趣可以去看我现在单把那一个公式提出来分析其目的(趋势)其中的s()是表示传入参数的一个得分值A(xi)表示对于xi来说所有可能的y结构Δ(y,yi)是对结构y和yi 相异程度 的惩罚项目Δ(yi,yi)=这个式子很难理解就在于maximize里还减去一个max而且max里面还不是norm的结构乍一看是和以前见过的有巨大差异但仔细思考其实可以发现A(xi)之中是有yi的即训练数据。所以 max()那一项最小的取值就是s(xi,yi)不会比这个小那这个式子的目的是什么呢?作者坚定地认为训练数据就是最好最正确的其得分就该是最高的所以一旦max项里面选出来的是比s(xi,yi)大的就对其进行惩罚最后该式的目的就是在所有xi可能对应的结构y中训练数据yi应该是最好的。与此同时加入Δ项是为了使与yi结构更接近的y得分更高(这个这么理解:算法给所有结构加了一个上限在那超过了就砍头那么Δ(y,yi)值越小剩下的可喘息的部分就越大也就是得分就越高)这个式子和经验里看到的有很大差异但通过分析他的目的和趋势就可以较好地理解算法和里面一些参数的意义从而到达我们学习算法的目的四 尾巴这是我理解算法的一点小心得可能会有错的地方求指正啊~~~~~【ref】:【】《ConvexOptimization》(Byod)【】《MachineLearningAProbabilisticPerspective》【】《The Elements of Statistical Learning》【】:LearningContinuousPhraseRepresentationsandSyntacticParsingwithRecursiveNeuralNetworks

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/6

理解机器学习算法一点心得应用

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利