【未完成】混合高斯模型

单一高斯分布情况

在一维条件下使用MLE对未知参数 μ \mu μ σ 2 \sigma^2 σ2 进行估计,首先写出
p ( x ) = ∏ n = 1 N N ( x n ∣ μ , σ ) = 1 ( 2 π σ 2 ) N 2 e x p [ − 1 2 σ 2 ∑ n = 1 N ( x n − μ ) 2 ] , p(x)=\prod_{n=1}^{N}N(x_n|\mu,\sigma)=\frac{1}{(2\pi\sigma^2)^\frac{N}{2}}exp[-\frac{1}{2\sigma^2}\sum_{n=1}^{N}(x_n-\mu)^2], p(x)=n=1NN(xnμ,σ)=(2πσ2)2N1exp[2σ21n=1N(xnμ)2],
取ln后得到:
l n p ( x ) = − N 2 l n ( 2 π ) − N 2 l n ( σ 2 ) − 1 2 σ 2 ∑ n = 1 N ( x n − μ ) 2 , lnp(x)=-\frac{N}{2}ln(2\pi)-\frac{N}{2}ln(\sigma^2)-\frac{1}{2\sigma^2}\sum_{n=1}^{N}(x_n-\mu)^2, lnp(x)=2Nln(2π)2Nln(σ2)2σ21n=1N(xnμ)2,
分别对 μ \mu μ σ 2 \sigma^2 σ2求偏导并令导数为0即可得到估计值。

例如对 μ \mu μ求导得到:
∂ l n p ( x ) ∂ μ = 1 σ 2 ∑ n = 1 N ( x n − μ ) = 0 μ ^ = 1 N ∑ n = 1 N x n \frac{\partial lnp(x)}{\partial \mu}=\frac{1}{\sigma^2}\sum_{n=1}^{N}(x_n-\mu)=0 \\ \hat \mu = \frac{1}{N}\sum_{n=1}^{N}x_n μlnp(x)=σ21n=1N(xnμ)=0μ^=N1n=1Nxn
只与观测值有关。

混合高斯情况

在一维情况下假设存在两个高斯分布,假设方差相同,参数分别是 μ 1 , μ 2 , σ \mu_1,\mu_2,\sigma μ1,μ2,σ。假设概率分别为p和1-p,可以写出 p ( x ) p(x) p(x)为:
p ( x ) = p N ( x ∣ μ 1 , σ ) + ( 1 − p ) N ( x ∣ μ 2 , σ ) p(x)=pN(x|\mu_1,\sigma)+(1-p)N(x|\mu_2,\sigma) p(x)=pN(xμ1,σ)+(1p)N(xμ2,σ)
对其取对数后并对 μ 1 \mu_1 μ1求偏导得到:
∂ l n p ( x ) ∂ μ 1 = ∑ n = 1 N p N ( x n ∣ μ 1 , σ ) x n − μ 1 σ 2 p N ( x ∣ μ 1 , σ ) + ( 1 − p ) N ( x ∣ μ 2 , σ ) \frac{\partial lnp(x)}{\partial \mu_1}=\sum_{n=1}^{N} \frac{pN(x_n|\mu_1,\sigma)\frac{x_n-\mu_1}{\sigma^2}}{pN(x|\mu_1,\sigma)+(1-p)N(x|\mu_2,\sigma)} μ1lnp(x)=n=1NpN(xμ1,σ)+(1p)N(xμ2,σ)pN(xnμ1,σ)σ2xnμ1
令其为0得到:
μ ^ 1 = ∑ n = 1 N p N ( x n ∣ μ 1 , σ ) x n p N ( x ∣ μ 1 , σ ) + ( 1 − p ) N ( x ∣ μ 2 , σ ) ∑ n = 1 N p N ( x n ∣ μ 1 , σ ) p N ( x ∣ μ 1 , σ ) + ( 1 − p ) N ( x ∣ μ 2 , σ ) \hat \mu_1 = \frac{\sum_{n=1}^{N} \frac{pN(x_n|\mu_1,\sigma)x_n}{pN(x|\mu_1,\sigma)+(1-p)N(x|\mu_2,\sigma)}}{\sum_{n=1}^{N} \frac{pN(x_n|\mu_1,\sigma)}{pN(x|\mu_1,\sigma)+(1-p)N(x|\mu_2,\sigma)}} μ^1=n=1NpN(xμ1,σ)+(1p)N(xμ2,σ)pN(xnμ1,σ)n=1NpN(xμ1,σ)+(1p)N(xμ2,σ)pN(xnμ1,σ)xn
可见估计值是与带估计值有关的,这使得MLE不能得到解析解。

EM方法来源

