EM算法解决GMM问题
2015-11-22 20:52
197 查看
Note:本篇博文1,2部分主要是对书籍Pattern Recognition and Mechine Learning 第九章9.2节的翻译
高斯模型的形式:
这就表示此模型是由K个高斯分布线性叠加而成。
πk\pi_k必须满足0≤πk≤10\le\pi_k\le1和∑k=1Kπk=1\sum_{k=1}^K\pi_k=1
因为z是1-K维的表示,所以其分布可以写为
p(z)=∏k=1Kπzkkp(z)=\prod_{k=1}^K \pi_k^{z_k}
同样的,在确定了z后x的条件概率是一个高斯分布
p(x|zk=1)=N(x|uk,∑k)p(x|z_k=1)=\mathcal N(x|u_k,\sum_k)
也可以写成:
由此得
我们可以把π\pi看作zk=1z_k=1的先验概率,γ(zk)\gamma(z_k)看作已知x时的后验概率。
两侧乘∑k\sum_k得到
对数似然函数关于∑k\sum_k求导可得
最后,我们关于混合系数πk\pi_k来最大化lnp(X|π,μ,∑)lnp(X|\pi,\mu,\sum)。考虑到约束条件∑z=1\sum_z=1引入一个拉格朗日乘子:
对πk\pi_k求导得到
最终得到(这里我推导不出来)
其中:
检查参数或者对数似然函数的收敛性。如果不满足收敛准则,返回第二步。
高斯混合模型
高斯混合模型是几个高斯成分的简单线性叠加,可以提供比单高斯更加丰富的密度模型。高斯模型的形式:
这就表示此模型是由K个高斯分布线性叠加而成。
高斯混合模型公式的推导
引入一个K维的二进制随机变量z,其中只有一个元素zkz_k为1,其他元素都为0。因此zkz_k的值满足zk∈0,1z_k\in{0,1}并且∑kzk=1\sum_k z_k=1。通过哪个元素不为0,可以看出向量z有K种可能的状态。p(zk=1)=πkp(z_k=1)=\pi_kπk\pi_k必须满足0≤πk≤10\le\pi_k\le1和∑k=1Kπk=1\sum_{k=1}^K\pi_k=1
因为z是1-K维的表示,所以其分布可以写为
p(z)=∏k=1Kπzkkp(z)=\prod_{k=1}^K \pi_k^{z_k}
同样的,在确定了z后x的条件概率是一个高斯分布
p(x|zk=1)=N(x|uk,∑k)p(x|z_k=1)=\mathcal N(x|u_k,\sum_k)
也可以写成:
由此得
后验概率
另外一个具有重要作用的度量是x确定时z的条件概率。我们可以使用 γ(zk)\gamma(z_k) 来表示p(zk=1|x)p(z_k=1|x),其值可以用贝叶斯公式求得我们可以把π\pi看作zk=1z_k=1的先验概率,γ(zk)\gamma(z_k)看作已知x时的后验概率。
最大似然
假定一观测样本集x1,...,xN{x_1,...,x_N},我们希望用一个高斯混合模型来描述。我们用一个N*D的矩阵X来表示这个数据集,X的第n行为xTnx_n^T。同样地,相应的隐含变量可以用N*K的矩阵Z表示,每一行是zTnz_n^T。假定每个样本点是从概率分布中独立地抽取出来的,那么对数似然函数可以表示为高斯分布的EM算法
更新参数
对上面的对数似然函数关于μk\mu_k求偏导使之等于0,我们得到两侧乘∑k\sum_k得到
对数似然函数关于∑k\sum_k求导可得
最后,我们关于混合系数πk\pi_k来最大化lnp(X|π,μ,∑)lnp(X|\pi,\mu,\sum)。考虑到约束条件∑z=1\sum_z=1引入一个拉格朗日乘子:
对πk\pi_k求导得到
最终得到(这里我推导不出来)
算法步骤
给一个高斯混合模型,我们的目标是最大化与参数(高斯成分的均值,协方差和混合系数)相关的对数似然函数。1 Initialization
舒适化均值μk\mu_k,协方差矩阵∑k\sum_k和混合系数πk\pi_k,并且估计对数似然函数(log likelihood)的初始值。2 E step
利用当前参数计算3 M step
重新估计参数其中:
4 计算log likelihood
检查参数或者对数似然函数的收敛性。如果不满足收敛准则,返回第二步。
算法实现
算法应用
相关文章推荐
- Django初体验——搭建简易blog
- BZOJ4320: ShangHai2006 Homework
- 《leetCode》:Unique Paths II
- 小白学算法2.2——选择排序
- ubuntu 14.04 终端 打开文件编辑 i使用不了 不能插入了
- hibernate继承关系映射方法(一)--共享一张表
- angularJS学习之路(四)---作用域(1)
- hpuoj 1287: HH实习 (打表)
- Xcode 6怎么创建Category文件
- jvm 加载class文件过程
- 练习
- [AlwaysOn Availability Groups]AlwaysOn等待类型
- oracle优化几点注意
- ArcSDE数据库连接(直连、服务连)与GT_Geometry存储配置图解
- 黑客完全修炼手册(收藏)
- 阮老师谈泊松分布
- 2015.11.22
- New for ASP.NET Web Pages: Conditional attributes
- jquery对象与js对象的相互转换
- [Xcode] adjust the iphone simulator size