二十三.期望最大化(EM)算法的数学原理

1.Jesen不等式

如果 f ( x ) f(x) f(x)是凸函数, x x x是随机变量,则:
E ( f ( x ) ) ⩾ f ( E ( x ) ) E(f(x))\geqslant f(E(x)) E(f(x))f(E(x))
特别的,当 f ( x ) f(x) f(x)为严格凸函数, x x x为常量时,等号成立。

2.最大似然估计

通常在求概率分布时,已知条件(参数 θ \theta θ)推算结果。
最大似然估计是已知结果,估计使这个结果成立的可能性最大的条件(参数 θ \theta θ)。
最大似然估计的一般步骤为下:
(1)写出似然函数。
(2)为方便计算,似然函数取对数。
(3)求对数似然函数对各个参数的导数,并令结果为0,得似然方程组。
(4)解似然方程组得结果。

3.EM算法简介

EM算法用来解决含有无法观测的隐变量的概率模型的求参数问题。
例如,男女的身高属于不同的正态分布,抽取一部分男生,可以通过极大似然估计求得男生的正态分布的均值和方差,从而得到男生身高的概率分布公式。
如果抽取的人数中既有男生又有女生,并不知道每个样本是男生还是女生,也就是说样本来自于哪个分布并不清楚,此时,就需要EM算法来进行参数估计。
EM算法给分布的参数假设一个初始值,然后求隐变量的期望。再通过隐变量的期望,用最大似然估计重新求分布的参数,再用其求隐变量的期望,如此反复。

4.EM算法推导

