Bilinear model 及其相關文獻

Bilinear model 以及相關的變形

最近讀到了一篇關於bilinear cnn的文章,就把幾篇相關的文章進行了閱讀和彙總,總共有三篇文章。我將對這三篇文章分別進行描述。

Bilinear CNN Models for Fine-grained Visual Recognition-ICCV2015

<手動空格> 這篇文章的主要思想是對於兩個不同圖像特徵的處理方式上的不同。傳統的,對於圖像的不同特徵,我們常用的方法是進行串聯(連接),或者進行sum,或者max-pooling。論文的主要思想是,研究發現人類的大腦發現,人類的視覺處理主要有兩個pathway, the ventral stream是進行物體識別的,the dorsal stream 是爲了發現物體的位置。論文基於這樣的思想,希望能夠將兩個不同特徵進行結合來共同發揮作用,提高細粒度圖像的分類效果。論文希望兩個特徵能分別表示圖像的位置和對圖形進行識別。論文提出了一種Bilinear Model。下面就是bilinear cnn model的示意圖
這裏寫圖片描述
兩個不同的stream代表着通過CNN得到的不同特徵,然後將兩個特徵進行bilinear 操作。接下來,我們將要對bilinear model 進行定義。一個bilinear model 由四元組構成,B=fA,fB,P,C ,其中fA,fB 爲來個不同的特徵,P爲Pooling操作,C表示分類器;對特徵的每一個位置l ,進行如下計算。

bilinear(l,I,fA,FB)=fA(l,I)TfB(l,I)

通俗一點講,就是對圖像上的每個位置上的特徵進行矩陣相乘,然後進行sum pooling 或者進行max-pooling。對於一個CNN來講,有c個通道數,那麼在位置i上的特徵就是1*c的大小,然後與同一位置上,不同CNN得到的1*c的矩陣進行乘積,得到c*c的矩陣,然後將所有位置上的c*c的矩陣進行求和,再轉換成向量的形式就可以得到Bilinear vector。得到的特徵需要進行開平方ysign(x)|x| ,和歸一化操作zy/||y||F2 。反向傳播過程爲:
這裏寫圖片描述
Bilinear model 可以看做是其他特徵算子(BOW,FV,VLAD)的通用形式,

實驗部分

實驗採用在ImageNet 上預訓練好的兩個網絡模型進行實驗。發現模型的效果很好。另外,對與傳統的模型,增加box的監督信息,會對performance有較大的提高,但是對於bilinear model 缺不明顯,說明bilinear model可以更好的發現物體的位置信息,只需要圖形的類標信息就可以得到一個很好結果,這對於訓練數據的選取是非常有效的,可以去除繁雜的圖像標註的內容。

Compact Bilinear Pooling-CVPR2016

由於上述模型的得到的特徵維度較高,那麼得到的參數數目較多,計算量較大,存儲和讀取開銷較大。這篇文章就採用了一種映射的方法,希望能夠達到Bilinear model的performance情況,能夠儘量的減少特徵的維數。
首先,論文將bilinear model 看做是一種核方法的形式,對於不同的 x的不同特徵,x,y,可以進行如下的核方法轉化。
這裏寫圖片描述
然後論文希望找到一種映射ϕ(x) ,使得<ϕ(x),ϕ(y)>≈k(x,y) 這很像是核方法反着用的形式。
這裏寫圖片描述
論文采用了兩種方法的映射,Random Maclaurin(RM)和Tensor Sketch(TS),這兩個映射的期望都是<x,y>2 ,方差爲1/d。

實驗部分

這裏寫圖片描述
通過對比,可以發現,當d爲較小維度的時候,就可以得到與bilinear model 相同的精度。其中,藍色線爲full bilinear pooling 方法的誤差。

Low-rank Bilinear Pooling for Fine-Grained Classification-CVPR2017

這篇文章的目的與第二篇文章相同,都是要降低參數維度。同時,提高模型的精度。論文與第一篇論文模型不同的是,這篇論文采用對稱的網絡模型,也就是兩個steam是相同的,那麼只需要訓練一個CNN過程就好,大大的減少了計算的開支。同時特徵的意義就變爲在位置i上特徵的相關性矩陣。最後論文采用了一個低秩的分類器進行分類。
這裏寫圖片描述
上圖是三個模型的對比圖。在論文中,bilinear model變爲如下形式
這裏寫圖片描述
接下來,我們將要對得到的特徵進行向量化,然後放入到SVM分類器中,進行訓練。SVM的目標方程爲:
這裏寫圖片描述
這裏將W變爲一個c*c的矩陣,目標方程變爲:
這裏寫圖片描述
論文也證明了兩個方程是就具有相同的優化解。w=vec(W),這個可以根據SVM裏對w的求解可以得到。zi=vec(XiXiT)
這裏寫圖片描述
由於W是一組對稱矩陣的sum ,那麼很容易得到W也是一個對稱矩陣。那麼可以將W分解成兩個半正定矩陣的差,對W進行特徵值分解。如下所示:
這裏寫圖片描述
+表示特徵值爲正值的部分,負值爲特徵值爲負數的那部分,這樣就可以把W分解爲U+,U 兩個參數。那麼爲什麼要這樣分解,因爲這樣的分解可以使得W具有低秩的特性。那麼爲什麼W要具有低秩的特性呢?論文對200個分類的器的參數求其平均值和方差,發現很多的W的值是接近於0;然後,論文通過降低W的秩來看分類的表現,發現當W的秩爲10時,就可以得到與更高秩相同的performance。於是對W進行低秩約束。通過轉化,可以將目標方程變爲如下形式:
這裏寫圖片描述
這裏可以發現,目標方程裏面不在出現XiXiT ,只有對U+,U 進行求解就可以了,這兩個參數的維度可以很低。對這個兩個參數的更新可以採用反向傳播。另外,論文還提出了另外一種模型,就是對Uk 進行降維,來減少參數的數目。
論文采用的方法,添加一個1×1×c×m 的卷積層對U就行降維。
這裏寫圖片描述

實驗結果

這裏寫圖片描述

【參考文獻】

【1】Lin T Y, RoyChowdhury A, Maji S. Bilinear cnn models for fine-grained visual recognition[C]//Proceedings of the IEEE International Conference on Computer Vision. 2015: 1449-1457.
【2】Gao Y, Beijbom O, Zhang N, et al. Compact bilinear pooling[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 317-326.
【3】Kong S, Fowlkes C. Low-rank bilinear pooling for fine-grained classification[C]//2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). IEEE, 2017: 7025-7034.

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