Fisher vector笔记

1,背景

     现有的模式分类方法主要分为两类,一类是生成式方法,比如GMM,这类方法主要反映同类数据之间的相似度;一类是判别式方法,比如SVM,主要是反映异类数据之间的差异。fisher kernel是想要结合二者的优势(1,生成式方法可以处理长度不一的输入数据,2,判别式方法不能处理长度不一的数据但是分类效果较好。),将生成式模型用于判别式分类器中。

     关于处理长度不一的数据,举例说明如下:
     我们要对一个图片集I=X1,X2...I=X1,X2...是D维特征向量),T代表一幅图片中提取的特征点个数,所以T的大小变化,不影响GMM建模。但是判别式分类器如SVM中是要计算样本X之间的距离,如果每个X的特征点个数T不一样,那么他们的维度也就不一样,无法计算他们之间的距离。

     论文《Exploiting generative models in discriminative classifiers》中对fisher kernel进行了理论上的一系列推导和阐述。论文《Fisher Kernel on Visual Vocabularies for Image Categorization》中fisher kernel被应用于图像分类,本文主要参考这篇。论文《Improving the Fisher Kernel for Large-Scale Image Classification》中对fisher vector做改进。

     fisher kernel被应用于图像分类的主要思路是,用生成式模型(GMM)对样本输入进行建模,进而得到样本的一种表示(fisher vector),再将这种表示(fisher vector)输入判别式分类器(SVM)得到图像分类结果。fisher vector是fisher kernel中对样本特征的一种表示,它把一幅图片表示成一个向量。
     本文主要关注fisher vector。


2,fisher kernel

     核方法可以定义一种基于核函数的判别式分类器,可表示如下:

Snew=sign(iSiλiK(Xi,Xnew))Snew=sign(∑iSiλiK(Xi,Xnew))
之间的相似度。

     所以需要确定λλ可以通过做一些优化得到,而在fisher kernel中,就是利用fisher信息矩阵得到一个核函数来度量样本相似度。

     对于一个核函数,有如下的形式:

K(Xi,Xj)=ϕTXiϕXj.K(Xi,Xj)=ϕXiTϕXj.
的欧式距离,很直观地反映了样本i,j之间的相似度。

     这个ϕXϕX

     定义fisher score:
     

Ux=λlogp(X|λ).Ux=∇λlogp(X|λ).
在p生成特征点集合X的过程中如何作用,所以这个fisher score中也包含了GMM生成X的过程中的一些结构化的信息。

     F12λFλ−12

     所以核函数就有了如下分解形式:

K(Xi,Xj)=UTXiF1λUXjK(Xi,Xj)=UXiTFλ−1UXj

     至此,我们就能对一幅图片的特征点集合计算出fisher vector了。


3,计算fisher vector

     首先定义:

L(X|λ)=logp(X|λ)=t=1Tlogp(xt|λ).L(X|λ)=logp(X|λ)=∑t=1Tlogp(xt|λ).
最终的维度是(2D+1)*N-1.

     求得UXUX, 通过简单的求期望运算就可以得到它们的值:
f
     这里算得的矩阵F两个维度都是(2D+1)*N-1.

     所以fisher vector

ϕX=[GXw,d,i,GXμ,d,i,GXσ,d,i]=[f1/2wiL(X|λ)wi,f1/2μdiL(X|λ)μdi,f1/2σdiL(X|λ)σdi].ϕX=[Gw,d,iX,Gμ,d,iX,Gσ,d,iX]=[fwi−1/2∂L(X|λ)∂wi,fμid−1/2∂L(X|λ)∂μid,fσid−1
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值