EM 算法

EM 算法

如果概率模型的变量都是观测变量,那么给定数据,可以直接使用极大似然估计法。但当模型含有隐含变量时,不能简单的进行极大似然估计,需要EM算法。因此EM算法是对含有隐含变量的概率模型参数进行极大似然估计。

为了说明EM算法,首先介绍Jession不等式。

Jession inequality

如果 f 为凸函数 f′′(x)0 f ″ ( x ) ≥ 0 ,那么 f(E(x))E(f(x)) f ( E ( x ) ) ≤ E ( f ( x ) )

如果 f 为凹函数 f′′(x)0 f ″ ( x ) ≤ 0 ,那么 f(E(x))E(f(x)) f ( E ( x ) ) ≥ E ( f ( x ) )

f(E(x))=E(f(x)) f ( E ( x ) ) = E ( f ( x ) ) 的充要条件是随机变量x在概率1下取相同值。

下面来推导EM算法:

模型: P(x,z,θ) P ( x , z , θ )

仅观测到 x

目标:最大化极大似然函数 l(θ)=mi=1log(P(xi,θ))=mi=1log(ziP(xi,ziθ)) l ( θ ) = ∑ i = 1 m l o g ( P ( x i , θ ) ) = ∑ i = 1 m l o g ( ∑ z i P ( x i , z i θ ) )

上述问题的难点是log中含有加法。

基本精神 :初始化参数 θ θ ,建立一个对数似然函数的比较紧密的下界,猜测参数之后,找到这个函数取最大值的 θ θ ,并重复上述过程,直到收敛到函数的一个局部最优值(不保证达到全局最优解)。

l(θ)=ilog(P(xi,θ))=i=1log(ziP(xi,zi,θ)) l ( θ ) = ∑ i l o g ( P ( x i , θ ) ) = ∑ i = 1 l o g ( ∑ z i P ( x i , z i , θ ) )

=i=1log(ziQ(zi)P(xi,zi,θ))Q(zi) = ∑ i = 1 l o g ( ∑ z i Q ( z i ) P ( x i , z i , θ ) ) Q ( z i )

其中 Qi(zi) Q i ( z i ) zi z i 的一个概率分布

=ilogEziQ[P(xi,zi,θ))Q(zi)] = ∑ i l o g E z i ∈ Q [ P ( x i , z i , θ ) ) Q ( z i ) ]

根据Jession不等式,有

iEziQ[log(P(xi,zi,θ))Q(zi))] ≥ ∑ i E z i ∈ Q [ l o g ( P ( x i , z i , θ ) ) Q ( z i ) ) ]

=iziQ(zi)log(P(xi,zi,θ))Q(zi)) = ∑ i ∑ z i Q ( z i ) l o g ( P ( x i , z i , θ ) ) Q ( z i ) )

P(xi,zi,θ))Q(zi) P ( x i , z i , θ ) ) Q ( z i ) 以概率1取恒定值时,等号成立,因此,获得原始函数的一个紧密的下界。选取合适的 Q(zi) Q ( z i ) 使得等式成立。

根据 P(xi,zi,θ))Qi(zi)=constant P ( x i , z i , θ ) ) Q i ( z i ) = c o n s t a n t ,可以得到: Q(zi) Q ( z i ) 正比于 P(xi,zi,θ) P ( x i , z i , θ )

ziQ(zi)=1 ∑ z i Q ( z i ) = 1

根据上边两式可以得到: Q(zi)=P(xi,zi,θ)ziP(xi,zi,θ)=P(xi,zi,θ)P(xi,θ)=P(zi|xi,θ) Q ( z i ) = P ( x i , z i , θ ) ∑ z i P ( x i , z i , θ ) = P ( x i , z i , θ ) P ( x i , θ ) = P ( z i | x i , θ )

因此EM算法总结如下:

E-step:

计算 Qi(zi)=P(zi|xi,θ) Q i ( z i ) = P ( z i | x i , θ )

M-step:

最大化紧却下界函数:

θ=argmaxθiziQ(zi)log(P(xi,zi,θ))Q(zi)) θ = a r g m a x θ ∑ i ∑ z i Q ( z i ) l o g ( P ( x i , z i , θ ) ) Q ( z i ) )

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值