通常,在求概率分布的参数 θ \theta θ时,使用极大似然估计:
θ = arg ⁡ max ⁡ θ ∑ i log ⁡ P ( x i ; θ ) \theta=\arg\max_{\theta }\sum_{i}\log P(x^{i};\theta ) θ=argθmaxilogP(xi;θ)
含有因变量 z z z时,需要求出每个 x i x^{i} xi关于所有 z i z^{i} zi的边缘概率分布,然后再进行估计:
θ = arg ⁡ max ⁡ θ ∑ i log ⁡ ∑ z i P ( x i , z i ; θ ) \theta=\arg\max_{\theta }\sum_{i}\log \sum_{z^{i}}P(x^{i},z^{i};\theta ) θ=argθmaxilogziP(xi,zi;θ)
上式的求导过程过于复杂,可以使用Jenson不等式简化计算。构造有关 z i z^{i} zi的分布 Q ( z ) Q(z) Q(z),使:
∑ z i Q ( z i ) = 1 \sum_{z^{i}}Q(z^{i})=1 ziQ(zi)=1
Q ( z ) Q(z) Q(z)带入到极大似然估计中,可以得到:
∑ i log ⁡ ∑ z i P ( x i , z i ; θ ) = ∑ i log ⁡ ∑ z i Q ( z i ) P ( x i , z i ; θ ) Q ( z i ) \sum_{i}\log \sum_{z^{i}}P(x^{i},z^{i};\theta )=\sum_{i}\log \sum_{z^{i}}Q(z^{i})\frac{P(x^{i},z^{i};\theta )}{Q(z^{i})} ilogziP(xi,zi;θ)=ilogziQ(zi)Q(zi)P(xi,zi;θ)
令:
f ( y ) = log ⁡ P ( x i , z i ; θ ) Q ( z i ) f(y)=\log\frac{P(x^{i},z^{i};\theta )}{Q(z^{i})} f(y)=logQ(zi)P(xi,zi;θ)
则:
E ( y ) = ∑ z i Q ( z i ) P ( x i , z i ; θ ) Q ( z i ) f ( E ( y ) ) = log ⁡ ∑ z i Q ( z i ) P ( x i , z i ; θ ) Q ( z i ) E ( f ( y ) ) = ∑ z i Q ( z i ) log ⁡ P ( x i , z i ; θ ) Q ( z i ) E(y)=\sum_{z^{i}}Q(z^{i})\frac{P(x^{i},z^{i};\theta )}{Q(z^{i})}\\ f(E(y))=\log\sum_{z^{i}}Q(z^{i})\frac{P(x^{i},z^{i};\theta )}{Q(z^{i})}\\ E(f(y))=\sum_{z^{i}}Q(z^{i})\log\frac{P(x^{i},z^{i};\theta )}{Q(z^{i})} E(y)=ziQ(zi)Q(zi)P(xi,zi;θ)f(E(y))=logziQ(zi)Q(zi)P(xi,zi;θ)E(f(y))=ziQ(zi)logQ(zi)P(xi,zi;θ)
由于:
f ′ ′ ( y ) = − 1 y 2 < 0 f^{''}(y)=-\frac{1}{y^{2}}<0 f(y)=y21<0
f ( y ) f(y) f(y)是凹函数,根据Jenson不等式:
f ( E ( y ) ) ⩾ E ( f ( y ) ) ⇒ ∑ i log ⁡ ∑ z i Q ( z i ) P ( x i , z i ; θ ) Q ( z i ) ⩾ ∑ i ∑ z i Q ( z i ) log ⁡ P ( x i , z i ; θ ) Q ( z i ) f(E(y))\geqslant E(f(y))\\ \Rightarrow \sum_{i}\log\sum_{z^{i}}Q(z^{i})\frac{P(x^{i},z^{i};\theta )}{Q(z^{i})}\geqslant \sum_{i}\sum_{z^{i}}Q(z^{i})\log\frac{P(x^{i},z^{i};\theta )}{Q(z^{i})} f(E(y))E(f(y))ilogziQ(zi)Q(zi)P(xi,zi;θ)iziQ(zi)logQ(zi)P(xi,zi;θ)
令以上不等式中左式为 L L L,右式为 J J J,EM算法的目的是求 L L L最大化时的参数。由于直接求 L L L较难,而已知 L ⩾ J L\geqslant J LJ,因此,可以通过最大化 J J J来最大化 L L L。具体做法为:
a.首先选择一个初始参数 θ \theta θ,调整 Q ( z ) Q(z) Q(z),使 L = J L=J L=J(E步)。
b.再固定 Q ( z ) Q(z) Q(z),调整 θ \theta θ,使 J J J最大化。
c.重复以上两步知道收敛。
在Jeson不等式中,要使 L = J L=J L=J(即 f ( E ( y ) ) = E ( f ( y ) ) f(E(y))=E(f(y)) f(E(y))=E(f(y)))的条件是 y y y为常量,即:
y = P ( x i , z i ; θ ) Q ( z i ) = c ⇒ P ( x i , z i ; θ ) = c Q ( z i ) ⇒ Q ( z i ) = P ( x i , z i ; θ ) c y=\frac{P(x^{i},z^{i};\theta )}{Q(z^{i})}=c\\ \Rightarrow P(x^{i},z^{i};\theta )=cQ(z^{i})\\ \Rightarrow Q(z^{i})=\frac{P(x^{i},z^{i};\theta )}{c}\\ y=Q(zi)P(xi,zi;θ)=cP(xi,zi;θ)=cQ(zi)Q(zi)=cP(xi,zi;θ)
又:
∑ z i Q ( z i ) = 1 ⇒ ∑ z i P ( x i , z i ; θ ) = c ∑ z i Q ( z i ) = c ⇒ c = P ( x i ; θ ) \sum_{z^{i}}Q(z^{i})=1\\ \Rightarrow \sum_{z^{i}}P(x^{i},z^{i};\theta )=c\sum_{z^{i}}Q(z^{i})=c\\ \Rightarrow c=P(x^{i};\theta ) ziQ(zi)=1ziP(xi,zi;θ)=cziQ(zi)=cc=P(xi;θ)
综上:
Q ( z i ) = P ( x i , z i ; θ ) c = P ( x i , z i ; θ ) P ( x i ; θ ) = P ( z i ∣ x i ; θ ) Q(z^{i})=\frac{P(x^{i},z^{i};\theta )}{c}=\frac{P(x^{i},z^{i};\theta )}{P(x^{i};\theta )}=P(z^{i}|x^{i};\theta ) Q(zi)=cP(xi,zi;θ)=P(xi;θ)P(xi,zi;θ)=P(zixi;θ)
可得隐变量 z i z^{i} zi的分布 Q ( z i ) Q(z^{i}) Q(zi),E步完成。
M步的过程为极大化 J J J:
∑ i ∑ z i Q ( z i ) log ⁡ P ( x i , z i ; θ ) Q ( z i ) = ∑ i ∑ z i Q ( z i ) log ⁡ P ( x i , z i ; θ ) − ∑ i ∑ z i Q ( z i ) log ⁡ Q ( z i ) \sum_{i}\sum_{z^{i}}Q(z^{i})\log\frac{P(x^{i},z^{i};\theta )}{Q(z^{i})}=\sum_{i}\sum_{z^{i}}Q(z^{i})\log P(x^{i},z^{i};\theta )-\sum_{i}\sum_{z^{i}}Q(z^{i})\log Q(z^{i}) iziQ(zi)logQ(zi)P(xi,zi;θ)=iziQ(zi)logP(xi,zi;θ)iziQ(zi)logQ(zi)
由于此时 Q ( z i ) Q(z^{i}) Q(zi),则减号后边为常量,可以省略,因此,极大化 J J J等价于极大化下式:
∑ i ∑ z i Q ( z i ) log ⁡ P ( x i , z i ; θ ) \sum_{i}\sum_{z^{i}}Q(z^{i})\log P(x^{i},z^{i};\theta ) iziQ(zi)logP(xi,zi;θ)

5.EM算法流程

输入:数据集,迭代最大次数 k k k
输出:参数 θ \theta θ
(1)从数据集中求出联合概率分布 P ( x , z ; θ ) P(x,z;\theta) P(x,z;θ),条件概率 P ( z ∣ x ; θ ) P(z|x;\theta) P(zx;θ)
(2)初始化参数 θ \theta θ
(3)分两步
E步:
计算隐变量的概率分布:
Q ( z i ) = P ( z i ∣ x i ; θ ) Q(z^{i})=P(z^{i}|x^{i};\theta ) Q(zi)=P(zixi;θ)
得到极大似然估计公式:
∑ i ∑ z i Q ( z i ) log ⁡ P ( x i , z i ; θ ) \sum_{i}\sum_{z^{i}}Q(z^{i})\log P(x^{i},z^{i};\theta ) iziQ(zi)logP(xi,zi;θ)
M步:
通过极大似然估计估计下一轮的迭代值:
θ n e x t = arg ⁡ min ⁡ θ ∑ i ∑ z i Q ( z i ) log ⁡ P ( x i , z i ; θ ) \theta ^{next}=\arg\min_{\theta }\sum_{i}\sum_{z^{i}}Q(z^{i})\log P(x^{i},z^{i};\theta ) θnext=argθminiziQ(zi)logP(xi,zi;θ)
(4)重复(3)知道收敛或者最大迭代次数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值