理解Fisher Vector

??我對于Fisher Vector的理解主要來自對論文Fisher Kernels on Visual Vocabularies for Image Categorization的閱讀。之所以想要了解下FV是因為之前做YouTube 8M短視頻理解時查看他人的論文發(fā)現(xiàn)這個方法僵朗。那篇論文主要是對VLAD和FV進行了吗氏,其中對VLAD的改進進行了詳細(xì)的講解谢床,但是并沒有對FV進行清晰的闡述蓖扑。因此我并不太清楚那篇文章是如何對FV進行改進伴鳖。所以我選擇這篇文章來了解下FV的思路摊聋,希望能更好的理解那篇文章是如何將FV和神經(jīng)網(wǎng)絡(luò)結(jié)合的晦炊。
??所有的講Fisher Vector的資料都先講了下Fisher kernel,我的理解是Fisher kernels對輸入向量進行了編碼蕊苗,以一個新的梯度向量來表示原輸入向量沿后,這個新的梯度向量就是Fisher Vector,編碼方式如下:
\nabla_\lambda log p(X|\lambda)
這樣編碼的好處在于可以將任意長度的輸入向量轉(zhuǎn)換成定長向量朽砰。這個梯度向量就可以作為分類器的輸入尖滚,完成圖像分類等任務(wù)喉刘。但是對于用到內(nèi)積的判別分類器來說,輸入變量的標(biāo)準(zhǔn)化是很有必要的漆弄,因此引進了一個新的概念——Fisher information matrix睦裳,定義如下:
F_\lambda=E_x[\nabla_\lambda log p(X|\lambda)(\nabla_\lambda log p(X|\lambda))^\mathrm T]
那么標(biāo)準(zhǔn)化后的梯度向量就可以表示為
F_\lambda^{-1/2}\nabla_\lambda log p(X|\lambda)
這個公式就可以認(rèn)為是Fisher Vector了。
??首先我們假設(shè)visual word vocabulary(這里我是這樣理解visual word vocabulary的撼唾,比如在短視頻理解中l(wèi)abel就是一個vocabulary)是由一個GMM(高斯混合模型)表征的廉邑。假設(shè)vocabulary中的單詞數(shù)量為N,也就是一個N分類問題倒谷,那么GMM中高斯模型的數(shù)量也可以設(shè)置為N個蛛蒙。假設(shè)輸入向量X=[x_t,t=1...T],將似然函數(shù)作為模型的損失函數(shù)渤愁,即L(X|\lambda)=logp(X|\lambda)=\sum_{t=1}^{T}logp(x_t|\lambda)牵祟,而每個特征x_t的似然函數(shù)是p(x_t|\lambda)=\sum_{i=1}^{N}w_ip_i(x_t|\lambda),其中有\sum_{i=1}^{N}w_i=1抖格。然后定義一個新的變量——占有概率(occupancy probability)\gamma_t(i)=p(i|x_t,\lambda)=\cfrac{w_ip_i(x_t|\lambda)}{\sum_{j=1}^{N}w_ip_i(x_t|\lambda)}诺苹,表示特征x_t屬于第i個高斯模型的概率。利用目標(biāo)損失函數(shù)L(X|\lambda)對模型參數(shù)求導(dǎo)就有
\begin{align} & \cfrac{\partial L(X|\lambda)}{\partial w_i}=\sum_{t=1}^T[\cfrac{\gamma_t(i)}{w_i}-\cfrac{\gamma_t(1)}{w_1}] \quad for\ i\geq2,\\ & \cfrac{\partial L(X|\lambda)}{\partial \mu_i^d}=\sum_{t=1}^T\gamma_t(i)[\cfrac{x_t^d-\mu_i^d}{(\mu_i^d)^2}],\\ & \cfrac{\partial L(X|\lambda)}{\partial \sigma_i^d}=\sum_{t=1}^T\gamma_t(i)[\cfrac{(x_t^d-\mu_i^d)^2}{(\sigma_i^d)^3}-\cfrac{1}{\sigma_i^d}]. \end{align}
計算完損失函數(shù)關(guān)于參數(shù)的梯度后就需要對這些梯度值進行標(biāo)準(zhǔn)化了雹拄,中間的推導(dǎo)過程我不會收奔,直接貼上論文推出的最后結(jié)果:
\begin{align} & f_{w_i}=T(\cfrac{1}{w_i}+\cfrac{1}{w_1}),\\ & f_{\mu_i^d}=\cfrac{Tw_i}{(\sigma_i^d)^2},\\ & f_{\sigma_i^d}=\cfrac{2Tw_i}{(\sigma_i^d)^2}. \end{align}
對于每個高斯模型而言,可得到1個與權(quán)重相關(guān)的值f_{w_i}滓玖,D個與高斯模型均值相關(guān)的值f_{\mu_i^d}和D個與高斯模型方差相關(guān)的值f_{\sigma_i^d}坪哄。而一個GMM有N個高斯模型,所以得到的向量維度是(2*D+1)*N呢撞,但是由于所有權(quán)重之和為1损姜,所以只需要知道N-1個權(quán)重就可以了饰剥,所以最終的Fisher Vector的維度是(2*D+1)*N-1殊霞。
??講了FV,順便講講BOV汰蓉,全稱是bag of visual word绷蹲,是受到自然語言處理中BOW的啟發(fā)。前面不是提出了占有概率\gamma_t(i)顾孽,表示特征x_t屬于第i個高斯模型的概率祝钢,在BOV表示中,第i個高斯模型出現(xiàn)次數(shù)(可以理解為T個特征屬于第i個高斯模型的概率之和)可以表示為
\cfrac{1}{T}\sum_{t=1}^T\gamma_t(i)
每個高斯模型對應(yīng)一個值若厚,那么BOV表示就可以將輸入向量變成一個新的基于出現(xiàn)次數(shù)的N維向量拦英。

