【2019.11.27】EM算法详细推导

EM算法

无隐变量下,极大似然函数为:
L(θ)=iP(xi;θ) L(\theta) = \prod_iP\left(x^{i};\theta\right)

含隐变量时候,变为:
L(θ,z)=ijP(xi,zi;θ)L(\theta,z)=\prod_i\sum_jP(x^{i},z^{i};\theta)

取对数似然:
lnL(θ,z)=i[log(jP(xi,zj;θ))] lnL(\theta,z)=\sum_i\left[log\left(\sum_jP(x^{i},z^{j};\theta)\right)\right]

其中,极大化该似然函数的主要困难是包含未观测数据和包含和的对数,因此不寻找其解析解,转为寻找其数值解。

EM算法的数值解法

思想:寻找一个θ\theta ',使L(θ)>L(θ)L(\theta ')>L(\theta),使其逐步达到极大值

设对于每个x_i,存在一个未知概率分布函数Qi(z(j))Q_i(z^{(j)}),其满足概率分布函数的特性,即:
jQi(zj)=1Qi(zj)[0,1] \sum_jQ_i(z^{j})=1\\ Q_i(z^j) \in [0,1]

引入:随机变量YY的期望E(Y)E(Y)
E(Y)=yY(P(y)y) E(Y) = \sum_{y \in Y} \left(P(y)*y\right)

其中,y是随机变量Y的一个取值,P(y)是这个取值发生的概率。

引入:Jensen不等式
log(E(Y))E(log(y))log(E(Y)) \geq E(log(y))

此时,令P(xi,zj;θ)Qi(zj)\frac{P(x^i,z^j;\theta)}{Q_i(z^j)}为分布QiQ_i的一个样本,Qi(zj)Q_i(z^j)为这个样本的概率,可以得到

log(E(P(xi,zj;θ)Qi(zj)))E(log(P(xi,zj;θ)Qi(zj)))=j[Qi(zj)log(P(xi,zj;θ)Qi(zj))] log\left(E\left( \frac{P(x^i,z^j;\theta)}{Q_i(z^j)} \right)\right) \geq E\left(log\left(\frac{P(x^i,z^j;\theta)}{Q_i(z^j)} \right)\right) \\= \sum_j\left[Q_i(z^j)log\left(\frac{P(x^i,z^j;\theta)}{Q_i(z^j)}\right)\right]

上面的推导过程结束后,可以直接应用于含隐函数的极大似然函数:

lnL(θ)=ilogjP(xi,zj;θ)=ilogjQi(zj)P(xi,zj;θ)Qi(zj)i{j[Qi(zj)P(xi,zj;θ)Qi(zj)]}(1) lnL(\theta) = \sum_ilog\sum_jP(x^i,z^j;\theta)\\ =\sum_ilog\sum_jQ_i(z^j)\frac{P(x^i,z^j;\theta)}{Q_i(z^j)}\\ \geq\sum_i\left\{\sum_j\left[ Q_i(z^j) \frac{P(x^i,z^j;\theta)}{Q_i(z^j)} \right]\right\} \tag{1}

公式 (1) 实际上构建了对数似然函数的下界,而这个下界是存在优化手段的,因此通过优化该下界,我们可以让最后的L(θ)L(\theta)不断增大。而在什么情况下优化这个下界,一定可以增大原本的L(θ)L(\theta)呢?答案就是等式成立的时候。

引入:Jensen不等式成立条件:当随机变量是常数的时候,Jensen不等式取等号。

即,当

P(xi,zj;θ)Qi(zj)=c(2) \frac{P(x^i,z^j;\theta)}{Q_i(z^j)} = c \tag{2}

时,上式的推导可以取等号。

下面来通过 式(2) 求位置的概率分布 QiQ_i

P(xi,zj;θ)=cQi(zj) P(x^i,z^j;\theta) = cQ_i(z^j)\\
同时对所有的隐变量z(用 j 来遍历) 求和,另外注意jQi(zj)=1\sum_jQ_i(z^{j})=1,得:

jP(xi,zj;θ)=cjQi(zj)=c \sum_jP(x^i,z^j;\theta) = c\sum_jQ_i(z^j) = c

所以c=jP(xi,zj;θ)c=\sum_jP(x^i,z^j;\theta),注意该式其实是求xx的边缘分布,因此
c=jP(xi,zj;θ)=P(xi;θ) c=\sum_jP(x^i,z^j;\theta)=P(x^i;\theta)

将上式代回 式(2),可得
Qi(zj)=P(xi,zj;θ)jP(xi,zj;θ)=P(xi,zj;θ)P(xi;θ)=P(zjxi;θ) Q_i(z^j) = \frac{P(x^i,z^j;\theta)}{\sum_jP(x^i,z^j;\theta)} = \frac{P(x^i,z^j;\theta)}{P(x^i;\theta)} \\ = P(z^j|x^i;\theta)

可以得到QiQ_i最终是一个条件概率,也即在上式中取Qi(zj)=P(zjxi;θ)Q_i(z^j) = P(z^{j}|x^i;\theta)时,我们就找到了极大似然函数的下界。

同时注意到QQ函数拥有明确的含义:在由参数θ\theta确定的概率分布下的xix^izjz^j的条件概率。如果有看过 人人都懂EM算法 这篇博客的例子的同学,应该能够明白其含义

对于两百个男女混搭的同学,先随便假设一个参数,然后判断在这个参数条件下某个同学各自属于男女的概率,然后再各自使用极大似然估计优化参数。

上面一段话中的加粗部份,就是求QiQ_i函数所做的事情,即EM算法中的E步

在求解完成后,我们来进行下一步,M步

原优化目标为:
θ,z=argmaxθ,zlnL(θ,z) \theta,z = argmax_{\theta,z} lnL(\theta,z)

现优化目标(M步)变成了:
θ=argmaxθijQi(zj)logP(xi,zj;θ)Qi(zj) \theta = argmax_{\theta}\sum_i\sum_jQ_i(z^j)log\frac{P(x^i,z^j;\theta)}{Q_i(z^j)}

这一步的优化如何完成,此时就是用一些数值解法了,如梯度下降法,拟牛顿法等,这里要提的是,EM算法那只能求得极大值,无法求得最大值。

《统计学习方法》中,李航的公式貌似有一些错误,另外很多博客上其所用的符号感觉并不友好,相比较而言,使用 ";“来表示其后的参数是相关参数比用竖杠”|"表示更好,因为竖杠很容易会被当做条件概率,cs229中的笔记也是这样表示的。

EM算法对我而言,一方面是体会到了一种思想,另一方面则是对数学期望的彻底理解。

参考文献

李航《统计学习方法》
人人都懂EM算法
cs229-note8

发布了133 篇原创文章 · 获赞 77 · 访问量 12万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 精致技术 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览