一、概述

概率模型有时既含有观测变量,又含有隐变量,如果概率模型的变量都是观测变量,那么给定数据,可以直接利用极大似然估计法或者贝叶斯估计法估计模型参数。但是,当模型同时又含有隐变量时,就不能简单地使用这些方法。EM算法适用于带有隐变量的概率模型的参数估计,利用极大似然估计法逐步迭代求解。

二、jensen不等式

  是区间 上的凸函数,则对任意的 ,有不等式:
 
即:
  E[f(X)] ≥ f(E(X))  ,因为(x1+x2+...+xn)/n=E(X),同理可得E(f(X))。当x1=x2=...=xn的时候等式成立。
 
如果是凹函数,怎正好反过来。
 
假设f(x)=log(x),则根据jensen不等式可得:
因为log函数是一个凹函数,所以正好反过来,Σλjyj就是变量Y的期望。后面会用到该log对应的jensen不等式,当yi是一个固定常数的时候等式成立。
 
三、高斯混合模型求解
 
1)问题描述
  还是以经典的身高为例子,假设有100个身高的数据集,这100个人由广东人和东北人组成,但是具体却不知道每个人来自哪里。假设广东人和东北人的身高分别符合某一参数的高斯分布,如何利用这100个人去评估求解广东人和东北人的分布参数呢?如果我们知道哪个人来自哪里,利用极大似然估计直接求解即可得到各自的分布参数;但是这里面不知道哪个人具体来自哪里,所以隐含了一个地域分布的变量,含有隐变量的情况下就不能直接利用MLE求解了,这个时候EM就可以发挥作用了。这两个人群混合在一起其实就是高斯混合模型,如下:
 
 其中,αk是系数,αk≥0,Σαk=1;ø(x;θk)是高斯分布密度函数,θk=(μkk)。这里我们要求解的参数就是αkθk,P(x;θ)这个两个高斯分布的混合高斯模型。
 
2)公式推导
 我们把隐变量考虑进去,用z表示隐变量地域的分布,例如z=0表示来自广东,z=1表示来自东北,写出对应的似然函数如下:
 之所以后面按z累加概率,是因为在不知道一个样本来自哪里的情况下,就把可能出现的概率累加起来就是表示该样本出现的概率。
上面这个式子log后面是一个累加项,求导会非常麻烦,做一个转化,这里面要用到上面提到的jensen不等式,求一个近似的函数逼近原函数逐步求解:
 
 这里面的Q(z)就是关于z的分布函数,Q(z)≥0,∑Q(z)=1,根据上面的jensen不等式可得上述不等式。
 我们找到了似然函数的一个下界,如何去优化呢?我们首先必须保证这个下界是紧的,也就是至少要满足等号成立的条件。由Jensen不等式,等式成立的条件是随机变量是固定常数,也就是:
 
而满足该式子等于常数C的时候,我们的Q(z)到底是什么形式呢?如何求得Q(z)呢?往下看:
因为:
 
 
所以:
进而:
这个时候Q(z)我们就找到了,Q(z)就是在知道参数θ情况下,样本xi属于z地域的概率值。
 
3)图形化展示优化思路
当我们初始化参数θ1的时候,带入公式会得到Q(z)的分布,这个时候的的Q(z)是满足等号成立的条件的,因为我们推导求Q(z)公式的时候就是按等号成立的条件去推导的。所以这个时候的下界函数和原似然函数L(θ)在θ1处值是相等的,下界函数的曲线就是图示中θ1与θ2所在的第一个黑色曲线。下一步我们优化下界函数,求得其极大值,就会得到如图所示的θ2的参数值。此时我们将θ2再次带入公式,得到一个新的Q(z)分布,Q(z)变了,当然下界函数曲线也变了,新的下界函数就是图示θ2和θ3所在的第二条黑色曲线,因为θ2带入Q(z)之后,这个时候跟θ1带入一样,是满足等式成立的条件的,所以新的黑色曲线就在θ2处上方与L(θ)值相等,接着求当前下界函数的极大值,得出θ3参数。如此下去,就能无限接近原似然函数的极值点。
 
4)算法具体步骤

首先,初始化参数θ

  (1)E-Step:根据已知参数θ计算每个样本属于z的概率,即这个身高来自广东或东北的概率,这个概率就是Q(z),这一步为什么叫求期望呢?我的理解是这样的,下界函数是 ∑∑Q(z)*log(p(x,z;θ)/Q(z)),Q(z)本身就是一个概率分布,所以这正是求期望的公式。

  (2)M-Step:根据计算得到的Q(z),求出含有θ的似然函数的下界并最大化它,得到新的参数θ。这里面下界函数中,Q(z)带入初始化或者前一步已知的θ参数值,而p(xi,z;θ)中Θ参数还是未知,相当于成了以θ为变量的函数,这一步极大化求函数的极值点对应的θ点即可。

  重复(1)和(2)直到收敛,可以看到,从思想上来说,和最开始没什么两样,只不过直接最大化似然函数不好做,曲线救国而已。

  至于为什么这样的迭代会保证似然函数单调不减,即EM算法的收敛性证明,《统计学习方法》里面有证明。EM算法在一般情况是收敛的,但是不保证收敛到全局最优,即有可能进入局部的最优。

 
 
 
 
