EM算法详解

EM Expectation-Maxium详细推导

参考:https://www.cnblogs.com/pinard/p/6912636.html

EM算法想要解决的问题

我们想要求解模型的未知参数,一般可以利用极大化模型的对数似然函数。但是有的问题不仅模型参数未知,而且还存在其他的未知的隐含数据,这个时候就不能直接利用极大化似然函数了。
这个时候,我们的思路是,对于两种未知变量(待求的模型参数和未知的隐含数据),我们首先猜想未知的隐含数据(E步),其次基于观测数据和猜测的隐含数据再次极大化似然函数(M步),求解出模型参数。然后由于隐含数据是猜测的,所以需要不断重新猜测,既是重复E步和M步。

EM算法的推导

关于Q的推导非常详细,综合了若干文章总结得到

对于m个样本的观察数据 x = ( x ( 1 ) , x ( 2 ) , . . . x ( m ) ) x = \left(x^{(1)},x^{(2)},...x^{(m)}\right) x=(x(1),x(2),...x(m)),求出模型的参数 θ \theta θ,似然函数可以写成如下:
θ = a r g max ⁡ θ ∑ i = 1 m log ⁡ P ( x ( i ) ; θ ) \theta=arg\mathop {\max }\limits_{\theta}\sum^{m}_{i=1}\log P(x^{(i)};\theta) θ=argθmaxi=1mlogP(x(i);θ)
上面的式子由于含有两个未知参量( z z z θ \theta θ),所以没办法求出 θ \theta θ,因此进行了如下缩放:
∑ i = 1 m log ⁡ ∑ z ( i ) P ( x i , z i ; θ ) = ∑ i = 1 m log ⁡ ∑ z ( i ) Q i ( z ( i ) ) P ( x i , z i ; θ ) Q i ( z ( i ) ) ≥ ∑ i = 1 m ∑ z ( i ) Q i ( z ( i ) ) log ⁡ P ( x i , z i ; θ ) Q i ( z ( i ) ) \sum_{i=1}^m \log \sum_{z^{(i)}} P(x^{i}, z^{i};\theta) = \sum_{i=1}^m\log \sum_{z^{(i)}}Q_i(z^{(i)})\frac{P(x^{i}, z^{i};\theta)}{Q_i(z^{(i)})}\\ \ge \sum_{i=1}^m \sum_{z^{(i)}}Q_i(z^{(i)})\log\frac{P(x^{i}, z^{i};\theta)}{Q_i(z^{(i)})} i=1mlogz(i)P(xi,zi;θ)=i=1mlogz(i)Qi(z(i))Qi(z(i))P(xi,zi;θ)i=1mz(i)Qi(z(i))logQi(z(i))P(xi,zi;θ)
两个点:1、引入了新的未知分布 Q i ( z ( i ) ) Q_i(z^{(i)}) Qi(z(i)) 2、jensen不等式。
log ⁡ ∑ j λ j y j ≥ ∑ j λ j log ⁡ y j , λ j ≥ 0 , ∑ j λ j = 1 \log \sum_j \lambda_j y_j \ge \sum_j \lambda_j\log y_j,\lambda_j \ge 0,\sum_j \lambda_j = 1 logjλjyjjλjlogyj,λj0,jλj=1
f ( E ( x ) ) ≥ E ( f ( x ) ) 如 果 发 f ( x ) 是 凸 函 数 ( 原 博 客 应 该 有 误 ) f(E(x)) \ge E(f(x))\quad 如果发f(x)是凸函数(原博客应该有误) f(E(x))E(f(x))f(x)
从而jenson不等式取得等号的条件是:
P ( x i , z i ; θ ) Q i ( z ( i ) ) = c c 是 常 数 公 式 1 \frac{P(x^{i}, z^{i};\theta)}{Q_i(z^{(i)})}=c\quad c 是常数\quad 公式1 Qi(z(i))P(xi,zi;θ)=cc1
由于 Q i ( z ( i ) ) Q_i(z^{(i)}) Qi(z(i))是一个分布,所以满足:
∑ z Q i ( z ( i ) ) = 1 \sum_z Q_i(z^{(i)}) = 1 zQi(z(i))=1
∑ z ( i ) Q i ( z ( i ) ) P ( x i , z i ; θ ) Q i ( z ( i ) ) \sum_{z^{(i)} }Q_i(z^{(i)})\frac{P(x^{i}, z^{i};\theta)}{Q_i(z^{(i)})} z(i)Qi(z(i))Qi(z(i))P(xi,zi;θ)正是 P ( x i , z i ; θ ) Q i ( z ( i ) ) \frac{P(x^{i}, z^{i};\theta)}{Q_i(z^{(i)})} Qi(z(i))P(xi,zi;θ)的期望,为什么这样说呢。首先 Q i ( z ( i ) ) Q_i(z^{(i)}) Qi(z(i))是一个我们假设的隐含变量z的一个分布,所以满足上述相加等于1的条件(因为他是概率密度)。其次由概率论可知:
E ( Y ) = E ( g ( x ) ) = ∑ g ( x k ) p ( x k ) E(Y)=E(g(x))=\sum g(x_k)p(x_k) E(Y)=E(g(x))=g(xk)p(xk)
从而我们的Q就是上述的p,我们的 P ( x i , z i ; θ ) Q i ( z ( i ) ) \frac{P(x^{i}, z^{i};\theta)}{Q_i(z^{(i)})} Qi(z(i))P(xi,zi;θ)就是上述的 g ( x k ) g(x_k) g(xk),也即是随机变量 z i z_i zi的函数。
下面我们继续推到:
由于 P ( x i , z i ; θ ) Q i ( z ( i ) ) = c c 是 常 数 \frac{P(x^{i}, z^{i};\theta)}{Q_i(z^{(i)})}=c\quad c 是常数 Qi(z(i))P(xi,zi;θ)=cc,那么 P ( x i , z i ; θ ) = c ∗ Q i ( z ( i ) ) P(x^{i}, z^{i};\theta) = c*{Q_i(z^{(i)})} P(xi,zi;θ)=cQi(z(i))
,从而有 ∑ P ( x i , z i ; θ ) = ∑ c ∗ Q i ( z ( i ) ) = c ∗ ∑ Q i ( z ( i ) ) = c 公 式 2 \sum P(x^{i}, z^{i};\theta) = \sum c*Q_i(z^{(i)}) = c*\sum Q_i(z^{(i)}) = c\quad 公式2 P(xi,zi;θ)=cQi(z(i))=cQi(z(i))=c2
然后我们就得到了一个重要的公式:
∑ P ( x i , z i ; θ ) = c 注 : 这 是 在 假 设 j e n s e n 不 等 式 等 号 成 立 的 条 件 下 \sum P(x^{i}, z^{i};\theta) = c \quad 注:这是在假设jensen不等式等号成立的条件下 P(xi,zi;θ)=cjensen
从而我们有以下公式:
Q i ( z ( i ) ) = P ( x ( i ) , z ( i ) ; θ ) c = P ( x ( i ) , z ( i ) ; θ ) ∑ z P ( x ( i ) , z ( i ) ; θ ) = P ( x ( i ) , z ( i ) ; θ ) P ( x ( i ) , ; θ ) = P ( z ( i ) ∣ x ( i ) ; θ ) b y 公 式 1 、 2 Q_i(z^{(i)}) = \frac{P(x^{(i)},z^{(i)};\theta)}{c}= \frac{P(x^{(i)},z^{(i)};\theta)}{\sum_z P(x^{(i)},z^{(i)};\theta)} = \frac{P(x^{(i)},z^{(i)};\theta)}{P(x^{(i)},;\theta)} = P(z^{(i)}|x^{(i)};\theta)\quad by 公式1、2 Qi(z(i))=cP(x(i),z(i);θ)=zP(x(i),z(i);θ)P(x(i),z(i);θ)=P(x(i),;θ)P(x(i),z(i);θ)=P(z(i)x(i);θ)by12

所以一个重要结论就是Q就是z的后验概率(假设jensen不等式成立的条件下),至此Q就可以选择了,E步也就完成了。M步就是最大化似然函数了。

所以整体流程可以整理如下:
1、根据参数 θ \theta θ和观察变量计算隐藏变量z的后验概率:
Q i ( z ( i ) ) = P ( z ( i ) ∣ x ( i ) ; θ ) Q_i(z^{(i)}) = P(z^{(i)}|x^{(i)};\theta) Qi(z(i))=P(z(i)x(i);θ)
2、最大化似然函数,更新 θ \theta θ
θ = a r g max ⁡ θ ∑ i = 1 m ∑ z ( i ) Q i ( z ( i ) ) log ⁡ P ( x i , z i ; θ ) Q i ( z ( i ) ) \theta = arg\mathop {\max}\limits_{\theta}\sum_{i=1}^m \sum_{z^{(i)}}Q_i(z^{(i)})\log\frac{P(x^{i}, z^{i};\theta)}{Q_i(z^{(i)})} θ=argθmaxi=1mz(i)Qi(z(i))logQi(z(i))P(xi,zi;θ)
也就是
3、重复上面的两个步骤

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值