机器学习-EM算法

1. EM算法

  • 1.1 作用
    EM算法是用来求解带隐藏因子的概率模型的极大似然估计,通过杰森不等式将包含求和的对数似然函数转化为乘积形式,从而得到一个简便表达式。如果不采用EM算法,则此类问题只能采用梯度上升法等迭代法求解,比较麻烦

  • 1.2 具体步骤
    (1)注意是否包含未能观测到的隐藏变量,若无,则可以将概率模型表示为完全形式的联合概率分布(如高斯判别分析),接下来可以使用常规的极大似然估计求解参数;若包含,则将概率模型表示为求和形式的 p ( x ; θ ) p(x;\theta) p(x;θ),使用EM算法求解参数
    (2)通过杰森不等式 f ( E [ X ] ) ≥ E [ f ( X ) ] ( f 为 凹 函 数 ) f(E[X])\geq E[f(X)](f为凹函数) f(E[X])E[f(X)](f),将求和形式的对数似然函数转化为连乘形式,得到下边界似然函数 J ( θ ) J(\theta) J(θ)

    一般求和形式的对数似然函数为
    p ( x , z ; θ ) = ∑ i = 1 m log ⁡ p ( x ; θ ) = ∑ i = 1 m log ⁡ ∑ j = 1 k p ( z ( i ) = j ) p ( x ( i ) ∣ z ( i ) = j ; θ ) p(x,z;\theta)=\sum_{i=1}^m\log p(x;\theta)=\sum_{i=1}^m\log \sum_{j=1}^kp(z^{(i)}=j)p(x^{(i)}|z^{(i)}=j;\theta) p(x,z;θ)=i=1mlogp(x;θ)=i=1mlogj=1kp(z(i)=j)p(x(i)z(i)=j;θ)

    大多数情况下, p ( x , z ; θ ) p(x,z;\theta) p(x,z;θ)函数是凹函数
    p ( x , z ; θ ) ≥ ) = ∑ i = 1 m ∑ j = 1 k Q ( z ( i ) ) log ⁡ p ( z ( i ) = j ) p ( x ( i ) ∣ z ( i ) = j ; θ ) Q ( z ( i ) ) p(x,z;\theta)\geq)=\sum_{i=1}^m \sum_{j=1}^kQ(z^{(i)})\log \frac{p(z^{(i)}=j)p(x^{(i)}|z^{(i)}=j;\theta)}{Q(z^{(i)})} p(x,z;θ))=i=1mj=1kQ(z(i))logQ(z(i))p(z(i)=j)p(x(i)z(i)=j;θ)

    此时右边得到的就是原似然函数的下边界似然函数
    Q ( z ( i ) ) = p ( z ( i ) = j ∣ x ( i ) ; θ ) Q(z^{(i)})=p(z^{(i)}=j|x^{(i)};\theta) Q(z(i))=p(z(i)=jx(i);θ),此时原函数等于下边界函数
    (3)对下边界似然函数求极大值,得到参数的新值 θ i + 1 \theta^{i+1} θi+1
    a r g m a x   θ : ∑ i = 1 m ∑ j = 1 k p ( z ( i ) = j ∣ x ( i ) ; θ i ) log ⁡ p ( z ( i ) = j ) p ( x ( i ) ∣ z ( i ) = j ; θ ) p ( z ( i ) = j ∣ x ( i ) ; θ i ) argmax \space \theta:\sum_{i=1}^m \sum_{j=1}^kp(z^{(i)}=j|x^{(i)};\theta^i)\log \frac{p(z^{(i)}=j)p(x^{(i)}|z^{(i)}=j;\theta)}{p(z^{(i)}=j|x^{(i)};\theta^i)} argmax θ:i=1mj=1kp(z(i)=jx(i);θi)logp(z(i)=jx(i);θi)p(z(i)=j)p(x(i)z(i)=j;θ)

你可能感兴趣的:(每日总结,人工智能)