Fisher Vector 基本原理分析

1.背景介紹

Fisher Vector是一種編碼方式,它和Bag-of-Words一樣,都能夠實現對於不等長特徵矩陣的歸一化。例如,對於一段語音信號,每幀上可以提取MFCC特徵(假設有13維),由於每段語音信號的長度不等,導致每段語音的總幀數不等,得到的特徵向量可能是這樣的:13*N,這裏的N就是指總幀數。將特徵送入網絡進行語音識別時,一般要對特徵進行歸一化,即處理成統一大小的特徵矩陣。今天介紹的Fisher Vector 和之前講的Bag-of-Words詞袋模型都是常規的處理手段。與詞袋模型不同的是, Fisher Vector利用的是多個高斯分佈對於權重、均值、方差求偏導數得來的。

2.Fisher Vector原理介紹

在講Fisher Vector之前,先講GMM高斯混合模型,GMM由多個高斯模型線性疊加而成。混合高斯模型可以用下面的公式表示:

                                                             p(x) = \sum_{k=1}^{K}\pi _{k}N(x|\mu _{k},\Sigma _{k})

其中,p(x)表示數據點x出現的概率,K表示高斯模型的個數,\pi _{k}表示第k個高斯模型的權重,N(x|\mu _{k},\Sigma _{k})表示第k個高斯分佈(component),\mu _{k}表示第k個高斯分佈的均值,\Sigma _{k}表示第k個高斯分佈的方差。理論上,如果component的個數足夠多的話,GMM可以逼近任意一種概率分佈。這裏顯然,\pi _{k}滿足以下條件:

                                                               \sum_{k=1}^{K}\pi _{k} = 1,0\leqslant \pi _{k}\leqslant 1 

我們在GMM中的目標是:求參數\pi _{k}\mu _{k}\Sigma _{k},使得它確定的概率分佈生成這些給定數據點的概率最大。即\Pi_{i=1}^{N}p(x_{i})最大,這裏假設各個數據點之間滿足獨立同分布。這就是似然函數。通常我們轉換成對數形式的最大值:

                                                                    \sum _{i=1}^{N}log(p(x_{i}))

我們假設要對T個D維的特徵向量進行處理,首先生成GMM模型(K個D維的高斯分佈的混合),然後再對原始特徵進行編碼。假設高斯分佈的參數集合爲:

                                                                \lambda = \left \{ w_{k},\mu _{k},\Sigma _{k},k=1,...,K \right \}

假設共有T個特徵向量,似然函數可以表示爲:

                                                                L(x|\lambda ) = \sum_{t=1}^{T}log(p(x_{t}|\lambda))

而其中的高斯分佈是多個基高斯分佈的混合,所以可以表示爲:

                                                                p(x_{t}|\lambda) = \sum_{k=1}^{K}w_{k}*p_{k}(x_{t}|\lambda )

而每個基高斯分佈又可以表示爲:

                                                          p_{k}(x_{t}|\lambda) = \frac{exp\left \{ {-\frac{1}{2}*(x-\mu _{k})^{'}\Sigma _{k}^{-1}(x-\mu _{k})} \right \}}{2\pi ^{\frac{D}{2}}*|\Sigma _{k}|^{1/2}}

然後,我們再求似然函數L對權重、均值、方差的偏導:

                                                               \frac{\partial L(x|\lambda )}{\partial w_{k}},\frac{\partial L(x|\lambda )}{\partial \mu _{k}^{d}},\frac{\partial L(x|\lambda )}{\partial \sigma _{k}^{d}}

最後,將三者歸一化之後,就可以作爲Fisher Vector向量。對於每一個D維的高斯分佈,都有一個權重w_{k},並且有D個均值求了一次偏導,對D個方差求了一次偏導,所以Fisher Vector向量的維度是K*(2*D+1)。此外,由於所有的權重滿足和爲1,所以只要求其中K-1個高斯分佈的權重的偏導即可。即維度爲:(K-1)*(2*D+1) + 1*(2*D) = K*(2D+1)-1

 

參考資料:

[1] Image Classification with the Fisher Vector: Theory and Practice. Jorge Sánchez , Florent Perronnin , Thomas Mensink , Jakob Verbeek.

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