introduction
本文首先引入Gaussian Mixture Model,然后介绍其具体应用——Fisher Vector。
construction
考虑用隐藏变量
Z
代表不同的高斯分布(比如
由上面两个式子可得关于
X
的边缘分布为
另外,我们定义
而对于单个样本有
derivation
假设随机变量
X={xt},t=1⋯N
是独立同分布的,其中
xt
为
d
维向量、
现在用混合高斯模型(GMM)来近似这一分布
易求得 ∂L∂μi=∑t=1Nγt(zi)Σ−1i(xt−μi) ,假设协方差矩阵非奇异,令偏导数为零有 μi=1Ni∑t=1Nγt(zi)xt 。
同样令 ∂L∂Σi=0 有 Σi=1Ni∑t=1Nγt(zi)(xt−μi)(xt−μi)T 。此形式与单变量高斯分布的方差估计类似,只是每个样本点乘了一个先验概率作为权重。
设 F=L(X|λ)+β(∑i=1Kωi−1) ,由 ∂F∂ωi=0 ,得 ∑t=1Npi(xt|λi)∑j=1Kωjpj(xt|λj)+β=0 。两边同乘 ∑i=1Kωi=1 ,可得 β=−N ;两边同乘 ωi 并令 β=−N ,易得 ωi=NiN 。
综上所述,可以得到关于
X
分布全部参数的估计
具体流程:
- 选择初始参数 λ0
- E步骤:令 p(Z)=γ(Z) ,即
ωi=γ(zi)=ωiN(X|μi,Σi)∑j=1KωjN(X|μj,Σj),i=1,⋯,K- M步骤:求 λnew=argmaxθL(X|λold) ,即
μi=1Ni∑t=1Nγt(zi)xt,Σi=1Ni∑t=1Nγt(zi)(xt−μi)(xt−μi)T,i=1,⋯,K- 观察 L(X|λ) 是否收敛
其过程类似于K-means算法,不同的是对数据有先验的假设——认为它们属于一个混合高斯模型。另外它相比K-means算法需要更多的计算量和更长的迭代周期来达到收敛,因此通常先利用K-means算法找到合适的初始值 λ0 ,然后再进行EM操作。
application
模式识别方法主要分为两类,一类是生成式方法(如GMM等),主要反映同类数据之间的相似程度,可以处理长度不一的输入数据;一类是判别式方法(如SVM等),主要反映异类数据之间的差异程度,不能处理长度不一的数据但是分类效果较好。Fisher Vector想要结合二者的优势,将生成式的模型用于判别式分类器中。
假设对于一幅图片的多个
D
维同类描述子(SIFT、iDT等)是独立同分布的,可以用一个有对角协方差阵的
在线下通过大量训练样本采用EM算法得到其参数的最大似然估计。为了使关于 ω 的评价函数的区分度更大,我们引入其softmax形式
如果 K 的值越大,模型与原始分布就越接近,替代效果就越好,当然矩阵的维数也越高——可以将此矩阵作为分类依据,因为它可以看作是图片的一种表达形式,并且不同图片得到的矩阵内容会不一样。
注:这里的训练模型和计算评价的过程是分开的;如果假定对于大容量样本的一系列不同类描述子(随机变量)两两不相关,则协方差矩阵退化为对角阵即
Fisher Vector包含了比原描述子丰富得多的图像信息,因为它通过将样本转化为模型得到参数,总结了原描述子所遵循的某些规律,得到了更普遍、深刻的图像表达形式,这也是encoding technique的基本思想。
summary
高斯混合模型是单高斯模型的延伸,能够平滑地近似任意形状的密度分布,适用于多类别的划分,也可以应用于复杂对象的建模。
reference
- Expectation–Maximization Algorithm
- Pattern Recognization and Maching Learning
- Image Classification with the Fisher Vector: Theory and Practice
- 高斯混合模型(GMM)介绍以及学习笔记
- Fisher vector学习笔记