机器学习算法笔记

原创 2015年07月11日 09:46:55

算法总结
这个星期把机器学习相关算法的入门知识顺了一遍,机器学习算法需要较强的统计学、概率论、极值求解(凸优化等)知识,初学者很可能因为一大票的数学推导望而却步,实际上理解公式背后的实际意义,尤其结合特定的例子来理解公式中每个变量的含义,这样会有趣很多。Andrew Ng机器学习课程CS229很详细的介绍了整个过程,讲解的过程中也是按照实际例子的情况来说明的,整个推导过程在黑板上手写完成,大师就是大师。想要学习的同学们这里有网易公开课的视频含有讲义下载,下面是链接

http://v.163.com/special/opencourse/machinelearning.html

另外,建议大家去CS229官网看看,含有一些实际做的项目,提高一下实践能力,当然也可以自己做一些,想做什么就做什么,不知不觉你就知道该做什么了

http://cs229.stanford.edu/

稍后我还会写一篇关于李航那本《统计学习方法》的梳理,写好了把链接贴过来。

进入正题 机器学习入门首先是各种算法和模型的理解和建立、最后是结合工具和代码应用,最后发现数学的强大之处。也是刷新了我对数学的认识。机器学习理论可以在网络安全、计算机视觉、计算生物学、航空航天语言、自然语言处理、数据挖掘、推荐系统等等。由于是笔记,文中出现的具体参数含义参考上面给出的链接。

监督学习

一、判别模型-回归&拟合&分类

  1. LMS(least mean square)最小均方算法
    贴出两个公式这里写图片描述这里写图片描述
    利用最小均方算法可以获得更新规则这里写图片描述
    批梯度下降算法
    这里写图片描述
    这里写图片描述
    可以获得一种线性回归拟合结果
    这里写图片描述
    增量(随机)梯度下降算法
    这里写图片描述
    实际上就是让后面的样本借鉴前面样本的下降方法,这样下降的速度和效率也会更快!
    但是啊,上面两种回归的方式计算起来不是很方便,如果MATLAB,使用矩阵方式是很好的
    这里写图片描述
    具体推导过程是很繁琐的,并且用到矩阵变换的一些形式,对矩阵的秩的应用,感兴趣的可以自己试试。最起码,上式中各个变量的维度是多少?具体矩阵形式是什么?x0等于几?
    极大释然性
    这里顺带说一下释然性问题,使用这个方法可以很好的求解最优化问题。思考:如果考虑误差是服从高斯分布的(不要问我为什么不是其他分布,实际上用高斯分布不仅计算方便而且在实际应用中不会有任何问题,我只能这么说),也就是说
    这里写图片描述
    所以
    这里写图片描述
    让我写出极大释然性log likelihood公式
    这里写图片描述
    可以和前面的J(θ)公式对比一下,l(θ)的最大化问题就是J(θ)-误差的最小性问题,多以以后看到利用likelihood方式不要惊讶为什么。
    局部加权回归法
    这里写图片描述这里写图片描述
    这是基于梯度下降算法的加权方法,观察公式可以看出,当逐步毕竟逼近最优值的时候权值是下降的。

  2. logistic 回归适用于y只在{0,1}之间取值情况,可以想象一下,上面几种基于LMS的线性回归的效果是非常不理想的,比如下图)最终实现尽可能把两种数据分开的效果。
    这里写图片描述
    考虑这里写图片描述
    那么和线性回归对比一下,自然会想到它的更新规则是什么呢?
    step1:这里写图片描述
    这个公式很显然得到,注意上面提到的y取值。
    step2:这里写图片描述
    step3:这里写图片描述
    所以我们得到:这里写图片描述
    所以你可能会疑问:为什么选择的h(x)为logistic函数得到的更新规则和LMS更新规则完全一样,这是什么鬼。你可以根据上面推导过程思考一下,呵呵。其实它是梯度上升的方式,看step3。
    顺带提一下,这里根据logistic函数定义,变形一下有个感知器(机)算法函数形式,感兴趣可以用百度去Google一下。

  3. 牛顿方法
    受到之前运用到的参数θ更新规则和释然性求解工具的启发,牛顿方法的逼近方式为逐次斜率逼近法(不知道我这样说合不合法),大家中学时候学斜率的时候或多你都知道。
    这里写图片描述这里写图片描述这里写图片描述这里写图片描述
    这里H矩阵有个名字叫Hessian矩阵。

  4. 广义线性模型(GLM) (对上面几种方法模型的一种总结和推广)
    好了,说了上面一些方法我们来总结一下,其实有个叫做指数分布簇(a,b,T)的广义定义:
    这里写图片描述 很多时候T(y)=y的
    当我们选择针对y取值的不同分布模型的时候发现可以获得LMS模型(选择高斯分布即可)或Logistic回归(选择伯努利分布即可),呵呵,不仅如此,你还可以选择泊松分布。伽马分布、指数分布、二项分布获得不同模型解决不同情况。其中选择二项分布可以获得softmax回归,softmax回归被认为是logistic回归的推广(很显然嘛,logistic回归解决的是二值0或1问题,而softmax解决的是y取K类值问题),softmax回归可能是比之前回归都难,但是推导的技巧性也很高。所以对验证和推导过程感兴趣的可以去看看。

