EM算法(基础及核心概念)

Jensen不等式

其实在运筹学以及基础的优化理论中,便有涉及。设f是定义域为实数的函数,如果对于所有的实数x,这里写图片描述,那么f是凸函数。拓展到多元的情形,x是向量时,如果其对应的Hessian矩阵H是半正定的(这里写图片描述),那么f是凸函数。特别的,当这里写图片描述或者海瑟矩阵为正定时(H>0),那么称函数f是严格凸函数。

  • Jensen不等式表述如下:

    如果f是凸函数,X是随机变量,那么这里写图片描述

    特别地,如果f是严格凸函数,当且仅当这里写图片描述(也就是说X是常量时),这里写图片描述成立,画一个草图可以直观地看出:

    这里写图片描述

可以看到,左图是符合我们对于凸函数的定义的,右图则不符合。

同理我们可以知道,当Jensen不等式应用于凹函数时,不等号变向,即 E[f(X)]f(EX)

最大似然估计

在讲解EM算法之前,还需要最大似然估计的相关知识。

假设我们需要调查学校的男生的身高分布。我们进行简单随机抽样(当然,分层抽样啊,整群抽样都是OK的~),随机抽选了100个男生作为抽样样本。然后得到的100个样本值。假设他们的身高(对应的男生总体)是服从高斯分布(总体分布)的。但是这个分布的均值u和方差 σ2 我们不知道(总体分布的参数未知),这两个参数就是我们要估计的。记作:这里写图片描述

用数理统计的语言表达出来便是,我们独立地按照概率密度p(x|θ)抽取100样本组成样本集X,我们想通过样本集X来估计出未知参数θ。这里假设概率密度p(x|θ)我们知道了是高斯分布这里写图片描述的形式,其中的未知参数是这里写图片描述。抽到的样本集是 X=x1,x2,,xn ,其中 xi 表示抽到的第i个人的身高,这里n就是100,表示抽到的样本个数。又由于抽取到的每个样本之间相互独立,故联合概率密度函数便是其各自的概率密度函数的连乘,形式如下:
这里写图片描述

这个联合概率反映了,在概率密度函数的参数是 θ 时,得到样本集X的概率。因为这里X是已知的,也就是说我抽取到的这100个人的身高可以测出来,也就是已知的了。而 θ 是未知了,则上面这个公式只有 θ 是未知数,所以它是 θ 的函数。这个函数表示的是在不同的参数 θ 取值下,取得当前这个样本集的可能性,因此称为参数 θ 相对于样本集X的似然函数(likehood function)。记为 L(θ)

极大似然估计,是一种概率论在统计学的应用,它是常见的参数估计的方法之一。其是建立在这样的思想上:已知某个参数能使这个样本集出现的概率最大,我们当然不会再去选择使得这个样本集出现的概率较小的参数,所以干脆就把这个参数作为估计的真实值

比较拗口哈~,不过理解起来还是比较容易的。就拿前面的例子说,如果参数这里写图片描述使得该样本集出现的概率最大,我们肯定是不会去选择参数这里写图片描述这里写图片描述等参数的对吧。


这里写图片描述
但通常为了便于分析,可以取对数得到对数似然函数,
这里写图片描述
即:
这里写图片描述

好了,现在我们知道了,要求解θ,只需要使θ的似然函数L(θ)极大化,然后极大值对应的θ就是我们的估计。这里就回到了求最值的问题了。怎么求一个函数的最值呢?当然,在存在解析解的情况下,我们直接求其偏导数并令其为0即可得出;

