机器学习算法笔记

原创 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算法—被认为是最好的监督学习算法

待续。。。。

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

相关文章推荐

机器学习笔记(七)Boost算法(GDBT,AdaBoost,XGBoost)原理及实践

Boost(提升)算法介绍,包括GDBT,AdaBoost和XGBoost的原理及Python中的实践。

机器学习笔记(十)EM算法及实践(以混合高斯模型(GMM)为例来次完整的EM)

EM算法简介,讲述了EM的算法原理及思想,用混合高斯模型(GMM)为例完成了一个完整的EM过程,还有GMM算法的Python实践。

机器学习实战笔记(1)——kNN(k Nearest Neighbor)算法

简述kNN算法(中文翻译:k-近邻算法)是机器学习分类算法的基础部分,也是比较简单的算法之一。它的内容和原理并不复杂,但是计算量比较大,即时间复杂度和空间复杂度都比较高。书中以约会网站和手写数字识别系...

【机器学习算法笔记】5. 自组织映射SOM

【机器学习算法笔记】5. 自组织映射SOM自组织映射是一类非监督学习算法 自组织原则: 1、自增强:如果两个神经元是同时激活的,则突触强度会选择性地增强;如果是异步激活的,突触强度会减弱 2、竞争原...
  • tostq
  • tostq
  • 2017-03-29 10:14
  • 923

机器学习实战 决策树 算法 笔记

卧槽 尼玛发现个史诗巨鳄 _name_ 如果加上_name_ 会报错 str object has no attribute ‘_name_‘ 我在Python27下亲自试过 不加_name_ typ...

【机器学习算法笔记】1. 回归器模型

【机器学习算法笔记】1. 回归器模型回归算法是试图采用对误差的衡量来探索变量之间的关系的一类算法。回归算法是统计机器学习的利器。常见的回归算法包括:最小二乘法(线性回归),逻辑回归,逐步式回归,多元自...
  • tostq
  • tostq
  • 2017-03-28 19:15
  • 665

【机器学习算法笔记】6. 降维与主分量分析(PCA)

【机器学习算法笔记】6. 降维与主分量分析(PCA)6.1 PCA算法特征选择问题是指将数据空间变换到特征空间,我们希望设计一种变换使得数据集由维数较少的有效特征来表示。 PCA是最常用的线性降维方...
  • tostq
  • tostq
  • 2017-03-29 10:35
  • 680

机器学习笔记(十七)——EM算法的推导

一、Jensen 不等式    在EM算法的推导过程中,用到了数学上的Jensen不等式,这里先来介绍一下。 若Ω是有限集合{x1,x2,…,xn}\{x_1,x_2,\ldots,x_n\},而μ...

《机器学习实战》课程笔记(第2章) k-近邻算法

一、k-近邻算法(KNN):工作原理: 存在一个样本数集合,也称作样本集;'样本集'中每个数据都存在标签(标识所属分类)。输入无标签的新数据后,将新数据的每个特征与样本集中每个数据所属分类进行比较...

斯坦福机器学习: 网易公开课系列笔记(二)——线性回归、梯度下降算法和最小二乘公式

课程一共分为三个板块,分别讲述了监督学习、非监督学习、增强学习的一些模型和相关算法。那么什么是监督学习?非监督学习?强化学习呢?      我们可以这样理解,假如我们对某个地区的鸟类进行分类,为了简便...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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