文章目录
一、EM算法概述
EM算法(expectation-maximization),也叫期望最大化算法,其实是一种根据求参的极大似然估计的一种迭代的优化策略,是在概率模型中寻找参数最大似然估计或者最大后验估计的算法,其中概率模型依赖于无法观测的隐性变量。EM算法可以广泛估计是因为他可以从非完整的数据集中对于参数进行极大似然的估计,这样的方法对于处理残缺数据,截尾数据和一些带有噪声的数据来说是很有效的。
最大期望算法经过两个步骤交替进行计算:
- 第一步是计算期望(E),利用对隐藏变量的现有估计值,计算其最大似然估计值;
- 第二步是最大化(M),最大化在E步上求得的最大似然值来计算参数的值。M步上找到的参数估计值被用于下一个E步计算中,这个过程不断交替进行。
那么我们需要了解什么是最大似然估计。
二、最大似然估计
我们常用的概率为已知条件来推算结果,而最大似然估计是已知结果,来求导致结果出现的可能性最大的条件,以此作为估计值。
简而言之,概率是根据条件推测结果,而似然则是根据结果反推条件。在这种意义上,似然函数可以理解为条件概率的逆反。
假定已知某个参数B时,推测事件
A
\mathrm{A}
A 会发生的概率写作:
P
(
A
∣
B
)
=
P
(
A
,
B
)
P
(
B
)
P(A \mid B)=\frac{P(A, B)}{P(B)}
P(A∣B)=P(B)P(A,B)
通过贝叶斯公式,可以得出
P
(
B
∣
A
)
=
P
(
A
∣
B
)
P
(
B
)
P
(
A
)
P(B \mid A)=\frac{P(A \mid B) P(B)}{P(A)}
P(B∣A)=P(A)P(A∣B)P(B)
现在我们反过来:事件
A
A
A发生已经了,请通过似然函数
L
(
B
∣
A
)
\mathbb{L}(B \mid A)
L(B∣A) ,估计条件
B
B
B的可能性。
2.1 最大似然估计案例
2.1.1 案例描述
假设我们需要调查我们学校学生的身高分布。我们先假设学校所有学生的身高服从正态分布
N
(
μ
,
σ
2
)
\mathrm{N}\left(\mu, \sigma^2\right)
N(μ,σ2) 。(注意: 极大似然估计的前提 一定是要假设数据总体的分布,如果不知道数据分布,是无法使用极大似然估计的
),这个分布的均值
μ
\mu
μ 和方差
σ
2
\sigma^2
σ2 末知,如果我们估计出这两个参数,那我们就得到了最终的结果。那么怎样估计这两个参数呢?
假设我们随机抽到 了200个人(也就是 200 个身高的样本数据)。然后统计抽样这 200 个人的身高。根据这 200 个人的身高估计均值 μ \mu μ 和方差 σ 2 \sigma^2 σ2 。
用数学的语言来说就是: 为了统计学校学生的身高分布,我们独立地按照概率密度
p
(
x
∣
θ
)
\mathrm{p}(\mathrm{x} \mid \theta)
p(x∣θ) 抽取了 200 个 (身高),组成样本集
X
=
\mathrm{X}=
X=
(
x
1
,
x
2
,
…
x
n
)
(\mathrm{x}_1, \mathrm{x}_2, \ldots \mathrm{x}_{\mathrm{n}})
(x1,x2,…xn) (其中
x
i
\mathrm{x}_{\mathrm{i}}
xi 表示抽到的第
i
\mathrm{i}
i 个人的身高,这里
n
\mathrm{n}
n 就是 200 ,表示样本个数),我们想通过样本集
X
\mathrm{X}
X 来估计出总体的末知参数
θ
\theta
θ 。这里概率密度
p
(
x
∣
θ
)
\mathrm{p}(\mathrm{x} \mid \theta)
p(x∣θ) 服从正太分布
N
(
μ
,
σ
2
)
\mathrm{N}\left(\mu, \sigma^2\right)
N(μ,σ2) ,其中的末知参数是
θ
=
[
μ
,
σ
]
T
\theta=[\mu, \sigma]^{\mathrm{T}}
θ=[μ,σ]T 。
那么问题来了怎样估算参数
θ
\theta
θ 呢?
2.1.2 参数估算
-
抽到这 200 个人的概率是多少呢?
由于每个样本都是独立地从 p ( x ∣ θ ) \mathrm{p}(\mathrm{x} \mid \theta) p(x∣θ) 中抽取的,他们之间是没有关系的,即他们之间是相互独立的。假如抽到学生 A A A 的概率是 p ( x A ∣ θ ) \mathrm{p}\left(\mathrm{x}_{\mathrm{A}} \mid \theta\right) p(xA∣θ) ,抽到学生 B B B 的概率是 p ( x B ∣ θ ) \mathrm{p}\left(\mathrm{x}_{\mathrm{B}} \mid \theta\right) p(xB∣θ) ,那么同时抽到学生 A A A 和学生 B B B 的概率是 p ( x A ∣ θ ) × \mathrm{p}\left(\mathrm{x}_{\mathrm{A}} \mid \theta\right) \times p(xA∣θ)× p ( x B ∣ θ ) \mathrm{p}\left(\mathrm{x}_{\mathrm{B}} \mid \theta\right) p(xB∣θ) ,同理,我同时抽到这 200 个学生的概率就是他们各自概率的乘积了,即为他们的联合概率,用下式表示:
L ( θ ) = L ( x 1 , x 2 , … , x n ; θ ) = ∏ i = 1 n p ( x i ∣ θ ) , θ ∈ Θ \mathrm{L}(\theta)=\mathrm{L}\left(\mathrm{x}_1, \mathrm{x}_2, \ldots, \mathrm{x}_{\mathrm{n}} ; \theta\right)=\prod_{\mathrm{i}=1}^{\mathrm{n}} \mathrm{p}\left(\mathrm{x}_{\mathrm{i}} \mid \theta\right), \quad \theta \in \Theta L(θ)=L(x1,x2,…,xn;θ)=i=1∏np(xi∣θ),θ∈Θ
n \mathrm{n} n 为抽取的样本的个数,本例中 n = 200 \mathrm{n}=200 n=200 ,这个概率反映了,在概率密度函数的参数是 θ \theta θ 时,得到 X \mathrm{X} X 这组样本的概率。上式中等式右侧 只有 θ \theta θ 是末知数,所以 L L L 是 θ \theta θ 的函数。
这个函数反映的是在不同的参数 θ \theta θ 取值下,取得当前这个样本集的可能性,因此称为参数 θ \theta θ 相对于样本集 X X X 的似然函数,记为 L ( θ ) \mathrm{L}(\theta) L(θ) 。
对 L \mathrm{L} L取对数,将其变成连加的,称为对数似然函数,如下式:
H ( θ ) = ln L ( θ ) = ln ∏ i = 1 n p ( x i ∣ θ ) = ∑ i = 1 n ln p ( x i ∣ θ ) \mathrm{H}(\theta)=\ln L(\theta)=\ln \prod_{\mathrm{i}=1}^{\mathrm{n}} \mathrm{p}\left(\mathrm{x}_{\mathrm{i}} \mid \theta\right)=\sum_{\mathrm{i}=1}^{\mathrm{n}} \ln \mathrm{p}\left(\mathrm{x}_{\mathrm{i}} \mid \theta\right) H(θ)=lnL(θ)=lni=1∏np(xi∣θ)=i=1∑nlnp(xi∣θ)
这里取对数为了取对数之后累积变为累和,求导更加方便。 -
学校那么多学生,为什么就恰好抽到了这 200 个人 (身高) 呢?
在学校那么学生中,我一抽就抽到这 200 个学生(身高),而不是其他人,那是不是表示在整个学校中,这 200 个人 (的身高) 出现的 概率极大啊,也就是其对应的似然函数 L ( θ ) \mathrm{L}(\theta) L(θ) 极大,即
θ ^ = argmax L ( θ ) \hat{\theta}=\operatorname{argmax} \mathrm{L}(\theta) θ^=argmaxL(θ)
θ ^ \hat{\theta} θ^ 这个叫做 θ \theta θ 的极大似然估计量,即为我们所求的值。 -
怎么求极大似然函数?
求 L ( θ ) \mathrm{L}(\theta) L(θ) 对所有参数的偏导数,然后让这些偏导数为 0 ,假设有 n \mathrm{n} n 个参数,就有 n \mathrm{n} n 个方程组成的方程组,那么方程组的解就是似然函数的 极值点了,从而得到对应的 θ \theta θ 了。
2.1.3 求解步骤
求极大似然函数估计值的一般步骤:
- 写出似然函数;
- 对似然函数取对数,并整理;
- 求导数,令导数为 0,得到似然方程;
- 解似然方程,得到的参数。
三、EM算法理解
3.1 极大似然估计复杂情形
从上文我们知道,极大似然估计的目标是求解实现结果的最佳参数θ,但极大似然估计需要面临的概率分布只有一个
或者知道结果是通过哪个概率分布实现的,只不过你不知道这个概率分布的参数。
但现在我们让情况复杂一点,比如让100个男生和100个女生混在一起了。我们拥有200个人的身高数据,却不知道这200个人每一个是男生还是女生,此时的男女性别就像一个隐变量。
此时就很难进行判别,因为通常来说,我们只有知道了精确的男女身高的正态分布参数我们才能知道每一个人更有可能是男生还是女生。反过来,我们只有知道了每个人是男生还是女生才能尽可能准确地估计男女各自身高的正态分布的参数。
而EM算法就是为了解决“极大似然估计”这种更复杂而存在的。
3.2 EM算法中的隐变量
一般的用Y表示观测到的随机变量的数据,Z表示隐随机变量的数据(因为我们观测不到结果是从哪个概率分布中得出的,所以将这个叫做隐变量)。于是Y和Z连在一起被称为完全数据,仅Y一个被称为不完全数据。
EM算法面临的问题主要就是:有个隐变量数据Z。而如果Z已知的话,那问题就可用极大似然估计求解了。
那么如何把Z变成已知的?
3.2.1 EM算法案例
假定你是一五星级酒店的厨师,现在需要把锅里的菜平均分配到两个碟子里。如果只有一个碟子乘菜那就什么都不用说了,但问题是有2个碟子,正因为根本无法估计一个碟子里应该乘多少菜,所以无法一次性把菜完全平均分配。
解法:
- 大厨先把锅里的菜一股脑倒进两个碟子里,然后看看哪个碟子里的菜多,就把这个碟子中的菜往另一个碟子中匀匀,之后重复多次匀匀的过程,直到两个碟子中菜的量大致一样。 上面的例子中,平均分配这个结果是“观测数据z”,为实现平均分配而给每个盘子分配多少菜是“待求参数θ”,分配菜的手感就是“概率分布”。
- 于是若只有一个盘子,那概率分布就确定了(“把锅里的菜全部倒到一个盘子”这样的手感是个人都有吧),而因为有两个盘子,所以“给一个盘子到多少菜才好”的手感就有些模糊不定,不过我们可以采用上面的解法来实现最终目标。
3.2.2 EM算法思想
给
θ
θ
θ自主规定个初值(既然我不知道想实现“两个碟子平均分配锅里的菜”的话每个碟子需要有多少菜,那我就先估计个值);
根据给定观测数据和当前的参数θ,求未观测数据z的条件概率分布的期望(在上一步中,已经根据手感将菜倒进了两个碟子,然后这一步根据“两个碟子里都有菜”和“当前两个碟子都有多少菜”来判断自己倒菜的手感);
上一步中z已经求出来了,于是根据极大似然估计求最优的θ’(手感已经有了,那就根据手感判断下盘子里应该有多少菜,然后把菜匀匀);
因为第二步和第三步的结果可能不是最优的,所以重复第二步和第三步,直到收敛(重复多次匀匀的过程,直到两个碟子中菜的量大致一样)。
而上面的第二步被称作E步(求期望),第三步被称作M步(求极大化),从而不断的E、M。
四、EM算法的公式推导
4.1 Jensen不等式
设 f f f 是定义域为实数的函数
- 如果对于所有的实数 x , f ( x ) \mathrm{x}, \mathrm{f}(\mathrm{x}) x,f(x) 的二次导数 f ′ ′ ( x ) ≥ 0 f^{\prime \prime}(x) \geq 0 f′′(x)≥0 ,那么是凸函数。
- 当 x x x 是向量时,如果其hessian矩阵 H \mathrm{H} H 是半正定的 ( H ≥ 0 ) (\mathrm{H} \geq 0) (H≥0) ,那么瑅凸函数。
- 如果 f ′ ′ ( x ) > 0 f^{\prime \prime}(x)>0 f′′(x)>0 或者 H > 0 \mathrm{H}>0 H>0 ,那么称是严格凸函数。
Jensen不等式表述如下:
如果 f f f 是凸函数, X X X 是随机变量,那么: E [ f ( X ) ] > = f ( E [ X ] ) E[f(X)]>=f(E[X]) E[f(X)]>=f(E[X]) ,通俗的说法是函数的期望大于等于期望的函数。
特别地,如果 f f f 是严格凸函数,当且仅当 P ( X = E X ) = 1 P(X=E X)=1 P(X=EX)=1 ,即X是常量时,上式取等号,即 E [ f ( X ) ] = f ( E X ) E[f(X)]=f(E X) E[f(X)]=f(EX) 。
图中,实线
f
f
f 是凸函数,
X
\mathrm{X}
X 是随机变量,有
0.5
0.5
0.5 的概率是
a
a
a ,有
0.5
0.5
0.5 的概率是
b
(
b(
b( 就像抛硬币一样)。
X
X
X 的期望值就是a和b的中值了,可以很明显从看出,
E
[
f
(
X
)
]
≥
f
(
E
X
)
E[f(X)] \geq f(E X)
E[f(X)]≥f(EX) 。
当然,当
f
f
f是 (严格) 凹函数当且仅当
−
f
-\mathrm{f}
−f 是 (严格) 凸函数,不等号方向反向,也就是
E
[
f
(
X
)
]
≤
f
(
E
[
X
]
)
E[f(X)] \leq f(E[X])
E[f(X)]≤f(E[X]) 。
4.2 公式推导
假设我们有一个样本集
{
x
(
1
)
,
…
,
x
(
m
)
}
\{x(1), \ldots, x(m)\}
{x(1),…,x(m)} ,包含
m
m
m 个独立的样本,现在我们想找到每个样本隐含的类别
z
z
z ,能使得
p
(
x
,
z
)
p(x, z)
p(x,z) 最大。
p
(
x
,
z
)
p(x, z)
p(x,z) 的极大 似然估计如下:
L
(
θ
)
=
∑
i
=
1
m
ln
p
(
x
;
θ
)
=
∑
i
=
1
m
ln
∑
z
p
(
x
,
z
;
θ
)
\begin{aligned} \ L(\theta) &=\sum_{i=1}^m \ln p(x ; \theta) \\ &=\sum_{i=1}^m \ln \sum_z p(x, z ; \theta) \end{aligned}
L(θ)=i=1∑mlnp(x;θ)=i=1∑mlnz∑p(x,z;θ)
第一步是对极大似然取对数,第二步是对每个样例的每个可能类别z求联合分布概率和。但是直接求一般比较困难,因为有隐藏变量z存 在,但是一般确定了Z后,求解就容易了。
对于参数估计,我们本质上还是想获得一个使似然函数最大化的那个参数
θ
\theta
θ ,现在与极大似然不同的只是似然函数式中多了一个末知的变量z。也就是说我们的目标是找到适合的
θ
\theta
θ 和
z
z
z ,以让
L
(
θ
)
L(\theta)
L(θ) 最大。
∑
i
ln
p
(
x
(
i
)
;
θ
)
=
∑
i
ln
∑
z
(
i
)
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
=
∑
i
ln
∑
z
(
i
)
Q
i
(
z
(
i
)
)
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
Q
i
(
z
(
i
)
)
≥
∑
i
∑
z
(
i
)
Q
i
(
z
(
i
)
)
ln
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
Q
i
(
z
(
i
)
)
\begin{align} \sum_i \ln p\left(x^{(i)} ; \theta\right) &=\sum_i \ln \sum_{z^{(i)}} p\left(x^{(i)}, z^{(i)} ; \theta\right) \\ &=\sum_i \ln \sum_{z^{(i)}} Q_i\left(z^{(i)}\right) \frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{Q_i\left(z^{(i)}\right)} \\ & \geq \sum_i \sum_{z^{(i)}} Q_i\left(z^{(i)}\right) \ln \frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{Q_i\left(z^{(i)}\right)} \end{align}
i∑lnp(x(i);θ)=i∑lnz(i)∑p(x(i),z(i);θ)=i∑lnz(i)∑Qi(z(i))Qi(z(i))p(x(i),z(i);θ)≥i∑z(i)∑Qi(z(i))lnQi(z(i))p(x(i),z(i);θ)
问:为什么不能分别对末知的
θ
\theta
θ 和z分别求偏导,再令其等于 0 ,求解出来不也一样吗?
本质上我们是需要最大化似然函数,但是可以看到里面有“和的对数”,求导后形式会非常复杂,所以很难求解得到未知参数
z
z
z和
θ
θ
θ。
我们把分子分母同乘以一个相等的函数(即隐变量Z的概率分布 Q i ( z ( i ) ) Q_i(z^{(i)}) Qi(z(i))),其概率之和等于 1 ,即 ∑ z Q i ( z ( i ) ) = 1 ) \left.\sum_z Q_{\mathrm{i}}\left(z^{(i)}\right)=1\right) ∑zQi(z(i))=1) ,即得到第二式,还是有 “和的对数”,接下来,通过Jensen不等式可得到第三 式,此时第三式变成了"对数的和",如此求导就容易了。这样我们就可以根据不等式求第三式的最大值取等号即可。
不等式推导:
回到(2)中,
f
(
x
)
=
l
n
x
f(x)=lnx
f(x)=lnx为凹函数(本文凹凸性与部分数学课本规定不一致
)
(2) 式中 ∑ z ( i ) Q i ( z ( i ) ) [ p ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) ] \sum_{z^{(i)}} Q_i\left(z^{(i)}\right)\left[\frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{Q_i\left(z^{(i)}\right)}\right] ∑z(i)Qi(z(i))[Qi(z(i))p(x(i),z(i);θ)] 就是 [ p ( x ( i ) , z ( i ) ; θ ) / Q i ( z ( i ) ) ] \left[p\left(x^{(i)}, z^{(i)} ; \theta\right) / Q_i\left(z^{(i)}\right)\right] [p(x(i),z(i);θ)/Qi(z(i))] 的期望。为什么?
回想期望公式中的Lazy Statistician规则, 如下
设Y是随机变量X的函数, Y = g ( X ) Y=g(X) Y=g(X) ( g g g 是连续函数) ,那么
(1) X \mathrm{X} X 是离散型随机变量,它的分布律为 P ( X = x k ) = p k , k = 1 , 2 , … \mathrm{P}\left(\mathrm{X}=x_k\right)=p_k , \mathrm{k}=1,2, \ldots P(X=xk)=pk,k=1,2,… 。若 ∑ k = 1 ∞ g ( x k ) p k \sum_{k=1}^{\infty} \mathrm{g}\left(x_k\right) p_k ∑k=1∞g(xk)pk 绝对收敛,则有
E ( Y ) = E [ g ( X ) ] = ∑ k = 1 ∞ g ( x k ) p k \mathrm{E}(\mathrm{Y})=\mathrm{E}[\mathrm{g}(\mathrm{X})]=\sum_{k=1}^{\infty} \mathrm{g}\left(x_k\right) p_k E(Y)=E[g(X)]=k=1∑∞g(xk)pk
(2) X \mathrm{X} X 是连续型随机变量,它的概率密度为 f ( x ) \mathrm{f}{(\mathrm{x})} f(x) ,若 ∫ − ∞ ∞ g ( x ) f ( x ) d x \int_{-\infty}^{\infty} \mathrm{g}(\mathrm{x}) \mathrm{f}(\mathrm{x}) \mathrm{dx} ∫−∞∞g(x)f(x)dx 绝对收敛,则有
E ( Y ) = E [ g ( X ) ] = ∫ − ∞ ∞ g ( x ) f ( x ) d x E(Y)=E[g(X)]=\int_{-\infty}^{\infty} g(x) f(x) d x E(Y)=E[g(X)]=∫−∞∞g(x)f(x)dx
考虑到
E
(
X
)
=
∑
x
p
(
x
)
,
f
(
X
)
E(X)=\sum xp(x) , f(X)
E(X)=∑xp(x),f(X) 是
X
X
X 的函数,则
E
(
f
(
X
)
)
=
∑
f
(
x
)
p
(
x
)
)
\left.E(f(X))=\sum f(x) p(x)\right)
E(f(X))=∑f(x)p(x)) ,又
∑
z
Q
i
(
z
(
1
)
)
=
1
\sum_z Q_i\left(z^{(1)}\right)=1
∑zQi(z(1))=1 ,所以就可以得到公式 (3) 的不等式了:
f
(
E
z
(
i
)
∼
Q
i
[
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
Q
i
(
z
(
i
)
)
]
)
≥
E
z
(
i
)
∼
Q
i
[
f
(
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
Q
i
(
z
(
i
)
)
)
]
f\left(\mathrm{E}_{z^{(i)} \sim Q_i}\left[\frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{Q_i\left(z^{(i)}\right)}\right]\right) \geq \mathrm{E}_{z^{(i)} \sim Q_i}\left[f\left(\frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{Q_i\left(z^{(i)}\right)}\right)\right]
f(Ez(i)∼Qi[Qi(z(i))p(x(i),z(i);θ)])≥Ez(i)∼Qi[f(Qi(z(i))p(x(i),z(i);θ))]
到这里,现在式(3)就容易地求导了,但是式(2)和式(3)是不等号啊,式(2)的最大值不是式(3)的最大值啊,而我们想得到式(2)的最 大值,那怎么办呢?
上面的式(2)和式(3)不等式可以写成:似然函数 L ( θ ) > = J ( Z , Q ) L(\theta)>=J(Z, Q) L(θ)>=J(Z,Q) ,我们可以通过不断的最大化这个下界 J J J,来使得 L ( θ ) L(\theta) L(θ) 不断提高,最终达到 L ( θ ) L(\theta) L(θ)的最大值。
实际计算:
在Jensen不等式中说到,当自变量
X
X
X是常数的时候,等式成立。换言之,为了让 (3) 式取等号,我们需要:
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
Q
i
(
z
(
i
)
)
=
c
\frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{Q_i\left(z^{(i)}\right)}=c
Qi(z(i))p(x(i),z(i);θ)=c
其中,c为常数,不依赖于
z
(
i
)
z^{(i)}
z(i) 。对该式做个变换,并对所有的
z
z
z求和,得到
∑
z
p
(
x
i
,
z
(
i
)
;
θ
)
=
∑
z
Q
i
(
z
(
i
)
)
c
\sum_z p\left(x^i, z^{(i)} ; \theta\right)=\sum_z Q_i\left(z^{(i)}\right) c
z∑p(xi,z(i);θ)=z∑Qi(z(i))c
因为前面提到
∑
z
Q
i
(
z
(
i
)
)
=
1
\sum_z Q_i\left(z^{(i)}\right)=1
∑zQi(z(i))=1 (隐变量Z的概率分布,其概率之和等于 1 ),所以可以推导出:
∑
z
p
(
x
i
,
z
(
i
)
;
θ
)
=
c
\sum_z p\left(x^i, z^{(i)} ; \theta\right)=c
z∑p(xi,z(i);θ)=c
可求得
Q
i
(
z
(
i
)
)
Q_i\left(z^{(i)}\right)
Qi(z(i)) 的值
(
\left(\right.
( 即
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
/
c
)
\left.p\left(x^{(i)}, z^{(i)} ; \theta\right) / \mathrm{c}\right)
p(x(i),z(i);θ)/c) ,加之
∑
z
p
(
x
i
,
z
(
i
)
;
θ
)
=
c
\sum_z p\left(x^i, z^{(i)} ; \theta\right)=c
∑zp(xi,z(i);θ)=c ,所以
Q
i
(
z
(
i
)
)
Q_i\left(z^{(i)}\right)
Qi(z(i)) 为
Q
i
(
z
(
i
)
)
=
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
∑
z
p
(
x
(
i
)
,
z
;
θ
)
=
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
p
(
x
(
i
)
;
θ
)
=
p
(
z
(
i
)
∣
x
(
i
)
;
θ
)
\begin{aligned} Q_i\left(z^{(i)}\right) &=\frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{\sum_z p\left(x^{(i)}, z ; \theta\right)} \\ &=\frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{p\left(x^{(i)} ; \theta\right)} \\ &=p\left(z^{(i)} \mid x^{(i)} ; \theta\right) \end{aligned}
Qi(z(i))=∑zp(x(i),z;θ)p(x(i),z(i);θ)=p(x(i);θ)p(x(i),z(i);θ)=p(z(i)∣x(i);θ)
我们推出了在固定参数
θ
\theta
θ 后,使下界拉升的
Q
(
z
)
Q(z)
Q(z)的计算公式就是条件概率,解决了
Q
(
z
)
Q(z)
Q(z)如何选择的问题。
这一步就是E步,建立
L
(
θ
)
L(\theta)
L(θ)下界
接下来的M步,就是在给定
Q
(
z
)
Q(z)
Q(z) 后,调整
θ
\theta
θ ,去极大化
L
(
θ
)
L(\theta)
L(θ) 的下界
J
(
z
,
Q
)
\mathrm{J}(\mathrm{z}, \mathrm{Q})
J(z,Q) ,毕竟在固定
Q
(
z
)
\mathrm{Q}(\mathrm{z})
Q(z) 后,下界还可以调整的更大。
4.3 EM算法的流程
期望最大EM算法是一种从不完全数据或有数据丢失的数据集 (存在隐含变量) 中求解概率模型参数的最大似然估计方法。当我们不知道隐变量Z的具体取值时(比如是硬币A还是硬币B),也就不好判断硬币A或硬币 B B B 正面朝上的概率 θ \theta θ.
- 随机初始化分布参数 θ \theta θ
- 然后循环重复直到收敛 {
(E步,求 Q Q Q函数) 对于每一个 i i i,计算根据上一次迭代的模型参数来计算出隐性变量的后验概率(其实就是隐性变量的期望),来作为隐藏变量的现估计值:
Q i ( z ( i ) ) : = p ( z ( i ) ∣ x ( i ) ; θ ) Q_{\mathrm{i}}\left(z^{(\mathrm{i})}\right):=p\left(z^{(\mathrm{i})} \mid x^{(\mathrm{i})} ; \theta\right) Qi(z(i)):=p(z(i)∣x(i);θ)
( M步,求使 Q Q Q函数获得极大时的参数取值) 将似然函数最大化以获得新的参数值
θ : = arg max θ ∑ i ∑ z ( i ) Q i ( z ( i ) ) ln p ( x ( i ) , z ( i ) ; θ ) Q i ( z ( i ) ) . \theta:=\arg \max _\theta \sum_i \sum_{z^{(i)}} Q_i\left(z^{(i)}\right) \ln \frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{Q_i\left(z^{(i)}\right)} . θ:=argθmaxi∑z(i)∑Qi(z(i))lnQi(z(i))p(x(i),z(i);θ).
就这样, Q ( z ) \mathrm{Q}(\mathrm{z}) Q(z) 求出来代入到 θ \theta θ , θ \theta θ 求出来又反代回 Q ( z ) \mathrm{Q}(\mathrm{z}) Q(z) ,如此不断的迭代,就可以得到使似然函数 L ( θ ) \mathrm{L}(\theta) L(θ) 最大化的参数 θ \theta θ 了
4.4 确保EM收敛证明
假定 θ ( t ) \theta^{(\mathrm{t})} θ(t) 和 θ ( t + 1 ) \theta^{(\mathrm{t}+1)} θ(t+1) 是EM算法第 t \mathrm{t} t 次和 t + 1 \mathrm{t}+1 t+1 次迭代后的结果(上标 t \mathrm{t} t 表示第 t \mathrm{t} t 次迭代)。如果我们证明了 L ( θ ( t ) ) ≤ L ( θ ( t + 1 ) ) L\left(\theta^{(\mathrm{t})}\right) \leq L\left(\theta^{(\mathrm{t}+1)}\right) L(θ(t))≤L(θ(t+1)) ,也就是说 极大似然估计单调增加,那么最终我们会到达最大似然估计的最大值。
选定
θ
(
t
)
{\theta^{(t)}}
θ(t) 后,我们得到E步
Q
i
(
t
)
(
z
(
i
)
)
:
=
p
(
z
(
i
)
∣
x
(
i
)
;
θ
(
t
)
)
Q_i^{(\mathrm{t})}\left(z^{(\mathrm{i})}\right):=p\left(z^{(\mathrm{i})} \mid x^{(\mathrm{i})} ; \theta^{(t)}\right)
Qi(t)(z(i)):=p(z(i)∣x(i);θ(t))
这一步保证了在给定
θ
(
t
)
{\theta^{(t)}}
θ(t) 时,Jensen不等式中的等式成立,也就是
L
(
θ
(
t
)
)
=
∑
i
∑
z
(
i
)
Q
i
(
t
)
(
z
(
i
)
)
ln
p
(
x
(
i
)
,
z
(
i
)
;
θ
(
t
)
)
Q
i
(
t
)
(
z
(
i
)
)
L\left(\theta^{(t)}\right)=\sum_i \sum_{z^{(i)}} Q_i^{(t)}\left(z^{(i)}\right) \ln \frac{p\left(x^{(i)}, z^{(i)} ; \theta^{(t)}\right)}{Q_i^{(t)}\left(z^{(i)}\right)}
L(θ(t))=i∑z(i)∑Qi(t)(z(i))lnQi(t)(z(i))p(x(i),z(i);θ(t))
L
(
θ
(
t
+
1
)
)
≥
∑
i
∑
z
(
i
)
Q
i
(
t
)
(
z
(
i
)
)
ln
p
(
x
(
i
)
,
z
(
i
)
;
θ
(
t
+
1
)
)
Q
i
(
t
)
(
z
(
i
)
)
≥
∑
i
∑
z
(
i
)
Q
i
(
t
)
(
z
(
i
)
)
ln
p
(
x
(
i
)
,
z
(
i
)
;
θ
(
t
)
)
Q
i
(
t
)
(
z
(
i
)
)
=
L
(
θ
(
t
)
)
\begin{align} L\left(\theta^{(t+1)}\right) & \geq \sum_i \sum_{z^{(i)}} Q_i^{(t)}\left(z^{(i)}\right) \ln \frac{p\left(x^{(i)}, z^{(i)} ; \theta^{(t+1)}\right)}{Q_i^{(t)}\left(z^{(i)}\right)} \\ & \geq \sum_i \sum_{z^{(i)}} Q_i^{(t)}\left(z^{(i)}\right) \ln \frac{p\left(x^{(i)}, z^{(i)} ; \theta^{(t)}\right)}{Q_i^{(t)}\left(z^{(i)}\right)} \\ &=L\left(\theta^{(t)}\right) \end{align}
L(θ(t+1))≥i∑z(i)∑Qi(t)(z(i))lnQi(t)(z(i))p(x(i),z(i);θ(t+1))≥i∑z(i)∑Qi(t)(z(i))lnQi(t)(z(i))p(x(i),z(i);θ(t))=L(θ(t))
解释下第(4)步,得到
θ
(
t
+
1
)
\theta^{(t+1)}
θ(t+1) 时,只是最大化
L
(
θ
(
t
)
)
L\left(\theta^{(t)}\right)
L(θ(t)) ,也就是
L
(
θ
(
t
+
1
)
)
L\left(\theta^{(t+1)}\right)
L(θ(t+1)) 的下界,而没有使等式成立,等式成立只有是在固定
θ
\theta
θ ,并按 E步得到
Q
i
Q_i
Qi 时才能成立。
根据我们前面得到的下式,对于所有的
Q
i
\mathrm{Q}_{\mathrm{i}}
Qi 和
θ
\theta
θ都成立
L
(
θ
)
≥
∑
i
∑
z
(
i
)
Q
i
(
z
(
i
)
)
ln
p
(
x
(
i
)
,
z
(
i
)
;
θ
)
Q
i
(
z
(
i
)
)
L(\theta) \geq \sum_i \sum_{z^{(i)}} Q_i\left(z^{(i)}\right) \ln \frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{Q_i\left(z^{(i)}\right)}
L(θ)≥i∑z(i)∑Qi(z(i))lnQi(z(i))p(x(i),z(i);θ)
这样就证明了
L
(
θ
)
L(\theta)
L(θ) 会单调增加。一种收敛方法是
L
(
θ
)
L(\theta)
L(θ) 不再变化,还有一种就是变化幅度很小。
五、参考作品
JerryLead:EM算法The EM Algorithm
v_JULY_v:如何通俗理解EM算法