但是在不存在解析解或者直接求解比较困年的情况下,我们通常是采取梯度下降(上升)法来进行求解的,例如典型的LR的参数求解中便是利用了梯度下降法;又SVM在求解的实现时,利用SMO求解时,是同时对两个拉格朗日乘子进行梯度上升法(由于SMO是求解max W(a),详见博文http://blog.csdn.net/buracag_mc/article/details/76762249),同样利用迭代来求解的。这里不是本文的侧重点,故不再展开赘述了。


大概总结一下,求解最大似然函数估计值的一般步骤:

  • 求得联合概率密度,写出似然函数;

  • 对似然函数取对数,并整理;

  • 求偏导数,并令其为0,得到似然方程;

  • 求解似然方程,得到的参数即为所求。

EM算法

给定的训练样本集,样本间独立,我们想找到每个样例隐含的类别z,能使得p(x,z)最大。p(x,z)的最大对数似然估计如下:

这里写图片描述

利用似然估计求解的思想。

  • 求得似然函数

  • 取对数,得到对数似然函数

  • 对每个样例的每个可能类别z求联合分布概率和。


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

EM是一种解决存在隐含变量优化问题的有效方法。既然不能直接最大化这里写图片描述,我们可以不断地建立的下界这里写图片描述(E步),然后优化下界(M步),直到差异足够小。

对于每一个样本 xi ,让 Qi 表示该样例隐含变量z的某种分布, Qi 满足的条件是这里写图片描述。(分类变量便是求和符号,如果z是连续变量,那么 Qi 是概率密度函数,对其积分即可)。


讲的比较抽样哈?没关系,继续用小例子来说明:
对于第二部分讲的似然估计的内容,我们要估计的只有一个总体的参数(即学校男生的身高分布参数);但是如果我们要同时估计男生和女生的身高分布情况呢?

我们改变一下假设,同时随机选取100个男生和100个女生混在一起,得到一个样本值后(即身高值),我们不知道是从男生的那个身高分布中选取的,还是从女生的那个身高分布中选取的。对于每一个样本,我们就有两个东西需要进行估计的了:

  • 其一是这个人是男生还是女生?

  • 其二是男生和女生对应的身高的高斯分布的参数是多少?

这里假设隐藏变量z是身高,那么隐藏变量对应的分布就是连续的高斯分布。如果隐藏变量z是男女,那么就是伯努利分布了。这样讲,应该是比较容易理解隐藏变量的意思了。


下面我们假设隐藏变量z是男女,可以由前面阐述的内容得到下面的公式:
这里写图片描述

(1)式到(2)式没问题,就是分子分母同乘以一个相等的函数,这里即是隐藏变量的概率密度函数。(2)式到(3)式利用到了第一部分讲的Jensen不等式,首先考虑到 log(x) 是凹函数。
这里写图片描述

就是这里写图片描述的期望(看成函数值乘上对应的权重,最后加和)

即将自变量看成这里写图片描述,f(x)看成这里写图片描述便可理解了。具体转换步骤:
这里写图片描述

这个过程可以看作是对这里写图片描述求了下界。对于 Qi 的选择,有多种可能,那种更好的?假设 θ 已经给定,那么这里写图片描述的值就决定于这里写图片描述这里写图片描述了。我们可以通过调整这两个概率使下界不断上升,以逼近的真实值,那么什么时候算是调整好了呢?最终当不等式变成等式时,说明我们调整后的概率能够等价于这里写图片描述了。这里给出一张图,直观地说明不断地抬高下界以逼近我们所求的这里写图片描述:【1】

这里写图片描述


按照这个思路,我们要找到等式成立的条件。根据Jensen不等式,要想让等式成立,需要让随机变量变成常数值,即:
这里写图片描述

c为常量,不依赖于这里写图片描述。对此式子做进一步推导,我们知道这里写图片描述,那么也就有这里写图片描述(多个等式分子分母相加不变,这个认为每个样例的两个概率比值都是c),那么有下式:
这里写图片描述

至此,我们推出了在固定其他参数 θ 后,这里写图片描述的计算公式就是熟悉的后验概率公式,解决了这里写图片描述如何选择的问题。这一步就是E步,建立这里写图片描述的下界。

接下来的便是M步,就是在给定这里写图片描述后,调整 θ ,去极大化这里写图片描述的下界(在固定后,下界还可以调整的更大)。


那么一般的EM算法的步骤如下:

  • 初始化分布参数 θ

  • 重复以下步骤直到收敛:

    • E步骤:根据参数初始值或上一次迭代的模型参数来计算出隐性变量的后验概率,其实就是隐性变量的期望。作为隐藏变量的现估计值:
      这里写图片描述
    • M步骤:将似然函数最大化以获得新的参数值:
      这里写图片描述

如何确保EM的参数估计值收敛呢?假定这里写图片描述这里写图片描述是EM第t次和t+1次迭代后的结果。如果我们证明了这里写图片描述,也就是说极大似然估计单调增加,那么最终我们会到达最大似然估计的最大值。
详细证明可以参考博客【2】

最终会得到证明结果:
这里写图片描述

这样就证明了会单调增加。一种收敛方法是不再变化,还有一种就是变化幅度很小。


OK,我们将EM算法的思想用到我们这部分的例子上:

  • 首先我们初始化参数 θ ,男生的总体分布参数这里写图片描述,女生的总体的分布参数这里写图片描述

  • 然后我们将200个样本值分别计算出隐藏变量的后验概率,作为隐藏变量的现估计值。即在样本 xi 的取值下,该样本属于男生的后验概率是多少,属于女生的后验概率是多少,并将该样本划分到后验概率最大的那类去。即E步。

  • 将200个样本划分给男生和女生完成后,重新根据对应的样本,参照我们第二部分的内容,做极大似然估计,得到更新后的参数 θ 值。即M步

  • 重复二、三步,直到收敛

  • 最后,输出男生和女生对应总体分布的参数值。


参考资料如下:

【1】>http://ju.outofmemory.cn/entry/148394
【2】>http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006936.html
【3】>http://blog.csdn.net/zouxy09/article/details/8537620/
【4】>《大数据挖掘与统计机器学习》- 吕晓玲 宋捷 - 中国人民大学出版社

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值