参考链接:https://www.cnblogs.com/bigmoyan/p/4550375.html
                  https://www.cnblogs.com/Gabby/p/5344658.html

EM算法理解的更多相关文章

  1. EM算法理解的九层境界

    EM算法理解的九层境界 EM 就是 E + M EM 是一种局部下限构造 K-Means是一种Hard EM算法 从EM 到 广义EM 广义EM的一个特例是VBEM 广义EM的另一个特例是WS算法 广 ...

  2. 超详细的EM算法理解

    众所周知,极大似然估计是一种应用很广泛的参数估计方法.例如我手头有一些东北人的身高的数据,又知道身高的概率模型是高斯分布,那么利用极大化似然函数的方法可以估计出高斯分布的两个参数,均值和方差.这个方法 ...

  3. Machine Learning系列--EM算法理解与推导

    EM算法,全称Expectation Maximization Algorithm,译作最大期望化算法或期望最大算法,是机器学习十大算法之一,吴军博士在<数学之美>书中称其为“上帝视角”算 ...

  4. EM算法浅析(一)-问题引出

    EM算法浅析,我准备写一个系列的文章: EM算法浅析(一)-问题引出 EM算法浅析(二)-算法初探 一.基本认识 EM(Expectation Maximization Algorithm)算法即期望 ...

  5. EM算法-完整推导

    前篇已经对EM过程,举了扔硬币和高斯分布等案例来直观认识了, 目标是参数估计, 分为 E-step 和 M-step, 不断循环, 直到收敛则求出了近似的估计参数, 不多说了, 本篇不说栗子, 直接来 ...

  6. 如何感性地理解EM算法?

    https://www.jianshu.com/p/1121509ac1dc 如果使用基于最大似然估计的模型,模型中存在隐变量,就要用EM算法做参数估计.个人认为,理解EM算法背后的idea,远比看懂 ...

  7. 浅谈EM算法的两个理解角度

    http://blog.csdn.net/xmu_jupiter/article/details/50936177 最近在写毕业论文,由于EM算法在我的研究方向中经常用到,所以把相关的资料又拿出来看了 ...

  8. EM算法之不同的推导方法和自己的理解

    EM算法之不同的推导方法和自己的理解 一.前言 EM算法主要针对概率生成模型解决具有隐变量的混合模型的参数估计问题. 对于简单的模型,根据极大似然估计的方法可以直接得到解析解:可以在具有隐变量的复杂模 ...

  9. 对EM算法的理解

    EM算法中要寻找的参数θ,与K-means聚类中的质心是对应的,在高斯混合模型中确定了θ,便可为样本进行类别的划分,属于哪个高斯分布的概率大就是哪一类,而这一点与K-means中的质心一样,质心确定了 ...

随机推荐

  1. 第二个Sprint冲刺第 八天(燃尽图)

    因为今天停电了,所以我们也休息一天!

  2. Apache修改了配置文件中的路径后,登录该地址网页出现问题 (其中介绍了selinux的域和安全上下文)

    默认的网站数据存放在: /var/www/html 首页名称: index.html Apache服务程序的主配置文件: /etc/httpd/conf/httpd.conf (若是将  119  行 ...

  3. Windows 下 Docker 的简单学习使用过程之二 Docker For windows

    1. Docker For windows 最新版也支持到了 docker ce 18.06 (这个博客的编写时间是 2018.8.17 当时是最新的) 2. 下载安装. 大概500m 左右的安装文件 ...

  4. OneZero第五次站立会议(2016.3.25)

    会议时间:2016年3月25日 12:45~12:57 会议成员:冉华,张敏,王巍,夏一鸣. 会议目的:汇报前一天工作,全体成员评论,确定会后修改内容. 会议内容:1.界面原型已经确定.(夏负责) 2 ...

  5. Delphi 模式窗体返回值ModalResult的使用方法及注意事项(转)

    1.基础知识简介: ModalResult是指一个模式窗体(form.showmodal)的返回值,一般用于相应窗体上按钮的ModalResult属性: 显示完窗体(关闭)后,会返回此属性预设的值做为 ...

  6. python 多参数并行化

    multiprocessing模块与map方法 import time from datetime import datetime from multiprocessing.dummy import ...

  7. BZOJ 3516 国王奇遇记加强版(乱推)

    题意 求\(\sum_{k=1}^{n}k^mm^k (n\leq1e9,m\leq1e3)\) 思路 在<>中有一个方法用来求和,称为摄动法. 我们考虑用摄动法来求这个和式,看能不能得到 ...

  8. Cucumber java + Webdriver(一)

    一.打开Eclipse,新建一个maven项目,打开pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xm ...

  9. 用css绘制图形

    巧用css的border-radius属性,也能绘制出好看的图形 html部分 <!DOCTYPE html><html> <head> <meta char ...

  10. 【刷题】洛谷 P4320 道路相遇

    题目描述 在 H 国的小 w 决定到从城市 \(u\) 到城市 \(v\) 旅行,但是此时小 c 由于各种原因不在城市 \(u\),但是小 c 决定到在中途与小 w 相遇 由于 H 国道路的原因,小 ...