二、生成学习算法
这是和判别学习完全不同的思想,之前我们都是基于P(y|x;θ)这样一个结构下求解问题的,直接对P(y|x)进行建模,大部分时间是在求解θ,你想一下是不是。现在,我们在求解这样一个问题上P(y|x)时,我们先尝试构建并求解P(x|y),P(y),对其进行建模,然后并根据贝叶斯概率转换公式获得P(y|x)的结果。具体到底这样做是不是更好,看过之后和“判别学习”对比对比一下就知道。
生成学习提到主要分两部分:
1. 高斯判别分析模型(GDA)
这部分这为童鞋总结的很好,大家也可以看他的

http://blog.csdn.net/linkin1005/article/details/39054023

A:什么是(混合)多元正态(高斯)分布?–https://en.wikipedia.org/wiki/Multivariate_normal_distribution
B:高斯判别分析模型,这里我们考虑二维的即可。y仍然服从伯努利分布:
这里写图片描述
也就是:
这里写图片描述
同样利用极大释然性:
这里写图片描述
可以获得结果:
这里写图片描述
最后获得的分离效果:
这里写图片描述
C:高斯判别模型和logistic回归的联系?
其实下面一张图可以帮助你理解高斯判别和Logistic回归的关系
这里写图片描述

  1. 朴素贝叶斯和Laplace平滑
    关于朴素贝叶斯网上有很多介绍,可以去搜。我们结合一个例子来看。
    这里内容很多啊,我不会一个一个向前面一样给出推导步骤了,不然篇幅太多了,还有很多要写的,下面的都是这样,能不写就不写了吧,具体参考资料,这里只给我我自己的感觉和思路吧。
    结合例子来看,处理文本分类(比如垃圾邮件的分类),朴素贝叶斯方法的思想是这样的:
    step1:建立特征向量x
    出现垃圾词汇在相应位置置1,反之置0,由于备用的可供查询词汇很多,所以x的向量维数n往往也是很高的。
    step2:贝叶斯假设
    假设词汇的关系之间是相互独立的,也就是说P(x1,x2,x3···|y)=p(x1|y)·p(x2|y)·p(x3|y)···,虽然在数学上是不正确的,但是实际上这样应用是没问题的,因为x的维数实在可能太高了,没有假设处理起来速度本身就是个问题。
    step3:极大似然性估计和求解
    这里写图片描述
    结果为:
    这里写图片描述
    带回去求解即可:
    这里写图片描述
    思路就这这么个思路,具体遇到问题,如何编码,如何构建,这就是实践的能力了。
    最后,关于Laplace平滑,我想可以这么去理解:设想一下,假如遇到前所未有的单词,是不是就是认为垃圾或者非垃圾的概率就是0了呢,不能吧,所以我们在分子加1,分母加x_i的种类值(这里k==2)即可,作为特殊情况的处理,即
    这里写图片描述
    应该很好理解。

三、支持向量机SVM算法—被认为是最好的监督学习算法

待续。。。。

版权声明:本文为博主原创文章,可转载但要完整并注明出处。

机器学习算法笔记系列之深入理解主成分分析PCA-原理篇

机器学习算法笔记系列之深入理解PCA-原理篇(未完待续) 作者:shizhixin 博客:http://blog.csdn.net/shizhixin 微博:http://weibo....

机器学习算法笔记之3:线性模型

一、概述 线性模型中的“线性”是一系列一次特征的线性组合,在二维空间中是一条直线,在三维空间中是一个平面,推广到n维空间可以理解为广义线性模型。常见的广义线性模型有岭回归、Lasso回归、Elasti...

机器学习算法笔记:谱聚类方法

这方法是昨天听同学提起的,大致翻看了几篇博客跟论文,这里写下自己的理解从样本相似性到图根据我们一般的理解,聚类是将相似的样本归为一类,或者说使得同类样本相似度尽量高,异类样本相似性尽量低。无论如何,我...
  • BetaRun
  • BetaRun
  • 2016年04月14日 18:32
  • 1796

统计机器学习笔记——EM算法及其应用(1)

EM算法的适用场景与简单例子

机器学习笔记(一):梯度下降算法,随机梯度下降,正规方程

一、符号解释 M 训练样本的数量 x 输入变量,又称特征 y 输出变量,又称目标 (x, y) 训练样本,对应监督学习的输入和输出 表示第i组的x   表示第i组的y h(x)表示对应算法的函数 是算...

机器学习笔记之SVM(SVR)算法

学过SVM后,看了那么多别人的文章,是时候自己总结一波了。权当写的笔记供自己日后再回顾吧。 PS:结合自己在工作过程中(我用SVR做股票预测)用到的知识来写的,不会很全面,若有些知识这里没提及读者可...

机器学习实战笔记-使用Apriori算法进行关联分析

在去杂货店买东西的过程,实际包含了许多机器学习的当前及未来应用,这包括物品的展示方式、购物之后优惠券的提供以及用户忠诚度计划,等等。它们都离不开对大量数据的分析。 通过查看哪些商品经常在一起购买,可...

机器学习笔记:贝叶斯算法(一)

有关贝叶斯定理和贝叶斯公式的推导过程,在阮一峰大神的博客里的《贝叶斯推断及其互联网应用(一):定理简介》写得非常全面,简洁明了。下面是我的个人笔记总结:贝叶斯定理基于假设的先验概率,给定假设下观察到的...

机器学习实战笔记(三):决策树算法的Python实现

from math import log import operator def createDataSet(): dataSet = [[1, 1, 'yes'], ...

斯坦福机器学习笔记1:GDA高斯判别分析算法的原理及matlab程序实现

用matlab实现matlab原理编程
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:机器学习算法笔记
举报原因:
原因补充:

(最多只允许输入30个字)