EM算法的原理
我反思了一下最近的文章,发现,我好像一直逻辑很混乱,所以我决定用,因果关联的方法写一写这样的问题。
解决的问题:在具有隐变量的情况下,计算概率函数中的未知参数。
隐变量通常参与过程,而不是独立作为因出现, P ( y ; Θ ) P(y;Θ) P(y;Θ)作为优化函数,并不存在Z这样的隐变量。但是引入Z可以极大的加快优化,作用相当于作了一条辅助线。
基本思路:
(1)初始化隐变量,在隐变量知道的情况下,函数变得很好解决了,计算出函数的未知参数 Θ 1 Θ_1 Θ1。
注意:有的问题可能没有隐变量也能求解,但是将某些问题抽象成隐变量,就像添加了一些约束,在知道隐变量的情况下,能几乎直接的得出结论,EM算法的本质是抽象问题过程中的某些结果,加快优化。
如常见的3硬币问题,将硬币A的结果作为隐变量,或者在200人中选男孩女孩的混合高斯分布,将样本中的结果抽象为隐变量。在某些问题中,EM求得的解就是最优解,可以极大的加快速度。
(2)这个时候未知参数变得已知了,那么列出模型的方程概率,求出关于 Θ 1 Θ_1 Θ1的期望。
(3)在已有的观测数据情况下,对未知的隐变量进行最大释然估计,更新隐变量。
(4)当隐变量更新得差不多了, Θ n Θ_n Θn不再变化了,就可以得出结果了。
这当中有很多的问题,
(1)初始化的条件,求出未知参数,怎么求。
(2)基本没问题
(3)最大似然估计无法计算出隐变量怎么办
(4)函数如果不收敛怎么办,求到的解是不是最优解。
输入:观测数据Y,隐变量Z,联合分布 P ( Y , Z ; Θ ) P(Y,Z;Θ) P(Y,Z;Θ),条件分布 P ( Z ∣ Y ; Θ ) P(Z|Y;Θ) P(Z∣Y;Θ);
输出: Θ Θ Θ
(1)初始化隐变量Z,开始迭代。
(2)E:选择 Θ 0 Θ^0 Θ0
Q ( Θ , Θ i ) = E z [ l o g P ( Y , Z ; Θ ) ∣ Y ; Θ i ] = ∑ Z l o g P ( Y , Z ; Θ ) ⋅ P ( Z ∣ Y ; Θ i ) Q(Θ,Θ^i) = E_z[logP(Y,Z;Θ)|Y;Θ^i] \\ =\sum_ZlogP(Y,Z;Θ)·P(Z|Y;Θ^i) Q(Θ,Θi)=Ez[logP(Y,Z;Θ)∣Y;Θi]=Z∑logP(Y,Z;Θ)⋅P(Z∣Y;Θi)
其中 P ( Z ∣ Y ; Θ i ) P(Z|Y;Θ^i) P(Z∣Y;Θi)是在 Y , Θ i Y,Θ^i Y,Θi条件下的观测量, P ( Z ∣ Y ; Θ i ) P(Z|Y;Θ^i) P(Z∣Y;Θi)已知。
(3)M步:
Q ( Θ , Θ i ) = E z [ l o g P ( Y , Z ; Θ ) ∣ Y , Θ i ] Q(Θ,Θ^i) = E_z[logP(Y,Z;Θ)|Y,Θ^i] Q(Θ,Θi)=Ez[logP(Y,Z;Θ)∣Y,Θi]
这是一个求 Θ Θ Θ极大化的函数即,求导得到最大值。
(4)当隐变量更新得差不多了, Θ n Θ_n Θn不再变化了,就可以得出结果了。
三硬币问题
参考统计学习方法,Z为隐变量,表示掷硬币A出现的结果,该变量只有两个取值0,1 。
三硬币模型可以写作:
P ( y ; Θ ) = ∑ Z P ( y , z ; Θ ) = ∑ Z P ( z ; Θ ) P ( y ∣ z ; Θ ) = π p y ( 1 − p ) 1 − y + ( 1 − π ) q y ( 1 − q ) 1 − y P(y;Θ) = \sum_Z P(y,z;Θ) \\ =\sum_ZP(z;Θ)P(y|z;Θ) \\ =πp^y(1-p)^{1-y} +(1-π)q^y(1-q)^{1-y} P(y;Θ)=Z∑P(y,z;Θ)=Z∑P(z;Θ)P(y∣z;Θ)=πpy(1−p)1−y+(1−π)qy(1−q)1−y
在这个公式中,Z没有体现。
E Z ∣ Y , θ ( i ) [ l o g ( P ( Y , Z ; θ ) ) ] = ∑ j = 1 n ∑ z j [ p ( z j ∣ y j ; θ ( i ) ) ⋅ l o g ( p ( y j , z j ; θ ) ) ] = ∑ j = 1 n ∑ z j [ p ( z j ∣ y j ; θ ( i ) ) ⋅ l o g ( p ( y j , z j ; θ ) ) ] = ∑ j = 1 n [ p ( z j = 1 ∣ y j ; θ ( i ) ) ⋅ l o g ( p ( y j , z j = 1 ; θ ) ) ] + [ p ( z j = 0 ∣ y j ; θ ( i ) ) ⋅ l o g ( p ( y j , z j =