EM 算法理论推导

在介绍EM算法之前,我们先来介绍一下高斯混合模型(GMM)。GMM是多个高斯分布的叠加。表达式如下

p(X) = \sum_{i=1}^{n}\pi _iN_i(X;\theta _i)  其中有i个高斯分布,\pi _i表示第i个高斯分布所占的权重(\sum_{i=1}^{n}\pi _i=1)。N_i(X;\theta_i ) 表示第i个高斯分布的数学表达式。\theta _i 表示第i个高斯分布的参数。高斯

混合模型的概率密度图像如下所示.

现在有如下实例。从一个高校中随机抽取200个人的身高数据。但是我们不知道这两200个身高数据中的每一个是属于男性,还是女性,并且不知道男女比例是多少。但是已知男生和女生的身高分别服从两个不同的高斯分布。现在我们该如何利用数据去得到男生和女生的各自分布的参数(方差。均值,权重)。这就是我们的EM算法所要解决的事情。

其实男生和女生的分布就是一个明显的GMM。

一想到参数估计,肯定我们脑海里第一浮现的就是最大似然估计。当然此处也是如此。前面说了这是一个GMM问题。而且有了GMM表达式。那么我们就开始按照MLE的解题步骤开始吧。

根据MLE的思想我们要让随机抽取的200个数据在这个某一个GMM下分布发生的概率最大化。那么就有对数似然函数

L(\theta )=\sum_{i=1}^{n}log \: p(X_i;\theta )  在 P(X;\theta )中 写分号表示待估参数\theta是固定的,只是当前未知。P(X;\theta )应该可以直接认为是p(x),加了\theta是为了说明这里有个\theta的参数。 (其中\theta参数包含每一个高斯分布的均值,方差,和权重三个未知参数)那么接下来按照MLE的解题步骤。我们是不是只要直接对 L(\theta ) 求最大值就行了呢?实践证明这样是不可取的,是无法的到结果的。下面我们引入一个隐变量 z,z表示的是某一个某一个数据所属的类别(男,女。z=[类1,类2,类3,等])定义 Q(z_i)  (\sum_{i=1}^{m}Q(z_i)=1),但是我们不知道他的分部是什么。现在我们改写L(\theta )

L(\theta )=\sum_{i=1}^{n}log \: P(X_i;\theta )=\sum_{i=1}^{n}log\sum_{z}^{\: } P(X_i,z;\theta )   (n组数据,m个分布P(X,z;\theta)表示在参数\theta下X发生并且是某一个z类的概率)其实这就是对某一个数据在多个类别中的概率的一个叠加。只不过我们添加了一个隐变量在里面方便后面操作。

再对L(\theta )变形 L(\theta )=\sum_{i=1}^{n}log\sum_{z}^{\: }Q(z)\frac{P(X_i,z;\theta )}{Q(z)}

先暂停一会儿。先来了解一个工具jensen不等式如果 f(x)是凸函数(二阶导大于等于零)有

E(f(x))>=f(E(x))

现在再回到   L(\theta )=\sum_{i=1}^{n}log\sum_{z}^{\: }Q(z)\frac{P(X_i,z;\theta )}{Q(z)}   我们另 g(z)=\frac{P(X_i,z;\theta )}{Q(z)}  继续改写L(\theta )=\sum_{i=1}^{n}log\sum_{z}^{\: }Q(z)g(z)。可以先不用看 \sum_{z}^{\: }这个和\sum_{i=1}^{n}。把他们去掉看这个 logQ(z)g(z)。我们知道Q(z)是一个分布,是z的一个权重。而g(z)是一个关于z的函数。所以可以把Q(z)g(z)看作是对 g(z)求期望。而log看成是一个函数。那么根据前面的jessen不等式可以得到。  logQ(z)g(z)>=Q(z)log\: g(z)

那么就有  L(\theta )=\sum_{i=1}^{n}log\sum_{z}^{\: }Q(z)\frac{P(X_i,z;\theta )}{Q(z)}>=\sum_{i=1}^{n}\sum_{z}^{\: }Q(z)log\frac{P(X_i,z;\theta )}{Q(z)}

现在我们来分析一下这个不等式。首先把他们只看做是关于 \theta 的函数,把隐变量 z看作常数。

L(\theta )=\sum_{i=1}^{n}log \: p(X_i;\theta )                           G(\theta )=\sum_{i=1}^{n}\sum_{z}^{\: }Q(z)log\frac{P(X,z;\theta )}{Q(z)}

可知 L(\theta ) ,G(\theta )是一个凸函数。所以大概图像如此

其中的A点对应的 \theta 值就是我们需要的最优值,现在的问题是我们如何得到这个A点。可知G(\theta )L(\theta )的一个下界函数。由于G(\theta )还有一个隐变量z,所以L(\theta )有无数个下界函数。现在我们任意给定参数\theta。然后调整z的值一定可以让 L(\theta ) ,G(\theta )在图中的B点相切。这也就是L(\theta )=\sum_{i=1}^{n}log\sum_{z}^{\: }Q(z)\frac{P(X_i,z;\theta )}{Q(z)}>=\sum_{i=1}^{n}\sum_{z}^{\: }Q(z)log\frac{P(X_i,z;\theta )}{Q(z)}这个不等式取等号的情况。根据jensen不等式性质我们可以知道。取等号的情况是 \frac{P(X,z;\theta )}{Q(z)}=c  (c为一个常数)。变一下型 P(X,z;\theta )=c*Q(z)  。因为\sum_{i=1}^{m}Q(z_i)=1 所以\sum_{z}^{\, }P(X,z;\theta )=c

所以 Q(z)=\frac{P(X,z:\theta )}{\sum_{z}^{\, }P(X,z;\theta )}=\frac{P(X,z;\theta )}{P(X;\theta )}=P(z|X;\theta )  ,利用这个等式我们可以求出Q(z) 。看到这个式子我们应该就明白了。给定一个初始 \theta值我们就可以求出隐变量z的分布。这时图中的G(\theta )的位置就已经固定了。函数表达式也就固定了。然后我们可以去最大化下界函数G(\theta )。得到在C点对应的一个参数\theta。然后重复上面的步骤。利用这个\theta,去得到新的Q(z)。直到\theta收敛。这时也就得到了结果。其实这有点像梯度上升,利用下界函数去慢慢逼近最优值。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值