主要是对Ng教授的machinelearning视频学习和参考jerryLead讲义整理(特别鸣谢~):

由“判别模型、生成模型与朴素贝叶斯方法 ”一节得知:

判别模型求的是条件概率p(y|x),

生成模型求的是联合概率p(x,y)   .即 = p(x|y) ∗ p(y) 
常见的判别模型有线性回归、对数回归、线性判别分析、支持向量机、boosting、条件 随机场、神经网络等。
常见的生产模型有隐马尔科夫模型、朴素贝叶斯模型、高斯混合模型、LDA、Restricted Boltzmann Machine等。

所以这里说的高斯混合模型,朴素贝叶斯模型都是求p(x,y)联合概率的。(下面推导会见原因)

套路小结: 凡是生产模型,目的都是求出联合概率表达式,然后对联合概率表达式里的各个参数再进行估计,求出其表达式。

下面的EM算法,GMM等三个模型都是做这同一件事:设法求出联合概率,然后对出现的参数进行估计。




 一、EM算法:

作用是进行参数估计。

应用:(因为是无监督,所以一般应用在聚类上,也用在HMM参数估计上)所以凡是有EM算法的,一定是无监督学习.因为EM是对参数聚集

给定训练样本是 样例独立,

我们想要知道每个样例隐含的类别z,使p(x,z)最大,(即 如果将样本x(i)看作观察值, 潜在类别z看作是隐藏变量, 则x可能是类别z, 那么聚类问题也就是参数估计问题,)

故p(x,z)最大似然估计是:

所以可见用到EM算法的模型(高斯混合模型,朴素贝叶斯模型)都是求p(x,y)联合概率,为生成模型。

对上面公式,直接求θ一般比较困难,因为有隐藏变量z存在,但是一般确定了z后,求解就容易了。

EM是一种解决存在隐含变量优化问题的有效方法。竟然不能直接最大化ℓ(θ),我们可建立ℓ的下界(E步),再优化下界(M步),见下图第三步,取的就是下界

  (总式)

解释上式:

对于每一个样例 i,让Qi表示该样例隐含变量 z 的某种分布,Qi满足的条件是 (如果 z 是连续性的,那么Qi是概率密度函数(因子分析模型就是如此),需要将求和符号换成积分符号即:因子分析模型是如此,这个会用在EM算法的M步求

比如要将班上学生聚类,假设隐藏变量z是身高,那么就是连续的高斯分布。 如果按照隐藏变量是男女,那么就是伯努利分布(即两点分布:)了。

上总式第1到第2步是分子分母同乘一个数,

第2到3步是:用了jasen不等式: (凸函数图形上表示反为凹函数,记住。)

如图:  。因为第2步log是凹函数 :,所以f(E(x)) >= E[f(x)].这样就完成了第3步(详情见对应讲义。)

至此推导完上面3步公式,下面所有模型都是对上面第3步公式进行参数估计的!!!


下面 对第三步的Q(z)进行推导:

(见讲义)

所以Q(Z)最终表示: ,其中z只受参数θ影响。

所以EM算法:

(承上启下:在m步中,最终是对参数θ进行估计,而这一步具体到高斯混合模型,则θ有三个参数:mu,phi,sigma代替,即高斯混合模型要推导三个参数,下面会讲)

至此,这就是EM算法所有推导,EM算法推导也只能推导这些步,具体再将这些公式推导下去,就要结合模型了。

总结:

如果将样本看作观察值, 潜在类别看作是隐藏变量,   那么聚类问题也就是参数估计问题,只不过聚类问题中参数分为隐含类别变量和其他参数。

对应到EM上,E步估计隐含变量,M步估计其他参数,交替将极值推向最大。

例子:在Mitchell的Machine Learning书中也举了一个EM应用的例子,将班上学生的身高都放在一起,要求聚成两个类。这些身高可以看作是男生身高的高斯分布和女生 身高的高斯分布组成。因此变成了如何估计每个样例是男生还是女生,然后在确定男女生情 况下,如何估计均值和方差,里面也给出了公式。




二、混合高斯模型:

将EM算法融到高斯混合模型,将上面EM算法的E步、M步的公式再具体推导下去。

整个模型简单描述为:

对于每个样例 ,我们先从k个类别中按多项式分布抽取一个

然后根据所对应的 k 个多值高斯分布中的一个,生成样例,整个过程称作混合高斯模型。

(即对样例x, 最终目的是生成样例x。(??)即对样例x,从k个类别抽取一个z,从根据z生成x。)

特别地,混合高斯模型的

(1)隐含类别标签 ,被认为满足多项式分布,即  (这里只受∅参数(即phi)影响)

(2)样例被认为满足 高斯分布,即   (所以μ和Σ分别为样例x的均值和协方差)

           补充:服从的多项式分布概率公式为:,即类似C(n,x)*p6^x*(1-p6)^(n-x) 类型

  所以 上面(1)(2)可知混合高斯模型中, 这里的仍是隐含随机变量。模型细化多了三个变量∅,μ和Σ。(即是phi,mu,sigma).

其中∅j就是样本类别中  = j的比率。μj是类别为 j 的样本特征均值,Σj是类别为 j 的样例的特征的协方差矩阵(Σj是一个矩阵!!)。

所以由上面(1)(2)合并得,最大似然估计p(x, z),对数化后如下:

       

(对比一、EM算法里的总式: ,只是参数θ由原化成三个∅,μ和Σ)

注意第二步有两个迭加号。第二个迭加号是z(i)=1 直到k个类别。z只有k个类别。

参考一、中EM算法推导:

所以混合高斯模型:

从EM算法步骤的   变成: (其中M步三个参数的右边公式在下面会进行推导。这里直接先给出参数结果。)

1. E步:   每个样例i的隐含类别z(i)为j的概率  可以通过条件概率计算得到。即

      (E)

                    (这里贝叶斯公式,分子是z=j一种类别情况,分母是z={1~k}k中类别的累加) 

    1)对上式的分子第一项:(由上面加黄色背景段文字可知)服从高斯分布:

      故 =    。(其中Σ即是

    2)对(E)式分子第二项(又上面可知) 服从 多项式分布:

所以分子直接代入即可,所以 可以求得。

2.M步:

    先给出最终结果为: ,推导如下:

      先看EM算法的M步:

  

 (M)

     下面对三个参数phi,mu,sigma(∅,μ和Σ)分别进行求导:

     (i)μi 求导得(固定∅i,Σi):

              <--  它是由   (据Ng说求的过程不重要?)等于0时所得 

  

     (ii)对∅i求导(固定μi,Σi)

          

                     推导过程用了SVM中的拉格朗日乘子方法:

          因为∅i是 隐性随机变量z的多项式分布概率值,又有约束条件

          又由上面(M)步公式:

          (why?????)

                               所以联合上两式,直接构成拉格朗日乘子:

            

           ,   

     (iii)Σ的推导:

          也类似,不过稍微复杂一些,毕竟是矩阵。结果在之前的混合高斯模型中已经给出。

3.迭代:对上面E,M步进行迭代,最后一定会收敛(证明见讲义)

     

      如图,最终收敛成2个类,这里的样例收敛于椭圆,原因是高斯分布的二维几何图形是一个椭圆,(具体几何图形见下面因子分析,有详解)

拓展:

混合高斯模型GMM与K-means比较:

相同点:都是可用于聚类的算法;都需要指定K值。

不同点:对GMM来说,引入了概率;GMM可以给出一个样本属于某类的概率是多少。所以高斯混合模型既可以做聚类,也可做概率密度估计




 三、混合朴素贝叶斯模型