BOV和FV的對比:
??BOV得到的是個極其稀疏的向量,因為BOV只關(guān)注了關(guān)鍵詞(理解為單個的高斯模型)的數(shù)量信息测秸,這是個0階的統(tǒng)計信息疤估;
??但是FV并不稀疏灾常,除了0階信息,F(xiàn)V還包括1階(期望)信息和2階(方差)信息铃拇。

2018.12.18補充:
??最初是看這篇文章Learnable pooling with Context Gating for video classification才直到Fisher Vector這個概念钞瀑,為了更好地理解NetFV,所以我將傳統(tǒng)的FV好好的學(xué)了下慷荔,但是經(jīng)過對比發(fā)現(xiàn)雕什,NetFV其實和FV還是有很大不同的,NetFV的編碼方式如下:
\begin{align} & FV_1(j,k)=\sum_{i=1}^N\alpha_k(x_i)(\cfrac{x_i(j)-c_k(j)}{\sigma_k(j)}),\\ & FV_2(j,k)=\sum_{i=1}^N\alpha_k(x_i)((\cfrac{x_i(j)-c_k(j)}{\sigma_k(j)})^2-1) \end{align}其中显晶,需要學(xué)習(xí)的參數(shù)是\alpha贷岸,c\sigmaFV_1相當(dāng)于原始FV中的1階(期望)信息磷雇,而FV_2相當(dāng)于原始FV中的2階(方差)信息凰盔。這跟上文最終得到公式還是有一定差別的,文中也很明確地說了NetFV中的參數(shù)和GMM是沒有聯(lián)系的倦春,相反是一種判別的方式進行訓(xùn)練户敬。我的理解就是除了\alpha是FC層的輸出,c\sigma就是直接隨機初始化2個參數(shù)表睁本,然后在后續(xù)的訓(xùn)練中不斷更新這2個表中的參數(shù)值尿庐。NetFV最終得到的編碼特征就是將FV_1FV_2拼接起來。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末呢堰,一起剝皮案震驚了整個濱河市抄瑟,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌枉疼,老刑警劉巖皮假,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異骂维,居然都是意外死亡惹资,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進店門航闺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來褪测,“玉大人,你說我怎么就攤上這事潦刃∥甏耄” “怎么了?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵乖杠,是天一觀的道長分扎。 經(jīng)常有香客問我,道長胧洒,這世上最難降的妖魔是什么畏吓? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任环揽,我火速辦了婚禮,結(jié)果婚禮上庵佣,老公的妹妹穿的比我還像新娘歉胶。我一直安慰自己,他們只是感情好巴粪,可當(dāng)我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布通今。 她就那樣靜靜地躺著,像睡著了一般肛根。 火紅的嫁衣襯著肌膚如雪辫塌。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天派哲,我揣著相機與錄音臼氨,去河邊找鬼。 笑死芭届,一個胖子當(dāng)著我的面吹牛储矩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播褂乍,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼持隧,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了逃片?” 一聲冷哼從身側(cè)響起屡拨,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎褥实,沒想到半個月后呀狼,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡损离,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年哥艇,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片草冈。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡她奥,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出怎棱,到底是詐尸還是另有隱情,我是刑警寧澤绷跑,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布拳恋,位于F島的核電站,受9級特大地震影響砸捏,放射性物質(zhì)發(fā)生泄漏谬运。R本人自食惡果不足惜隙赁,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望梆暖。 院中可真熱鬧伞访,春花似錦、人聲如沸轰驳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽级解。三九已至冒黑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間勤哗,已是汗流浹背抡爹。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留芒划,地道東北人冬竟。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像民逼,于是被迫代替她去往敵國和親诱咏。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內(nèi)容