Fisher vector學習筆記

    最近在看fisher vector的相關知識,fisher vector被廣泛應用到了圖像的分類,目標識別等領域,特別是結合着BOW model。

    模式識別方法可以分爲生成方法和判別方法。前者注重對類條件概率密度函數的建模,而後者聚焦於分類。而Fisher核方法同時具有這兩種方法的優點[4]。這裏fisher 核和fisher vector是不一樣的(感覺像是廢話),其實在文章[4]中,作者證明了採用Fisher vector+線性分類器可以等價於Fisher 核的分類器。於是引出了我們下面要講的Fisher vector。有關Fisher 的一些知識可以參考我的前一篇blog :點擊打開鏈接

     Fisher vector本質上是用似然函數的梯度vector來表達一幅圖像,這個梯度向量的物理意義就是describes the direction in which parameters should be modified to best fit the data[1,2],說白了就是數據擬閤中對參數調優的過程。似然函數是哪裏來的呢?這裏就涉及到上面所說的生成方法了。對於一幅圖像 ,有T個描述子(比如SIFT),那麼這幅圖像就可以表示爲:。如果假設這些特徵xt符合一定的分佈並且這些分佈彼此獨立,也就是i.i.d(獨立同分布)。於是就有:,在這裏lamda是參數集合,取對數之後就是:------------1。

     現在需要一組K個高斯分佈的線性組合來逼近這些i.i.d.,假設這些高斯混合分佈參數也是lamda,於是---------2。在這個式2中Pi表示的就是高斯分佈---------------------3,公式2中的omega表示的線性組合的係數,

在這裏D是特徵矢量的維數,協方差矩陣計算的是不用維數之間的關係。在這這裏假設協方差矩陣是對角陣也就是feature的不同dim之間是相互獨立的。

      有了公式1,2,3之後,就可以對公式1求導,然後將偏導數,也就是梯度作爲fisher vector了。在此之前再定義一個變量:

,表徵的是occupancyprobability,也就是特徵xt是由第i個高斯分佈生成的概率。

下面的公式給出了偏導計算公式:

-------------------------------------4

     值得注意的是上面求出來的都是沒有歸一化的vector,需要進行歸一化操作,正如上一篇blog介紹的那樣,由於是在概率空間中,與歐式空間中的歸一化不同,引入Fisher matrix進行歸一化。

   公式4的三個變量分別引入三個對應的歸一化需要的fisher matrix:

------------------------------5

於是最終歸一化之後的fisher vector就是:


由於每一個特徵是d維的,需要K個高斯分佈的線性組合,有公式5,一個Fisher vector的維數爲(2*d+1)*K-1維。

    有了Fisher vector,你就可以做圖像分類了。當然,在文章[2,3]中都介紹了對這個Fisher vector的進一步改進,在此不再贅述。

參考文獻:

[1] Fisher Kernels on Visual Vocabularies for Image Categorization Florent Perronnin and Christopher Dance. CVPR 2007
[2] Improving the Fisher Kernel for Large-Scale Image Classification. Florent Perronnin, Jorge Sanchez, and Thomas Mensink. ECCV 2010
[3] Image Classification with the Fisher Vector: Theory and Practice. Jorge Sánchez , Florent Perronnin , Thomas Mensink , Jakob Verbeek.

以及更早的一篇:

[4] exploiting generative models in discriminative classification

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章