混合高斯的例子:文本聚类: 要对一系列的文本聚类成若干主题。(用svm写文本分类是最好的)

 news.google.com就是文本聚类一个应用

  怎样在文本新闻问题用到EM算法呢?

  ----->混合朴素贝叶斯模型。混合朴素贝叶斯模型有2个:多值伯努利事件模型(文本聚类就是用此);多项式事件模型。

模型描述为:

  给定m个样本的训练集合是 , 每个文本属于(0,1)^n。即每个文本是n维 0或1的向量。

  故= { wordj 是否出现在文本i 里}

  我们要对(值是0或1) 进行建模,是隐含随机变量,这里取两个值:2个聚类。

所以对混合贝叶斯模型,假设  服从参数∅有伯努利分布(两点分布),即: 图中x换成∅即可)。

故每个文本按某概率属于聚类1或者聚类2

同高斯混合模型,混合贝叶斯模型的联合概率是:

  又     由贝叶斯公式可知:

p(|) = p()     (i)

p( = 1 | = 0)  =          (ii)

把上面的z全部换成y,就得到常见的朴素贝叶斯公式:

 一般会前面两个等式右边的x=1,或省去=1,即写成∅i|y=1 = p(xi | y =1)      ∅i|y=0  = p(xi | y =0) ,默认x取了1

  其中p(y=1)表示类别1(例如类别1表示垃圾邮件)的在所有文本的概率。这里xi表示一个单词,取值只有0或者1,表示出现在文本里或者没有出现。

EM算法步骤:

1.E步:

    这里三个参数phi,mu,sigma,改成,与∅j|z

将上面(i)(ii)式带入即可求得

2.M步:

        对比贝叶斯原公式:

      =  

             这里Wi表示文本来自于类1,分子Σ表示:类1且包含词j的文档个数,分布表示类1的文档总数。所以全式表示:类1包含词j的比率。

             EM算法不能做出绝对的假设0或者1,所以只能用Wi表示,最终Wi的值会靠近0或1,在数值上与0或1无分别。

    

      =   (分子的横斜是多余的,忽略)

              全式表示:类0包含词j的比率

           j|z         = 

3.迭代上面12步骤,收敛,求出参数估计,带回联合概率,将联合概率排序,由联合概率最高值 ,可得知哪个文本是输入哪个类了。




四、因子分析

转至下篇博文

转载于:https://www.cnblogs.com/lifegoesonitself/archive/2013/05/19/3087143.html

