【2019.11.27】EM算法详细推导

EM算法

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

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

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

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

EM算法的数值解法

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

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

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

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

引入:Jensen不等式
l o g ( E ( Y ) ) ≥ E ( l o g ( y ) ) log(E(Y)) \geq E(log(y)) log(E(Y))E(log(y))

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

log ⁡ ( E ( P ( x i , z j ; θ ) Q i ( z j ) ) ) ≥ E ( log ⁡ ( P ( x i , z j ; θ ) Q i ( z j ) ) ) = ∑ j [ Q i ( z j ) log ⁡ ( P ( x i , z j ; θ ) Q i ( z j ) ) ] \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] log(E(Qi(zj)P(xi,zj;θ)))E(log(Qi(zj)P(xi,zj;θ)))=j[Qi(zj)log(Qi(zj)P(xi,zj;θ))]

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

l n L ( θ ) = ∑ i log ⁡ ∑ j P ( x i , z j ; θ ) = ∑ i log ⁡ ∑ j Q i ( z j ) P ( x i , z j ; θ ) Q i ( z j ) ≥ ∑ i { ∑ j [ Q i ( z j ) log ⁡ ( P ( x i , z j ; θ ) Q i ( z j ) ) ] } (1) lnL(\theta) = \sum_i \log\sum_jP(x^i,z^j;\theta)\\ =\sum_i \log\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) \log\left(\frac{P(x^i,z^j;\theta)}{Q_i(z^j)}\right) \right]\right\} \tag{1} lnL(θ)=ilogjP(xi,zj;θ)=ilogjQi(zj)Qi(zj)P(xi,zj;θ)i{j[Qi(zj)log(Qi(zj)P(xi,zj;θ))]}(1)

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

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

即,当

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

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

下面来通过 式(2) 求位置的概率分布 Q i Q_i Qi

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

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

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

将上式代回 式(2),可得
Q i ( z j ) = P ( x i , z j ; θ ) ∑ j P ( x i , z j ; θ ) = P ( x i , z j ; θ ) P ( x i ; θ ) = P ( z j ∣ x i ; θ ) 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) Qi(zj)=jP(xi,zj;θ)P(xi,zj;θ)=P(xi;θ)P(xi,zj;θ)=P(zjxi;θ)

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

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

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

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

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

原优化目标为:
θ , z = a r g m a x θ , z l n L ( θ , z ) \theta,z = argmax_{\theta,z} lnL(\theta,z) θ,z=argmaxθ,zlnL(θ,z)

现优化目标(M步)变成了:
θ = a r g m a x θ ∑ i ∑ j Q i ( z j ) l o g P ( x i , z j ; θ ) Q i ( z j ) \theta = argmax_{\theta}\sum_i\sum_jQ_i(z^j)log\frac{P(x^i,z^j;\theta)}{Q_i(z^j)} θ=argmaxθijQi(zj)logQi(zj)P(xi,zj;θ)

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

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

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

参考文献

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值