关于EM算法的一些疑问


怎么从几何角度直观地理解EM算法在高斯混合模型学习中E和M的过程?不等式等号什么时候成立?为什么EM算法会趋于收敛?@管枫
QQ图片20160812193421.png
已邀请:

EM的思路,无奈与巧合

这个问题我也只能谈谈我的个人看法。EM算法已经有很多介绍性质的文章,可以参考我再第一个回复里面的博客,以及Andrew Ng的文章http://cs229.stanford.edu/notes/cs229-notes8.pdf

我们这里以混合高斯模型为例来过一遍EM算法。混合高斯模型我们指,有两个随机变量\(X_1, X_2\),分别满足正态分布\(N(\mu_1,\sigma_1),N(\mu_2,\sigma_2)\). 而\(X\)是一个\(X_1,X_2\)混合的随机变量,而且\(P(X=X_1)=\tau, P(X=X_2) = 1-\tau\).

也就是说\(X\)在\(X_1,X_2\)两个之间摇摆,不知道每一次取值的时候到底取到了哪一个。实际上我们事先也不知道这个参数\(\tau\)等于多少,\(\tau\)也是要估计的参数之一。

为了记号简单我们令\(\tau_1=\tau, \tau_2=1-\tau\),而正态分布的密度函数为\(f(x\;|\;\mu ,\sigma ^{2})={\frac {1}{\sqrt {2\sigma ^{2}\pi }}}\;e^{-{\frac {(x-\mu )^{2}}{2\sigma ^{2}}}}\)

即便如此我们仍然可以使用基本的MLE方法进行参数估计,定义似然函数\(l(\tau,\mu_1,\sigma_1,\mu_2,\sigma_2)\)为

$$\sum\limits_{i=1}^m\ln(\tau_1*(f(x_i\;|\;\mu_1 ,\sigma_1 ^{2}) +\tau_2*(f(x_i\;|\;\mu_2 ,\sigma_2 ^{2}))$$

然后就利用MLE的做法去求极值。但是在这个问题中,我们注意到,这个函数\(\ln\)里边的部分有两个正态分布的密度函数,这样的话实际上计算起来就会很不方便。于是人们开始想如何能够避开这个复杂的计算。

第一步(E):如果这个混合模型中,每一次的输出我们知道它是从哪一个模型里边出来的就好了

试想一下如果每一次的的输出我们都明确的知道这个\(X\)是从\(X_1\)还是\(X_2\)里边出来的,那么混合模型就变成了两个模型分别的MLE,那问题就简单多了。所以第一个想法就是,如果我们不知道每一个\(X_i\)是从哪里来的,我们可不可以根据现有的数据来大概估计一下呢?

这个答案是肯定的,我们可以利用后验估计来对\(\tau\)进行估计。也就是

$$Q_1(i) = \frac{\tau_1f(x_i\;|\;\mu_1 ,\sigma_1 ^{2})}{\tau_1f(x_i\;|\;\mu_1 ,\sigma_1 ^{2}) + \tau_2f(x_i\;|\;\mu_2 ,\sigma_2 ^{2})}$$

$$Q_2(i) = \frac{\tau_2f(x_i\;|\;\mu_2 ,\sigma_2 ^{2})}{\tau_1f(x_i\;|\;\mu_1 ,\sigma_1 ^{2}) + \tau_2f(x_i\;|\;\mu_2 ,\sigma_2 ^{2})}$$

但是如果我们直接把这个带入到似然函数中来取代整体的\(\tau_1, \tau_2\)的话也仍然无法改变似然函数很复杂这个事实(其实可能更复杂了)所以貌似也没什么卵用。

关键还是要把两个不同的可能性分离出来放在不同的\(\ln\)里边

这里就要利用问题中所写的不等式了,原来的似然函数无论如何都很复杂,我们对它稍微改造一下:
$$\ln(Q_1(i)*\frac{\tau_1}{Q_1(i)}(f(x_i\;|\;\mu_1 ,\sigma_1 ^{2}) + Q_2(i)*\frac{\tau_2}{Q_2(i)}*(f(x_i\;|\;\mu_2 ,\sigma_2 ^{2})) \geq$$
$$Q_1(i)*\ln(\frac{\tau_1}{Q_1(i)}f(x_i\;|\;\mu_1 ,\sigma_1 ^{2})) + Q_2(i)*\ln(\frac{\tau_2}{Q_2(i)}f(x_i\;|\;\mu_2 ,\sigma_2 ^{2}))$$
左边是每一个观测值的似然函数,右边是拆开的似然函数。似然函数很复杂,但是右边这个可就简单多了啊!最大化似然函数不容易,那就来试试看最大化右边这个拆开的似然函数。右边这东西呢不是似然函数本尊,但是给似然函数提供了一个下界。所以最大化这个函数也不错。

第二步(M):最大化似然函数

对于这个简化了以后的似然函数我们使用常规的方法求它的最大值。于是得到参数组合\(\tau,\mu_1,\sigma_1,\mu_2,\sigma_2\)的一个更好的估计。然后返回第一步进行迭代。这个就是EM算法的基本想法和步骤。

总结一下

EM的想法:EM的主要想法是对隐含变量进行估计来简化计算过程。
EM的无奈:但是对隐含变量进行后验估计以后,仍然不能直接简化似然函数,所以借助琴生不等式来将似然函数分拆。
EM的巧合:琴生不等式的等号条件正好就是隐含变量的后验估计。所以分拆的下界函数最后与本来的似然函数同时收敛到最大值。

要回复问题请先登录注册

收藏七月在线,一起向大牛进阶

ctrl+D或command+D可以快速收藏哦~