如果在上式估计中我们已知 ∑ n = 1 N p N ( x n ∣ μ 1 , σ ) p N ( x ∣ μ 1 , σ ) + ( 1 − p ) N ( x ∣ μ 2 , σ ) \sum_{n=1}^{N} \frac{pN(x_n|\mu_1,\sigma)}{pN(x|\mu_1,\sigma)+(1-p)N(x|\mu_2,\sigma)} n=1NpN(xμ1,σ)+(1p)N(xμ2,σ)pN(xnμ1,σ),由贝叶斯定理可以知道这其实就是在观测到 x x x时候对应其属于第1类的后验概率 p ( z 1 ∣ x ) p(z_1|x) p(z1x)

更通用的混合模型表达形式为 l n p ( x ∣ θ ) lnp(x|\theta) lnp(xθ),其中 θ \theta θ为待估计参数,利用全概率公式可以写为:
l n p ( x ∣ θ ) = l n ∑ z p ( x , z ∣ θ ) = l n ∑ z q ( z ) p ( x , z ∣ θ ) q ( z ) = l n E z ∼ q [ p ( x , z ∣ θ ) q ( z ) ] \begin{aligned} lnp(x|\theta)&=ln\sum_{z}p(x,z|\theta) \\ &=ln\sum_{z}q(z)\frac{p(x,z|\theta)}{q(z)} \\ &=lnE_{z\sim q}[\frac{p(x,z|\theta)}{q(z)}] \end{aligned} lnp(xθ)=lnzp(x,zθ)=lnzq(z)q(z)p(x,zθ)=lnEzq[q(z)p(x,zθ)]
由于上式中包含了log-sum形式不利于求导,利用Jensen不等式可以得到:
l n E z ∼ q [ p ( x , z ∣ θ ) q ( z ) ] ≥ E z ∼ q [ l n p ( x , z ∣ θ ) q ( z ) ] = ∑ z q ( z ) l n p ( x , z ∣ θ ) q ( z ) lnE_{z\sim q}[\frac{p(x,z|\theta)}{q(z)}]\geq E_{z\sim q}[ln\frac{p(x,z|\theta)}{q(z)}]=\sum_{z}q(z)ln\frac{p(x,z|\theta)}{q(z)} lnEzq[q(z)p(x,zθ)]Ezq[lnq(z)p(x,zθ)]=zq(z)lnq(z)p(x,zθ)
可以将log-sum形式去除掉,同时最大化 E z ∼ q [ l n p ( x , z ∣ θ ) q ( z ) ] E_{z\sim q}[ln\frac{p(x,z|\theta)}{q(z)}] Ezq[lnq(z)p(x,zθ)]可以保证 l n E z ∼ q [ p ( x , z ∣ θ ) q ( z ) ] lnE_{z\sim q}[\frac{p(x,z|\theta)}{q(z)}] lnEzq[q(z)p(x,zθ)]也在增大,具体形式如下图所示:
在这里插入图片描述
由Jensen不等式知在等号成立时候, X = E [ X ] X=E[X] X=E[X],此时可以得到:
q ( z ) = p ( z ∣ x , θ ) q(z)=p(z|x,\theta) q(z)=p(zx,θ)
即后验概率。

用EM方法求解GMM

假设存在K种高斯分布混合在一起得到一组观测值 x x x,每类高斯分布的均值和方差分别为 μ k \mu_k μk Σ k \Sigma_k Σk
p ( x ) = ∏ n = 1 N p ( x n ∣ θ ) , p(x)=\prod_{n=1}^{N}p(x_n|\theta), p(x)=n=1Np(xnθ)
其中 θ \theta θ表示观测值 x n x_n xn的均值和方差,但是这样任然不能得到正确的分布形式,不知道每一个观测值 x n x_n xn对应的均值和方差,此时数据为incomplete-data。因此需要引入一个参数 z z z来表示其属性,得到complete-data。

在概率中,我们观测到的x都是有一个属性的,也就是它的label,完整形式应该是 p ( x n , z k ) p(x_n,z_k) p(xn,zk)。于是可以改写为:
p ( x ) = ∑ j = 1 K p ( x , z j ) = ∏ n = 1 N ∑ j = 1 K p ( x n , z j ) = ∏ n = 1 N ∑ j = 1 K p ( z j ) p ( x n ∣ z j ) = ∏ n = 1 N ∑ j = 1 K p ( z j ) N ( x n ∣ μ j , Σ j ) ,   \begin{align} p(x)&=\sum_{j=1}^{K}p(x,z_j)\nonumber \\&=\prod_{n=1}^{N}\sum_{j=1}^{K}p(x_n,z_j)\nonumber \\&=\prod_{n=1}^{N}\sum_{j=1}^{K}p(z_j)p(x_n|z_j)\nonumber \\&=\prod_{n=1}^{N}\sum_{j=1}^{K}p(z_j)N(x_n|\mu_j,\Sigma_j),\nonumber \end{align} \ p(x)=j=1Kp(x,zj)=n=1Nj=1Kp(xn,zj)=n=1Nj=1Kp(zj)p(xnzj)=n=1Nj=1Kp(zj)N(xnμj,Σj) 
隐变量z决定了xn的均值和方差

