此文章主要是结合哔站shuhuai008大佬的白板推导视频:GMM_95min
全部笔记的汇总贴:机器学习-白板推导系列笔记
一、模型介绍
(一)几何角度
可以认为高斯混合模型是将多个高斯分布加权平均而成的模型:
p ( x ) = ∑ k = 1 K α k N ( μ k , Σ k ) , ∑ k = 1 K α k = 1 p(x)=\sum_{k=1}^{K}\alpha _{k}N(\mu _{k},\Sigma _{k}),\sum_{k=1}^{K}\alpha _{k}=1 p(x)=k=1∑KαkN(μk,Σk),k=1∑Kαk=1
(二)混合模型(或者生成模型)角度
可以认为高斯混合模型是一种含有隐变量的生成模型:
x x x:observed variable
z z z:latent variable
z z z是隐变量,表示对应的样本 x x x属于哪一个高斯分布,其概率分为如下表:
z z z | p p p |
---|---|
C 1 C_1 C1 | p 1 p_1 p1 |
C 2 C_2 C2 | p 2 p_2 p2 |
⋯ \cdots ⋯ | ⋯ \cdots ⋯ |
C k C_k Ck | p k p_k pk |
可以认为这里的概率 p k p_k pk就是几何角度加权平均中权重,两种角度的解释其实是一个意思。
二、用极大似然估计来求解
X : o b s e r v e d d a t a → X = ( x 1 , x 2 , ⋯ , x N ) X:observed data\rightarrow X=(x_{1},x_{2},\cdots ,x_{N}) X:observeddata→X=(x1,x2,⋯,xN)
( X , Z ) : c o m l e t e d a t a (X,Z):comlete data (X,Z):comletedata
θ : p a r a m e t e r → θ = { p 1 , p 2 , ⋯ , p k , μ 1 , μ 2 , ⋯ , μ k , Σ 1 , Σ 2 , ⋯ , Σ k } , ∑ i = 1 K p k = 1 \theta:parameter\rightarrow \theta =\left \{p_{1},p_{2},\cdots ,p_{k},\mu _{1},\mu _{2},\cdots ,\mu _{k},\Sigma _{1},\Sigma _{2},\cdots ,\Sigma _{k}\right \},\sum_{i=1}^{K}p_{k}=1 θ:parameter→θ={ p1,p2,⋯,pk,μ1,μ2,⋯,μk,Σ1,Σ2,⋯,Σk},∑i=1Kpk=1
以上为我们的数据以及需要求解的参数。接下来我们表示一下概率 p ( x ) p(x) p(x):
p ( x ) = ∑ z p ( x , z ) = ∑ k = 1 K p ( x , z = C k ) = ∑ k = 1 K p ( z = C k ) ⋅ p ( x ∣ z = C k ) = ∑ k = 1 K p k ⋅ N ( x ∣ μ k , Σ k ) p(x)=\sum _{z}p(x,z)\\ =\sum _{k=1}^{K}p(x,z=C_{k})\\ =\sum _{k=1}^{K}p(z=C_{k})\cdot p(x|z=C_{k})\\ =\sum _{k=1}^{K}p_{k}\cdot N(x|\mu _{k},\Sigma _{k}) p(x)=z∑p(x,z)=k=1∑Kp(x,z=Ck)=k=1∑Kp(z=Ck)⋅p(x∣z=Ck)=k=1∑Kpk⋅N(x∣μk,Σk)
然后我们使用极大似然估计法求解这个参数估计问题,
θ ^ M L E = a r g m a x θ l o g p ( X ) = a r g m a x θ l o g ∏ i = 1 N p ( x i ) = a r g m a x θ ∑ i = 1 N l o g p ( x i ) = a r g m a x θ ∑ i = 1 N l o g ∑ k = 1 K p k ⋅ N ( x i ∣ μ k , Σ k ) \hat{\theta }_{MLE}=\underset{\theta }{argmax}\; log\; p(X)\\ =\underset{\theta }{argmax}\; log\prod_{i=1}^{N}p(x_{i})\\ =\underset{\theta }{argmax}\sum_{i=1}^{N}log\; p(x_{i})\\ =\underset{\theta }{argmax}\sum_{i=1}^{N}{\color{Red}{log\sum _{k=1}^{K}}}p_{k}\cdot N(x_{i}|\mu _{k},\Sigma _{k}) θ^MLE=θargmaxlogp(X)=θargmaxlogi=1∏Np(xi)=θargmaxi=1∑Nlogp(xi)=θargmaxi=1∑Nlogk=1∑Kpk⋅N(xi∣μk,Σk)
极大似然估计法不能得到解析解的原因为 l o g log log函数内部出现了求和符号。当然我们可以使用梯度下降法来进行求解,但是对于含有隐变量的模型来说使用EM算法是更为合适的。
三、使用EM算法求解
由于使用EM算法需要用到联合概率 p ( x , z ) p(x,z) p(x,z)和后验 p ( z ∣ x ) p(z|x) p(z∣x),所有我们首先写出这两个概率的表示:
p ( x , z ) = p ( z ) p ( x ∣ z ) = p z ⋅ N ( x ∣ μ z , Σ z ) p ( z ∣ x ) = p ( x , z ) p ( x ) = p z ⋅ N ( x ∣ μ z , Σ z ) ∑ k = 1 K p k ⋅ N ( x ∣ μ k , Σ k ) p(x,z)=p(z)p(x|z)=p_{z}\cdot N(x|\mu _{z},\Sigma _{z})\\ p(z|x)=\frac{p(x,z)}{p(x)}=\frac{p_{z}\cdot N(x|\mu _{z},\Sigma _{z})}{\sum_{k=1}^{K}p_{k}\cdot N(x|\mu _{k},\Sigma _{k})} p(x,z)=p(z)p(x∣z)=pz⋅N(x∣μz,Σz)p(z∣x)=p(x)p(x,z)=∑k=1Kpk⋅N(x∣μk,Σk)pz⋅N(x∣μz