EM算法--应用到三个模型: 高斯混合模型 ,混合朴素贝叶斯模型,因子分析模型...相关推荐

  1. Spark MLlib 源码学习---朴素贝叶斯模型(Naive Bayes)

    朴素贝叶斯是机器学习中比较常用的一种模型,尤其在文本分类的问题上是比较常用的baseline.朴素贝叶斯本身训练速度快,具有可并行化程度高,可解释性好的优点,但由于其对特征之间的独立性假设不是很符合某 ...

  2. 【人工智能】— 贝叶斯网络、概率图模型、全局语义、因果链、朴素贝叶斯模型、枚举推理、变量消元

    [人工智能]- 贝叶斯网络 频率学派 vs. 贝叶斯学派 贝叶斯学派 Probability(概率): 独立性/条件独立性: Probability Theory(概率论): Graphical mo ...

  3. 机器学习第六章之朴素贝叶斯模型

    朴素贝叶斯模型(了解) 6.1 朴素贝叶斯模型算法原理 6.1.1 一维特征向量下的贝叶斯模型 6.1.2 二维特征向量下的贝叶斯模型 6.1.3 n维特征向量下的贝叶斯模型 6.1.4 朴素贝叶斯模 ...

  4. 机器学习之朴素贝叶斯模型及代码示例

    一.朴素贝叶斯的推导 朴素贝叶斯学习(naive Bayes)是一种有监督的学习,训练时不仅要提供训练样本的特征向量X,而且还需提供训练样本的实际标记Y,是一种基于贝叶斯定理和特征条件独立假设的分类方 ...

  5. 朴素贝叶斯模型介绍与python实现

    1. 引言     朴素贝叶斯模型是基于贝叶斯定理与特征条件独立假设的分类方法,它基于特征条件独立假设学习输入和输出的联合概率分布,然后采用贝叶斯定理求出后验概率最大的类别作为预测实例的类别,是属于生 ...

  6. [CS229学习笔记] 5.判别学习算法与生成学习算法,高斯判别分析,朴素贝叶斯,垃圾邮件分类,拉普拉斯平滑

    本文对应的是吴恩达老师的CS229机器学习的第五课.这节课介绍了判别学习算法和生成学习算法,并给出了生成学习算法的一个实例:利用朴素贝叶斯进行垃圾邮件分类. 判别学习(Discriminative L ...

  7. 一步步教你轻松学朴素贝叶斯模型算法理论篇1

    一步步教你轻松学朴素贝叶斯模型理论篇1 (白宁超2018年9月3日17:51:32) 导读:朴素贝叶斯模型是机器学习常用的模型算法之一,其在文本分类方面简单易行,且取得不错的分类效果.所以很受欢迎,对 ...

  8. 实现 | 朴素贝叶斯模型算法研究与实例分析

    实现 | 朴素贝叶斯模型算法研究与实例分析 (白宁超  2018年9月4日10:28:49) 导读:朴素贝叶斯模型是机器学习常用的模型算法之一,其在文本分类方面简单易行,且取得不错的分类效果.所以很受 ...

  9. 机器学习:朴素贝叶斯模型算法原理(含实战案例)

    机器学习:朴素贝叶斯模型算法原理 作者:i阿极 作者简介:Python领域新星作者.多项比赛获奖者:博主个人首页

最新文章

  1. TS中的感叹号和问号的用法
  2. 安全攻防技能——Web安全——SQL注入
  3. 很详细的Nginx配置说明
  4. 操作索引库-创建索引库
  5. 洛谷P2480:古代猪文(中国剩余定理)(欧拉定理)
  6. 领导给了一堆无序杂乱的数据,我写了个Python自动化脚本
  7. java四类八种基本数据类型
  8. Virtual Box Host-Only网络模式配置
  9. 洛谷 P1908 逆序对(树状数组+离散化)
  10. 【分享】电子科大第一位以第一作者在CVPR上发文的本科生,这个小哥哥用奋斗诠释优秀!...
  11. easyui 提示框组件_jQuery EasyUI 教程-Tooltip(提示框)
  12. 项目管理的扫地僧---PRINCE2,学过PMP的必进!
  13. iOS实现模拟定位功能
  14. IT人才供不应求,大数据分析程序员今后的发展道路
  15. 【2021全国高校计算机能力挑战赛C++题目】17.信息整理 某机房上线了一套系统,和每台计算机都相连,以便监控各计算机相关外设的运行状态。
  16. 求三个正整数的最大公约数和最小公倍数
  17. 计算机网络安全评估,计算机网络系统安全性分析及评估
  18. Python(大蟒蛇)与云计算
  19. python整形变量赋初值_为了给整型变量a、b、c赋初值10,下面正确的python语句是...
  20. 设置系统引导,首启动项为windows

热门文章

  1. opencv视频模糊处理
  2. go mysql 乱码_MySQL 乱码之我见
  3. Spring AOP里面的几个名词
  4. 001_Layout布局
  5. 009_logback本地Appender
  6. 022_jdbc-mysql封装JDBCUtil和抽取数据库配置参数文件
  7. 无法启动此程序因为计算机中丢失msvcr110,无法启动此程序因为计算机中丢失msvcr110,教您无法运行程序提示计算机中丢失...
  8. mysql存储的判断if_if在数据库mysql存储中判断
  9. Notification详解
  10. Java基础:动态代理