其中 p ( z k ) p(z_k) p(zk)就表示第k类高斯分布出现的概率,而 p ( x n ∣ z k ) = N ( x n ∣ μ k , Σ k ) p(x_n|z_k)=N(x_n|\mu_k,\Sigma_k) p(xnzk)=N(xnμk,Σk),我们就可以写出具体的表达式了:
N ( x n ∣ μ k , Σ k ) = 1 ( 2 π ) D d e t ( Σ ) e x p [ − 1 2 ( x n − μ k ) T Σ − 1 ( x n − μ k ) ] . N(x_n|\mu_k,\Sigma_k)=\frac{1}{\sqrt{(2\pi)^Ddet(\Sigma)}}exp[-\frac{1}{2}(x_n-\mu_k)^T\Sigma^{-1}(x_n-\mu_k)]. N(xnμk,Σk)=(2π)Ddet(Σ) 1exp[21(xnμk)TΣ1(xnμk)].
再对其取ln后得到:
l n p ( x ) = ∑ n = 1 N l n ∑ j = 1 K π k N ( x n ∣ μ k , Σ k ) lnp(x)=\sum_{n=1}^{N}ln\sum_{j=1}^{K}\pi_kN(x_n|\mu_k,\Sigma_k) lnp(x)=n=1Nlnj=1KπkN(xnμk,Σk)

接下来我们不需要使用Jensen不等式,Jensen不等式在GMM问题中仅仅提供了隐函数的概念,并给出具体的求法。

EM(Expectation Maximum)最大期望法,包含E步和M步,分别是求出后验概率(期望),然后通过期望来优化参数。其中E步和MLE一样需要对似然函数求偏导并令其为0,需要用到很多矩阵求导方法,可以在这个网站https://www.matrixcalculus.org/上得到结果。

E步

μ k \mu_k μk求偏导并令其为0得到:
∂ l n p ( x ) ∂ μ k = ∑ n = 1 N π k N ( x n ∣ μ k , Σ k ) ( − Σ k − 1 ) ( μ k − x n ) ∑ j = 1 K π j N ( x n ∣ μ j , Σ j ) \frac{\partial lnp(x)}{\partial \mu_k}=\sum_{n=1}^{N}\frac{\pi_kN(x_n|\mu_k,\Sigma_k)(-\Sigma_k^{-1})(\mu_k-x_n)}{\sum_{j=1}^{K}\pi_jN(x_n|\mu_j,\Sigma_j)} μklnp(x)=n=1Nj=1KπjN(xnμj,Σj)πkN(xnμk,Σk)(Σk1)(μkxn)
∑ n = 1 N γ ( z n k ) ( μ k − x n ) = 0 \sum_{n=1}^{N}\gamma(z_{nk})(\mu_k-x_n)=0 n=1Nγ(znk)(μkxn)=0
μ ^ k = 1 N k ∑ n = 1 N γ ( z n k ) x n \hat \mu_k=\frac{1}{N_k}\sum_{n=1}^{N}\gamma(z_{n k})x_n μ^k=Nk1n=1Nγ(znk)xn
其中 p ( z k ∣ x n ) = γ ( z n k ) = π k N ( x n ∣ μ k , Σ k ) ∑ j = 1 K π k N ( x n ∣ μ j , Σ j ) p(z_k|x_n)=\gamma(z_{nk})=\frac{\pi_k N(x_n|\mu_k,\Sigma_k)}{\sum_{j=1}^{K}\pi_kN(x_n|\mu_j,\Sigma_j)} p(zkxn)=γ(znk)=j=1KπkN(xnμj,Σj)πkN(xnμk,Σk)表示观测到 x n x_n xn属于为 z k z_k zk类的后验概率,也可以叫作responsibility, N k = ∑ n = 1 N γ ( z n k ) N_k=\sum_{n=1}^{N}\gamma(z_{nk}) Nk=n=1Nγ(znk)表示k类的个数。因此每一个观测到的 x n x_n xn乘上权重其属于 z k z_k zk类的概率权重 γ ( z n k ) \gamma(z_{nk}) γ(znk)之后再除以k类的总数 N k N_k Nk,就得到了第k类的均值 μ k \mu_k μk

