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=1∑mlogP(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=1∑mlogz(i)∑P(xi,zi;θ)=i=1∑mlogz(i)∑Qi(z(i))Qi(z(i))P(xi,zi;θ)≥i=1∑mz(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∑λjyj≥j∑λjlogyj,λj≥0,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;θ)=cc是常数公式1
由于
Q
i
(
z
(
i
)
)
Q_i(z^{(i)})
Qi(z(i))是一个分布,所以满足:
∑
z
Q
i
(
z
(
i
)
)
=
1
\sum_z Q_i(z^{(i)}) = 1
z∑Qi(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;θ)=c∗Qi(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;θ)=∑c∗Qi(z(i))=c∗∑Qi(z(i))=c公式2
然后我们就得到了一个重要的公式:
∑
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;θ)=c注:这是在假设jensen不等式等号成立的条件下
从而我们有以下公式:
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);θ)by公式1、2
所以一个重要结论就是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=1∑mz(i)∑Qi(z(i))logQi(z(i))P(xi,zi;θ)
也就是
3、重复上面的两个步骤