把问题简化一下,假设我们知道某些信息,我们该怎么解决这个参数估计或者概率分布的问题。 1)假设知道男女的标签,那么只需要通过最大似然估计的方式,即可。
μ
^
M
L
E
=
1
N
∑
i
N
x
i
=
x
ˉ
θ
^
M
L
E
=
1
N
∑
i
N
(
x
i
−
x
^
)
2
\hat{\mu}_{MLE}=\frac{1}{N}\sum_{i}^{N}x_i=\bar{x}\\ \hat{\theta}_{MLE}=\sqrt{\frac{1}{N}\sum_i^N(x_i-\hat{x})^2}
μ^MLE=N1i∑Nxi=xˉθ^MLE=N1i∑N(xi−x^)2 2)假设知道了分布的参数,想求解每个观察值是属于什么类别,只需要给每个观察值赋予一个混合的概率值(表示其属于某个概率分布的情况),然后同时求解最大似然方程即可。
P
(
x
i
=
m
a
l
e
)
=
α
1
N
(
x
i
∣
μ
1
,
Σ
1
)
Z
P
(
x
i
=
f
e
m
a
l
e
)
=
α
2
N
(
x
i
∣
μ
2
,
Σ
2
)
Z
Z
=
∑
j
=
1
2
α
j
N
(
x
i
∣
μ
j
,
Σ
j
)
P(x_i=male)=\frac{\alpha_1\mathcal N(x_i|\mu_1,\Sigma_1)}{Z} \\ \quad\\ P(x_i=female)=\frac{\alpha_2\mathcal N(x_i|\mu_2,\Sigma_2)}{Z}\\ \quad\\ Z=\sum_{j=1}^2{\alpha_j \mathcal N(x_i|\mu_j,\Sigma_j)} \\
P(xi=male)=Zα1N(xi∣μ1,Σ1)P(xi=female)=Zα2N(xi∣μ2,Σ2)Z=j=1∑2αjN(xi∣μj,Σj) (上述公式摘抄自文章[2],后续会对其进行具体分析) 从上述的内容中可以看出,假设我们知道一部分信息,我们可以推导出另外一部分信息。这就是他们很多在介绍EM算法的时候,提到的鸡和蛋的问题。在无监督学习中,通过GMM进行聚类的时候,并不知道这些信息。理解EM算法最直观的例子就是GMM的训练过程了。 问题就是,我们仅仅知道测量值的时候,我们如何进行GMM的参数估计还有相应的标签赋值呢?
上述图片也是来自文章[3],好像是一个通过matlab的程序生成的,后续的时候可以尝试也绘制一个这种图片。文章[3]要解决的问题,就是估计GMM的参数,在估计过程中,采用软聚类的形式,也就是说,给每个点赋予一个属于某个类的概率,而不是直接属于某个类。具体问题是,存在数据集
n
n
n个点,其属于
R
d
R^d
Rd空间,他们由一个GMM(Gaussian Mixture Model)模型生成,现在的任务就是估计出最可能产生这些点的GMM模型,也就是求解他们的参数。
2.1 参数设置
本小节主要介绍一下后文中主要使用的参数都有哪些 1)k个成分,GMM模型中,有k个高斯分布,一般这个数值都是实现指定的。 2)每个高斯分布
j
,
k
∈
{
1
,
2
,
.
.
.
,
k
}
j,k\in\{1,2,...,k\}
j,k∈{1,2,...,k}有参数
μ
\mu
μ和
σ
2
\sigma^2
σ2去确定
P
x
(
x
∣
μ
j
,
σ
j
2
)
=
N
(
X
;
μ
j
,
σ
j
2
)
=
1
(
2
π
σ
j
2
)
d
2
e
−
∥
x
−
μ
j
∥
2
2
σ
j
2
P_x(x|\mu^j,\sigma^2_j)=\mathcal N(X;\mu^j,\sigma^2_j)=\frac{1}{(2\pi\sigma^2_j)^{\frac{d}{2}}}e^{\frac{-\|x-\mu^j\|^2}{2\sigma^2_j}}
Px(x∣μj,σj2)=N(X;μj,σj2)=(2πσj2)2d1e2σj2−∥x−μj∥2 上面这些变量的含义,很好理解,但是这里有些不一样的是,他没有使用协方差矩阵,在有些公式里面可能是协方差矩阵,这里不影响理解。 3)每个高斯分布有一个权重,这个权重代表这个可能是这个高斯成分的概率
j
∼
M
u
l
t
i
n
o
n
i
a
l
(
p
1
,
p
2
,
.
.
.
,
p
K
)
j\sim Multinonial(p_1,p_2,...,p_K)
j∼Multinonial(p1,p2,...,pK) 4)最后是所有的要去估计的参数集合
Θ
=
p
1
,
p
2
,
.
.
.
,
p
K
,
μ
1
,
μ
2
,
.
.
.
,
μ
K
,
σ
1
1
,
σ
2
2
,
.
.
.
,
σ
K
2
\Theta=p_1,p_2,...,p_K,\mu^1,\mu^2,...,\mu^K,\sigma^1_1,\sigma^2_2,...,\sigma^2_K
Θ=p1,p2,...,pK,μ1,μ2,...,μK,σ11,σ22,...,σK2
2.2 最大似然估计
最大似然估计是指选取能够满足所有观测值最大出现概率的参数值。
P
(
X
n
∣
Θ
)
=
∏
i
=
1
n
∑
j
=
1
K
p
j
N
(
x
i
;
μ
j
,
σ
j
2
)
{\rm \textbf P}(X_n|\Theta)=\prod_{i=1}^n\sum_{j=1}^{K}p_j\mathcal N(x_i;\mu^j,\sigma^2_j)
P(Xn∣Θ)=i=1∏nj=1∑KpjN(xi;μj,σj2) 而求解这个方程的过程会非常复杂,正如前面所说,很多内容都不知道。
2.3 EM过程求解
首先初始化变量
Θ
\Theta
Θ。
2.3.1 E步骤(Expectation)
当所有参数都被确定了,那么就需要求解每个数据的后验概率(每个数据点属于每个高斯分布的概率),换句话说,就是已经看到了这些点,那么每个成分的权重是多少。
P
(
j
∣
i
)
=
P
(
y
=
j
∣
X
n
)
=
P
(
j
)
P
(
X
n
∣
j
)
P
(
X
n
)
=
P
(
j
)
P
(
X
n
∣
j
)
∑
j
=
1
K
P
(
j
)
P
(
X
n
∣
j
)
{\rm \textbf P}(j|i)={\rm \textbf P}(y=j|X_n)=\frac{{\rm \textbf P}(j){\rm \textbf P}(X_n|j)}{{\rm \textbf P}(X_n)}=\frac{{\rm \textbf P}(j){\rm \textbf P}(X_n|j)}{\sum_{j=1}^{K}{\rm \textbf P}(j){\rm \textbf P}(X_n|j)}
P(j∣i)=P(y=j∣Xn)=P(Xn)P(j)P(Xn∣j)=∑j=1KP(j)P(Xn∣j)P(j)P(Xn∣j) 先验概率是
P
(
j
)
{\rm \textbf P}(j)
P(j),似然值是
P
(
X
n
∣
j
)
{\rm \textbf P}(X_n|j)
P(Xn∣j)。在另一篇文章中《先验概率及后验概率等解释》记录了这些名词的解释。 这里的
P
(
j
)
{\rm \textbf P}(j)
P(j)就是前面的每个成分的权重,从历时解释的角度来说,{\rm \textbf P}(j|i)就是要求,在看到这个样本点之后,其属于成分
j
j
j的概率是多少,实质上就是要确定每个样本点属于每个高斯成分的概率,正是一个打标签的过程。类别k-means方法,就是随机中心样本点之后,求每个点的标签。
2.3.2 M步骤(Maximization)
前面的步骤已经得到了每个点属于每个高斯成分的后验概率,这部分将重新估计初始化的数值。首先重新估计
P
(
j
)
{\rm \textbf P}(j)
P(j)。
P
^
(
j
)
=
n
^
j
n
=
∑
i
=
1
n
P
(
j
∣
i
)
n
\hat{\rm \textbf P}(j)=\frac{\hat{n}_j}{n}=\frac{\sum_{i=1}^{n}{\rm \textbf P}(j|i)}{n}
P^(j)=nn^j=n∑i=1nP(j∣i) 然后,利用最大似然来估计其他高斯分布的参数。
P
(
X
n
∣
Θ
)
=
∏
i
=
1
n
∑
j
=
1
K
p
j
N
(
x
i
;
μ
j
,
σ
j
2
)
{\rm \textbf P}(X_n|\Theta)=\prod_{i=1}^{n}\sum_{j=1}^{K}p_j\mathcal N(x_i;\mu^j,\sigma^2_j)
P(Xn∣Θ)=i=1∏nj=1∑KpjN(xi;μj,σj2) 将其改写为
l
o
g
log
log似然函数。
log
(
P
(
X
n
∣
Θ
)
)
=
ℓ
(
X
n
;
Θ
)
ℓ
(
X
n
;
Θ
)
=
∑
i
=
1
n
l
o
g
∑
j
=
1
K
P
^
(
j
)
N
(
x
i
;
μ
j
,
σ
j
2
)
\log({\rm \textbf P}(X_n|\Theta))=\ell(X_n;\Theta) \\ \ell(X_n;\Theta)=\sum_{i=1}^{n}log\sum_{j=1}^{K}\hat{\rm \textbf P}(j)\mathcal N(x_i;\mu^j,\sigma^2_j)
log(P(Xn∣Θ))=ℓ(Xn;Θ)ℓ(Xn;Θ)=i=1∑nlogj=1∑KP^(j)N(xi;μj,σj2) 其中
p
j
p_j
pj已经被替换为前面估计出来的
P
^
(
j
)
\hat{\rm \textbf P}(j)
P^(j)。最后是各个参数的估计方式。
μ
^
j
=
1
n
^
j
∑
i
=
1
n
P
(
j
∣
i
)
x
i
σ
^
j
2
=
1
n
^
j
∑
i
=
1
n
P
(
j
∣
i
)
∥
x
i
−
μ
^
j
∥
2
\hat{\mu}^j=\frac{1}{\hat{n}_j}\sum^{n}_{i=1}{\rm \textbf P}(j|i)x_i \\ \hat{\sigma}_j^2=\frac{1}{\hat{n}_j}\sum_{i=1}^n{\rm \textbf P}(j|i)\|x_i-\hat{\mu}^j\|^2
μ^j=n^j1i=1∑nP(j∣i)xiσ^j2=n^j1i=1∑nP(j∣i)∥xi−μ^j∥2 (正如前面介绍参数的时候所说,这里没有利用协方差矩阵的形式,仅仅是一个例子,能够明白其推到的过程)
在文章[2]中,文章的前半部分也是利用GMM来进行说明,来看一看他的公式。
Θ
=
{
α
1
,
α
2
,
.
.
,
α
K
,
μ
1
,
μ
2
,
.
.
.
,
μ
K
,
Σ
1
,
Σ
2
,
.
.
.
,
Σ
K
}
max
Θ
P
(
X
∣
Θ
)
=
max
Θ
∏
i
P
(
x
i
∣
Θ
)
=
max
α
j
,
μ
j
Σ
j
∏
i
⟮
∑
j
=
1
K
α
j
N
(
x
i
∣
μ
j
,
Σ
j
)
⟯
\Theta=\{\alpha_1,\alpha_2,..,\alpha_K,\mu_1,\mu_2,...,\mu_K,\Sigma_1,\Sigma_2,...,\Sigma_K\} \\ \max_\Theta P(X|\Theta)=\max_\Theta \prod_i P(x_i|\Theta)=\max_{\alpha_j,\mu_j\Sigma_j}\prod_i\lgroup\sum_{j=1}^{K}\alpha_j\mathcal N(x_i|\mu_j,\Sigma_j)\rgroup
Θ={α1,α2,..,αK,μ1,μ2,...,μK,Σ1,Σ2,...,ΣK}ΘmaxP(X∣Θ)=Θmaxi∏P(xi∣Θ)=αj,μjΣjmaxi∏⟮j=1∑KαjN(xi∣μj,Σj)⟯ 转化为
l
o
g
log
log似然函数
max
Θ
l
o
g
P
(
X
∣
Θ
)
=
max
Θ
l
o
g
(
∏
i
P
(
x
i
∣
Θ
)
)
=
max
Θ
∑
i
l
o
g
(
P
(
x
i
∣
Θ
)
)
=
max
α
i
,
μ
j
,
Σ
j
∑
i
l
o
g
(
∑
j
=
1
K
α
j
N
(
x
i
∣
μ
j
,
Σ
j
)
)
\max_\Theta logP(X|\Theta)=\max_\Theta log(\prod_i P(x_i|\Theta))=\max_\Theta \sum_i log(P(x_i|\Theta))\\=\max_{\alpha_i,\mu_j,\Sigma_j}\sum_i log(\sum_{j=1}^{K}\alpha_j \mathcal N(x_i|\mu_j,\Sigma_j))
ΘmaxlogP(X∣Θ)=Θmaxlog(i∏P(xi∣Θ))=Θmaxi∑log(P(xi∣Θ))=αi,μj,Σjmaxi∑log(j=1∑KαjN(xi∣μj,Σj)) 这个公式跟前面讲解GMM的时候的公式是一致的。虽然从前面的讲解中,我们知道了GMM的参数如何用EM算法进行估计,但是EM算法本身的描述更为形式化,或者说更通用,他可以应用于很多优化问题,本质上的想法就是要去优化一个似然函数,或者说
l
o
g
−
log-
log−似然函数,如
max
Θ
l
o
g
(
X
∣
Θ
)
=
max
Θ
l
o
g
(
∏
i
P
(
x
i
∣
Θ
)
)
=
max
Θ
∑
i
l
o
g
(
P
(
x
i
∣
Θ
)
)
\max_\Theta log(X|\Theta)=\max_\Theta log(\prod_i P(x_i|\Theta))=\max_\Theta \sum_i log(P(x_i|\Theta))
Θmaxlog(X∣Θ)=Θmaxlog(i∏P(xi∣Θ))=Θmaxi∑log(P(xi∣Θ)) 那么也就是说,将问题更改为,如果这个概率的分布并不是混合高斯分布的情况下,甚至于更通用的场景下,应该怎么来解决这个优化问题。这里文章[2]介绍了一些数学基础才开始将EM算法,我这里直接就开始将EM,然后穿插着再把这些数学基础带上,这里最重要的就是这个Jensen’s inequality。
通俗一点来讲,在前面的GMM中,一个指示样本
x
x
x属于某个类别的变量,就被称为隐含变量,用公式写出来,就是:
l
o
g
(
X
∣
θ
)
=
∑
i
l
o
g
(
∑
z
i
p
(
x
i
,
z
i
∣
θ
)
)
log(X|\theta)=\sum_i log(\sum_{z_i}p(x_i,z_i|\theta))
log(X∣θ)=i∑log(zi∑p(xi,zi∣θ)) 也就是说, 通过遍历隐含变量的空间,计算整个边缘概率,就是原始的概率结果。
接着前面的内容继续来说,通过加入了隐含变量,或者说我本来就有隐含变量,那么似然值应该是如下过程:
P
(
x
i
∣
θ
)
=
∑
j
=
1
K
P
(
x
i
∣
t
i
=
j
,
θ
)
P
(
t
i
=
j
∣
θ
)
=
∑
j
=
1
K
P
(
x
i
,
t
i
=
j
∣
θ
)
P(x_i|\theta)=\sum_{j=1}^{K}P(x_i|t_i=j,\theta)P(t_i=j|\theta)=\sum_{j=1}^{K}P(x_i,t_i=j|\theta)
P(xi∣θ)=j=1∑KP(xi∣ti=j,θ)P(ti=j∣θ)=j=1∑KP(xi,ti=j∣θ) 其中,
t
i
t_i
ti是一个隐含变量,其解释了
x
i
x_i
xi属于哪个聚类的类别。那么根据jensen不等式的内容,
l
o
g
(
∑
j
=
1
K
β
j
ν
j
)
≥
∑
j
=
1
K
l
o
g
(
β
j
ν
j
)
log(\sum_{j=1}^{K}\beta_j\nu_j)\geq\sum_{j=1}^{K}log(\beta_j\nu_j)
log(j=1∑Kβjνj)≥j=1∑Klog(βjνj) 其中,各项内容分别是
β
j
=
P
(
t
i
=
j
∣
θ
)
ν
j
=
P
(
x
i
∣
t
i
=
j
,
θ
)
\beta_j=P(t_i=j|\theta)\\ \nu_j=P(x_i|t_i=j,\theta)
βj=P(ti=j∣θ)νj=P(xi∣ti=j,θ) 前面已经定义了,本来要求解得最优化目标是
max
Θ
l
o
g
(
X
∣
Θ
)
=
max
Θ
l
o
g
(
∏
i
P
(
x
i
∣
Θ
)
)
=
max
Θ
∑
i
l
o
g
(
P
(
x
i
∣
Θ
)
)
\max_\Theta log(X|\Theta)=\max_\Theta log(\prod_i P(x_i|\Theta))=\max_\Theta \sum_i log(P(x_i|\Theta))
Θmaxlog(X∣Θ)=Θmaxlog(i∏P(xi∣Θ))=Θmaxi∑log(P(xi∣Θ)) 那么讲上述内容带入进去,
∑
i
l
o
g
(
P
(
x
i
∣
θ
)
)
=
∑
i
l
o
g
(
∑
j
=
1
K
P
(
x
i
∣
t
i
=
j
,
θ
)
P
(
t
i
=
j
∣
θ
)
)
≥
∑
i
∑
j
=
1
K
l
o
g
(
β
j
ν
j
)
=
∑
i
∑
j
=
1
K
l
o
g
(
P
(
t
i
=
j
∣
θ
)
P
(
x
i
∣
t
i
=
j
,
θ
)
)
\sum_i log(P(x_i|\theta))=\sum_i log(\sum_{j=1}^{K}P(x_i|t_i=j,\theta)P(t_i=j|\theta))\geq\\ \sum_i\sum_{j=1}^{K}log(\beta_j\nu_j)=\sum_i\sum_{j=1}^{K}log(P(t_i=j|\theta)P(x_i|t_i=j,\theta))
i∑log(P(xi∣θ))=i∑log(j=1∑KP(xi∣ti=j,θ)P(ti=j∣θ))≥i∑j=1∑Klog(βjνj)=i∑j=1∑Klog(P(ti=j∣θ)P(xi∣ti=j,θ)) 但是公式右边是一个
θ
\theta
θ的函数,还要有一个分布
q
q
q
l
o
g
(
P
(
x
i
∣
θ
)
)
=
l
o
g
(
∑
j
=
1
K
P
(
x
i
∣
t
i
=
j
,
θ
)
P
(
t
i
=
j
∣
θ
)
)
=
l
o
g
(
∑
j
=
1
K
P
(
x
i
,
t
i
=
j
∣
θ
)
)
=
l
o
g
(
∑
j
=
1
K
q
(
t
i
=
j
)
q
(
t
i
=
j
)
P
(
x
i
,
t
i
=
j
∣
θ
)
)
=
l
o
g
(
∑
j
=
1
K
q
(
t
i
=
j
)
P
(
x
i
,
t
i
=
j
∣
θ
q
(
t
i
=
j
)
)
log(P(x_i|\theta))=log(\sum_{j=1}^{K}P(x_i|t_i=j,\theta)P(t_i=j|\theta)) \\ =log(\sum_{j=1}^{K}P(x_i,t_i=j|\theta)) \\ =log(\sum_{j=1}^{K}\frac{q(t_i=j)}{q(t_i=j)}P(x_i,t_i=j|\theta))\\ =log(\sum_{j=1}^{K}q(t_i=j)\frac{P(x_i,t_i=j|\theta}{q(t_i=j)})
log(P(xi∣θ))=log(j=1∑KP(xi∣ti=j,θ)P(ti=j∣θ))=log(j=1∑KP(xi,ti=j∣θ))=log(j=1∑Kq(ti=j)q(ti=j)P(xi,ti=j∣θ))=log(j=1∑Kq(ti=j)q(ti=j)P(xi,ti=j∣θ) 再次利用jensen不等式。
l
o
g
(
∑
j
=
1
K
q
(
t
i
=
j
)
P
(
x
i
,
t
i
=
j
∣
θ
)
q
(
t
i
=
j
)
)
≥
∑
j
=
1
K
l
o
g
(
q
(
t
i
=
j
)
P
(
x
i
,
t
i
=
j
∣
θ
)
q
(
t
i
=
j
)
)
=
L
(
θ
,
q
)
log(\sum_{j=1}^{K}q(t_i=j)\frac{P(x_i,t_i=j|\theta)}{q(t_i=j)})\geq\sum_{j=1}^{K}log(q(t_i=j)\frac{P(x_i,t_i=j|\theta)}{q(t_i=j)})=L(\theta,q)
log(j=1∑Kq(ti=j)q(ti=j)P(xi,ti=j∣θ))≥j=1∑Klog(q(ti=j)q(ti=j)P(xi,ti=j∣θ))=L(θ,q) 这部分内容定义了一个下限,保证所有的值都小于等于最大似然值。 那么下面的步骤就是最大化这个下限。
1)Expection Step
q
k
+
1
=
arg
max
L
(
θ
k
,
q
k
)
q^{k+1}=\arg\max L(\theta^k,q^k)
qk+1=argmaxL(θk,qk) 固定参数
θ
\theta
θ,求解最大的下限值。而上述公式可以推导为
q
k
+
1
(
t
i
)
=
arg
max
L
(
θ
k
,
q
k
)
=
P
(
t
i
∣
x
i
,
θ
)
q^{k+1}(t_i)=\arg \max L(\theta^k,q^k)=P(t_i|x_i,\theta)
qk+1(ti)=argmaxL(θk,qk)=P(ti∣xi,θ) 这个公式就是前面GMM时候求解的
P
(
j
∣
x
)
P(j|x)
P(j∣x)
2)Maximization Step
θ
k
+
1
=
arg
max
L
(
θ
k
,
q
k
+
1
)
\theta^{k+1}=\arg \max L(\theta^k,q^{k+1})
θk+1=argmaxL(θk,qk+1) 固定
q
q
q然后最大的这个下限,这里文章[2]的公式就不对了,感觉他少推到了一些东西,最后就得到了一个期望值。
jensen不等式的内容:
E
[
f
(
x
)
]
≥
f
(
E
X
)
{\rm E}[f(x)]\geq f({\rm E}X)
E[f(x)]≥f(EX) 其中
f
f
f是一个凸函数(
f
′
′
(
x
)
≥
0
f^{''}(x)\geq 0
f′′(x)≥0),
X
X
X是一个随机变量,也就是他的期望值在某些函数下,不等式成立。