Σ k \Sigma_k Σk求导并令其为0得到:
∂ l n p ( x ) ∂ Σ k = ∑ n = 1 N γ ( z n k ) ( − 1 2 ) ( Σ − 1 μ k − x n ) ( μ k − x n ) T Σ − 1 ) \frac{\partial lnp(x)}{\partial \Sigma_k}=\sum_{n=1}^{N}\gamma(z_{nk})(-\frac{1}{2})(\Sigma^{-1}\mu_k-x_n)(\mu_k-x_n)^T\Sigma^{-1}) Σklnp(x)=n=1Nγ(znk)(21)(Σ1μkxn)(μkxn)TΣ1)
Σ ^ k = 1 N k ∑ n = 1 N γ ( z n k ) ( μ k − x n ) ( μ k − x n ) T . \hat \Sigma_k=\frac{1}{N_k}\sum_{n=1}^{N}\gamma(z_{nk})(\mu_k-x_n)(\mu_k-x_n)^T. Σ^k=Nk1n=1Nγ(znk)(μkxn)(μkxn)T.
该公式也是符合协方差定义 Σ = E [ x x T ] \Sigma=E[xx^T] Σ=E[xxT],并在此基础上进行加权从而得到k类的协方差。

π \pi π时因为有一个约束,因此我们需要用拉格朗日法引入约束得到目标函数:
l n p ( x ) + λ ( ∑ j = 1 K π j − 1 ) , lnp(x)+\lambda(\sum_{j=1}^{K}\pi_j-1), lnp(x)+λ(j=1Kπj1),
在此基础上对 π k \pi_k πk求导,并令其为0得到:
∂ [ l n p ( x ) + λ ( ∑ j = 1 K π j − 1 ) ] ∂ Σ k = ∑ n = 1 N N ( x n ∣ μ k , Σ k ) ∑ j = 1 K π j N ( x n ∣ μ j , Σ j ) + λ \frac{\partial [lnp(x)+\lambda(\sum_{j=1}^{K}\pi_j-1)]}{\partial \Sigma_k}=\sum_{n=1}^{N}\frac{N(x_n|\mu_k,\Sigma_k)}{\sum_{j=1}^{K}\pi_jN(x_n|\mu_j,\Sigma_j)}+\lambda Σk[lnp(x)+λ(j=1Kπj1)]=n=1Nj=1KπjN(xnμj,Σj)N(xnμk,Σk)+λ
两边同时乘上 π j \pi_j πj并对 π \pi π进行累加或者将 λ \lambda λ代入约束可以得到:
∑ j = 1 K π j ∑ n = 1 N N ( x n ∣ μ k , Σ k ) ∑ j = 1 K π j N ( x n ∣ μ j , Σ j ) + ∑ j = 1 K λ π j = 0 \sum_{j=1}^{K}\pi_j\sum_{n=1}^{N}\frac{N(x_n|\mu_k,\Sigma_k)}{\sum_{j=1}^{K}\pi_jN(x_n|\mu_j,\Sigma_j)}+\sum_{j=1}^{K}\lambda\pi_j=0 j=1Kπjn=1Nj=1KπjN(xnμj,Σj)N(xnμk,Σk)+j=1Kλπj=0
λ = − N \lambda=-N λ=N
代入 λ \lambda λ后得到:
π k = N k N , \pi_k=\frac{N_k}{N}, πk=NNk
显然这个公式的物理意义是和先前定义 π k \pi_k πk的物理意义一致的。

可以看出每一个参数都与 γ ( z n k ) = p ( z k ∣ x n ) \gamma(z_{nk})=p(z_k|x_n) γ(znk)=p(zkxn)相关的,因此只要在E步求出最新的这个值,就可以在M步中更新三个参数了。

M步

在E布我们得到了以下三个参数的迭代方式:
μ ^ k = 1 N k ∑ n = 1 N γ ( z n k ) x n \hat \mu_k=\frac{1}{N_k}\sum_{n=1}^{N}\gamma(z_{n k})x_n μ^k=Nk1n=1Nγ(znk)xn
Σ ^ k = 1 N k ∑ n = 1 N γ ( z n k ) ( μ k − x n ) ( μ k − x n ) T \hat \Sigma_k=\frac{1}{N_k}\sum_{n=1}^{N}\gamma(z_{nk})(\mu_k-x_n)(\mu_k-x_n)^T Σ^k=Nk1n=1Nγ(znk)(μkxn)(μkxn)T
π k = N k N \pi_k=\frac{N_k}{N} πk=NNk
后就可以根据迭代法来更新参数,最终收敛时得到估计值。

以下是来自参考书的步骤:
在这里插入图片描述
在这里插入图片描述

Matlab代码

待完善

参考资料

《Pattern Recognition and Machine Learning》—— Christopher M. Bishop
【机器学习】EM——期望最大(非常详细)
Gaussian mixture models and the EM algorithm —— Ramesh Sridharan

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值