机器学习算法笔记

来源:互联网 发布:京东淘宝比价软件 编辑:程序博客网 时间:2024/06/13 06:42

算法总结
这个星期把机器学习相关算法的入门知识顺了一遍,机器学习算法需要较强的统计学、概率论、极值求解(凸优化等)知识,初学者很可能因为一大票的数学推导望而却步,实际上理解公式背后的实际意义,尤其结合特定的例子来理解公式中每个变量的含义,这样会有趣很多。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算法—被认为是最好的监督学习算法

待续。。。。

0 0
原创粉丝点击