待……
EM算法
EM算法(Expectation Maximization Algorithm, 最大期望算法)
是一种迭代类型的算法
是一种在概率模型中寻找参数最大似然估计或最大后验估计的算法
其中概率模型依赖于无法观测的隐藏变量
步骤:
- 初始化分布参数
- 重复下面两个步骤直到收敛
- E步骤:估计隐藏变量的概率分布期望函数;
- M步骤:根据期望函数重新估计分布参数;
原理:
-
m m m个训练样本 { X ( 1 ) , X ( 2 ) , … , X ( m ) } \{X^{(1)},X^{(2)},\dots,X^{(m)}\} {X(1),X(2),…,X(m)},样本间独立,找出样本的模型参数 θ \theta θ,极大化模型分布的对数似然函数,如下:
θ = a r g m a x θ ∑ i = 1 m l o g ( P ( x ( i ) θ ) ) \theta={argmax \atop \theta}\displaystyle\sum_{i=1}^{m}log(P(x^{(i)}\theta)) θ=θargmaxi=1∑mlog(P(x(i)θ)) -
嘉定样本数据中存在隐含数据 z = { z ( 1 ) , z ( 2 ) , … , z ( k ) } z=\{z^{(1)},z^{(2)},\dots,z^{(k)}\} z={z(1),z(2),…,z(k)},此时极大化模型分布的对数似然函数,如下:没看懂
θ = a r g m a x θ ∑ i = 1 m l o g ( P ( x ( i ) θ ) ) = a r g m a x θ ∑ i = 1 m l o g ( ∑ z ( i ) P ( z ( i ) ) P ( x ( i ) ∣ z ( i ) ; θ ) = a r g m a x θ ∑ i = 1 m l o g ( ∑ z ( i ) P ( x ( i ) , z ( i ) ; θ ) ) \begin{aligned} \theta &={argmax \atop \theta}\displaystyle\sum_{i=1}^{m}log(P(x^{(i)}\theta))\\ &={argmax \atop \theta}\displaystyle\sum_{i=1}^{m}log(\displaystyle\sum_{z^{(i)}}P(z^{(i)})P(x^{(i)}|z^{(i)};\theta)\\ &={argmax \atop \theta}\displaystyle\sum_{i=1}^{m}log(\displaystyle\sum_{z^{(i)}}P(x^{(i)},z^{(i)};\theta)) \end{aligned} θ=θargmaxi=1∑mlog(P(x(i)θ))=θargmaxi=1∑mlog(z(i)∑P(z(i))P(x(i)∣z(i);θ)=θargmaxi=1∑mlog(z(i)∑P(x(i),z(i);θ)) -
令 z z z的分布为 Q ( z ; θ ) Q(z;\theta) Q(z;θ),[ ∑ z Q ( z ; θ ) = 1 \displaystyle\sum_{z}Q(z;\theta)=1 z∑Q(z;θ)=1],并且 Q ( z ; θ ) ≥ 0 Q(z;\theta)\ge 0 Q(z;θ)≥0;那么有公式,如下:
l ( θ ) = ∑ i = 1 m l o g ∑ z p ( x , z ; θ ) = ∑ i = 1 m l o g ∑ z Q ( z ; θ ) ⋅ p ( x , z ; θ ) Q ( z ; θ ) = ∑ i = 1 m l o g ( E Q ( p ( x , z ; θ ) Q ( z ; θ ) ) ) ≥ ∑ i = 1 m E Q ( l o g ( p ( x , z ; θ ) Q ( z ; θ ) ) ) [ J e n s e n 不 等 式 ] = ∑ i = 1 m ∑ z Q ( z ; θ ) l o g ( p ( x , z ; θ ) Q ( z ; θ ) ) \begin{aligned} l(\theta) &=\displaystyle\sum_{i=1}^{m}log\displaystyle\sum_{z}p(x,z;\theta)\\ &=\displaystyle\sum_{i=1}^{m}log\displaystyle\sum_{z}Q(z;\theta)\cdot\frac{p(x,z;\theta)}{Q(z;\theta)}\\ &=\displaystyle\sum_{i=1}^{m}log(E_Q(\frac{p(x,z;\theta)}{Q(z;\theta)}))\\ &\ge\displaystyle\sum_{i=1}^{m}E_Q(log(\frac{p(x,z;\theta)}{Q(z;\theta)}))[Jensen不等式]\\ &=\displaystyle\sum_{i=1}^{m}\displaystyle\sum_{z}Q(z;\theta)log(\frac{p(x,z;\theta)}{Q(z;\theta)})\\ \end{aligned} l(θ)=i=1∑mlogz∑p(x,z;θ)=i=1∑mlogz∑Q(z;θ)⋅Q(z;θ)p(x,z;θ)=i=1∑mlog(EQ(Q(z;θ)p(x,z;θ)))≥i=1∑mEQ(log(Q(z;θ)p(x,z;θ)))[Jensen不等式]=i=1∑mz∑Q(z;θ)log(Q(z;θ)p(x,z;θ))
-
θ \theta θ求解
θ = a r g m a x θ l ( θ ) = a r g m a x θ ∑ i = 1 m ∑ z Q ( z ; θ ) l o g ( p ( x , z ; θ ) Q ( z ; θ ) ) = a r g m a x θ ∑ i = 1 m ∑ z Q ( z ∣ x ; θ ) l o g ( p ( x , z ; θ ) Q ( z ∣ x ; θ ) ) = a r g m a x θ ∑ i = 1 m ∑ z Q ( z ∣ x ; θ ) l o g ( p ( x , z ; θ ) ) \begin{aligned} \theta &={argmax \atop \theta}l(\theta)\\ &={argmax \atop \theta}\displaystyle\sum_{i=1}^{m}\displaystyle\sum_{z}Q(z;\theta)log(\frac{p(x,z;\theta)}{Q(z;\theta)})\\ &={argmax \atop \theta}\displaystyle\sum_{i=1}^{m}\displaystyle\sum_{z}Q(z|x;\theta)log(\frac{p(x,z;\theta)}{Q(z|x;\theta)})\\ &={argmax \atop \theta}\displaystyle\sum_{i=1}^{m}\displaystyle\sum_{z}Q(z|x;\theta)log(p(x,z;\theta))\\ \end{aligned} θ=θargmaxl(θ)=θargmaxi=1∑mz∑Q(z;θ)log(Q(z;θ)p(x,z;θ))=θargmaxi=1∑mz∑Q(z∣x;θ)log(Q(z∣x;θ)p(x,z;θ))=θargmaxi=1∑mz∑Q(z∣x;θ)log(p(x,z;θ))
EM算法流程
样本数据:
X
=
{
X
(
1
)
,
X
(
2
)
,
…
,
X
(
m
)
}
X=\{X^{(1)},X^{(2)},\dots,X^{(m)}\}
X={X(1),X(2),…,X(m)}
联合分布:
p
(
x
,
z
;
θ
)
p(x,z;\theta)
p(x,z;θ)
条件分布:
p
(
z
∣
x
;
θ
)
p(z|x;\theta)
p(z∣x;θ)
最大迭代次数:
J
J
J
- 随机初始化模型参数 θ = θ 0 \theta=\theta^0 θ=θ0;
- EM算法的迭代处理
-
E步骤:计算联合分布的条件概率期望:
Q j = p ( z ∣ x ; θ j ) Q^j=p(z|x;\theta^j) Qj=p(z∣x;θj)
l ( θ ) = ∑ i = 1 m ∑ z Q j l o g ( p ( x , z ; θ j ) ) l(\theta)=\displaystyle\sum_{i=1}^{m}\displaystyle\sum_{z}Q^jlog(p(x,z;\theta^j)) l(θ)=i=1∑mz∑Qjlog(p(x,z;θj)) -
M步骤:极大化 l l l函数,得到 θ j + 1 \theta^{j+1} θj+1
θ j + 1 = a r g m a x θ l ( θ ) \theta^{j+1}={argmax \atop \theta}l(\theta) θj+1=θargmaxl(θ) -
如果 θ j + 1 \theta^{j+1} θj+1已经收敛,则算法结束,输出最终模型参数 θ \theta θ,否则继续迭代处理
-
EM算法收敛证明
证明对数似然函数的值在迭代的过程中是增加的 即可
GMM(Gaussian Mixture Model, 高斯混合模型)
指该算法由多个高斯模型线 性叠加混合而成。每个高斯模型称之为component。GMM算法描述的是数据的 本身存在的一种分布。
GMM算法常用于聚类应用中,component的个数就可以认为是类别的数量。
假定GMM由k个Gaussian分布线性叠加而成,那么概率密度函数如下:
对数似然函数
GMM-EM算法求解
E步骤
M步骤
对均值求偏导
对方差求偏导
对概率使用拉格朗日乘子法求解