之前想了解Fisher Vector(以下简称FV)和 Fisher Kernel(以下简称FK) ,花了很长时间查论文看博客,总算明白了点皮毛,为了以后自己能够记得起来,决定用自己能懂的话码出来。
1、FV的优点
FV和 广泛应用于图像分类、行为识别领域。为什么会广泛应用?肯定是因为FV有别的算法不具备的优点。什么有点呢?下面教科书一般的说明如下:
模式识别方法可以分为生成式方法和判别式方法。生成式注重对类条件概率密度函数的建模,主要反映同类数据之间的相似度,如GMM ;判别式聚焦于直接分类,反映异类数据之间的差异,如SVM 。
二者的优势:1,生成式方法可以处理长度不一的输入数据,2,判别式方法不能处理长度不一的数据但是分类效果较好。
而FV则主要结合两者优势,将生成式模型用于判别式分类器中,这就是FV的优势,那么FV如何拥有这样的优势呢?分析如下:2、FV的推导
算法的推导过程都很繁复,但是FV的推导真心不算难,仔细学习下,一两天内可以看的很明白,不过知其然未必知其所以然,至于FV是这样推导的没错,但为什么这么推导,现在为止我也没有清晰的认识,反正就是先学着吧。
【样本的处理】
FV本质上是用似然函数的梯度向量来表达一幅图像。这个梯度向量的物理意义就是数据拟合中对参数调优的过程。似然函数是哪里来的呢?
(似然函数:一种关于统计模型参数的函数。给定输出x时,关于参数θ的似然函数L(θ|x)(在数值上)等于给定参数θ后变量X的概率。这里的似然函数就是已知样本特征X之后,对样本特征参数θ进行估计的过程。)
对于一幅图像,假设有T个特征点(图像已完成预处理,已进行特征提取),那么图像可以表示为:
X={xt,t=1,2,...,T}
如果假设这些特征xt符合i.i.d(独立同分布),于是就有:
--------------------1
取对数(连乘的运算较联和复杂得多,所以用取对数进行简化):
--------------------2
其中θ为xt的特征参数。
(这里我是用p(X;θ),而不是p(X|θ),因为p(X|θ)在数理统计中表示的意思是已知θ的情况下X发生的条件概率,显然这里不是这样,p(X;θ)则表示在已知事件X的情况下,关于参数θ的估计函数。)
到这一步之后,要对2式进行具体化演算,但我们不知道p(X;θ)的函数表达式到底是什么,没关系我们选择绕道而行,用某种函数模型来模拟逼近这个p(X;θ),例如下面的GMM。
【GMM引申】
GMM(Gaussian Mixture Model)高斯混合模型,是一种用有限个高斯混合模型进行概率密度函数逼近的方法(具体介绍,以及对下面详细计算推导过程请戳这里GMM略解)。如对于上2式的p(xt;θ):
--------------------3
--------------------4,
其中
书接上文
这样上2式就可以用3、4式带入得到具体的表达式,并且θ={Wk(权值),Uk(均值),∑k(方差)},则对参数θ的估计,就有了明确的对象,即对样本的权值、均值、方差进行估计。
这时:
--------------------5
对似然函数L(X;θ)进行θ一阶导求解,对于GMM模型下的θ一阶导,即对L(X;θ)进行{Wk,Uk,∑k}一阶导求解:
--------------------6
利用EM算法进行优化(具体优化步奏戳这里EM略解),得到:
,for k>=2
--------------------7
其中
因为很多采用内积的判别式分类器要求我们输入的必须是归一化的特征向量,这里需要引入Fisher Information Matrix (Fisher信息矩阵。简称FI,表示为I )进行归一化。
【FI引申】
FI说白了就是FV/FK这套算法里,构造出来的一个矩阵,它包含数据的丰富信息,对于计算有很大帮助。(知乎上有介绍FI的,戳这里知乎FI介绍)
对于上6式,我们令:
--------------------8,称为Score function(S函数),
--------------------9,称为FI。
FI的近似解:
--------------------10
书接上文
已经知道了了FI的表达式,那么利用I 进行归一化。令归一化前:
--------------------11
令归一化后:
--------------------12
得到最终形式:
--------------------13
其中
到此,就完成了FV的推导计算。
3、FK的妙处
FK是一种核函数,主要应用于简化分类步奏中。
核方法是广义线性判别方法的一种。如果样本在原始空间线性不可分,映射到更高维度的特征空间,使样本线性可分。(这里有一篇博客介绍SVM顺道将核函数讲的十分透彻,我就不班门弄斧了,戳这里2.2节核函数讲解)。
但是原始空间的维度如果较高的话,在映射到高维度的特征空间,维度的增长是几何爆炸性的,即维度灾难。(样本空间是2维的,可能映射为5维,3维可能映射为19维。)
核函数的作用就是简化映射空间的运算,用一种等价的计算结果来避开直接在高维空间进行运算。
如SVM的广义判别函数:
其中
为映射关系。如果原始空间的维度较高的话,
将会很难计算,这时候如果构造一个核函数使,那么
这样就避开了在高维直接计算
,转化为原始空间计算即可。那么核函数如何选择呢?【FK的作用】
Fisher Kernel是衡量两样本直接的距离,即两样本之间的相似度。
FK的函数形式:
其中,即Score function,即Fisher Information Matrix.
下面进行简单的矩阵运算:
(为什么之前用进行单位化,这里FK为什么中间成,未得精髓但草蛇灰线负绵千里?)
所以对于样本原始空间X、Y,映射到特征空间,其SVM的广义判别函数:
可以等价转换成:
所以这里就用来代替计算,以简化判别类方法的计算。
4、总结
【算法步奏】
【核与分类判决的体会】
【参考文档】
【说明】
来源:https://blog.csdn.net/qq_41581769/article/details/99589073