双线性汇合(bilinear pooling)在细粒度图像分析及其他领域的进展综述
作者簡介:
張皓
南京大學計算機系機器學習與數(shù)據(jù)挖掘所(LAMDA)
研究方向為計算機視覺和機器學習,特別是視覺識別和深度學習
個人主頁:goo.gl/N715YT
?
細粒度圖像分類旨在同一大類圖像的確切子類。由于不同子類之間的視覺差異很小,而且容易受姿勢、視角、圖像中目標位置等影響,這是一個很有挑戰(zhàn)性的任務。因此,類間差異通常比類內差異更小。雙線性匯合(bilinear pooling)計算不同空間位置的外積,并對不同空間位置計算平均匯合以得到雙線性特征。外積捕獲了特征通道之間成對的相關關系,并且這是平移不變的。雙線性匯合提供了比線性模型更強的特征表示,并可以端到端地進行優(yōu)化,取得了和使用部位(parts)信息相當或甚至更高的性能。
?
在本文,我們將對使用雙線性匯合進行細粒度分類的方法發(fā)展歷程予以回顧。研究方向大致分為兩類:設計更好的雙線性匯合過程,以及精簡雙線性匯合。其中,對雙線性匯合過程的設計主要包括對匯合結果規(guī)范化過程的選擇及其高效實現(xiàn),以及融合一階和二階信息。精簡雙線性匯合設計大致有三種思路:利用PCA降維、近似核計算、以及低秩雙線性分類器。此外,雙線性匯合的思想也被用于其他計算機視覺領域,例如風格遷移、視覺問答、動作識別等。我們也將介紹雙線性匯合在這些領域的應用。
?
1. 數(shù)學準備
在本節(jié),我們介紹本文用要用到的符號和在推導時需要的數(shù)學性質。
?
1.1 符號
深度描述向量(deep descripto)xi?∈RD?。其中1<=i<=HW。例如對VGG-16網(wǎng)絡,我們通常使用relu5-3層的特征提取圖像的深度描述向量,那么H=W=14,D=512。
?
描述矩陣(descriptor matrix)X∈RD*HW。定義為
均值向量(mean vector)μ∈RD。定義為
格拉姆矩陣(Gram matrix)G∈RD*D。定義為
協(xié)方差矩陣(covariance matrix)∑∈RD*D。定義為
其中
是中心化矩陣(centering matrix)。
?
分數(shù)向量(score vector)y∈Rk,softma層的輸入,k是分類任務的類別數(shù)。
?
1.2 數(shù)學性質
由于雙線性匯合相關的論文涉及許多矩陣運算,尤其是跡運算。如下性質在推導時將有幫助。這些性質在使用時即可以從左向右使用,也可以從右向左使用。
?
向量化操作的跡等價
弗羅貝尼烏斯范數(shù)(Frobenius norm)的跡等價
矩陣跡滿足交換率和結合率
矩陣轉置不改變跡
矩陣冪等價于特征值分別取冪
?
1.3 雙線性
對函數(shù)分f(x,y),雙線性(bilinear)是指當固定其中一個參數(shù)(例如x)時,f(x,y)對另一個參數(shù)(例如y)是線性的。在這里,研究的雙線性函數(shù)是形如f(x,y)=XTAy這樣的形式。本文關注的雙線性匯合叫雙線性這個名字是受歷史的影響,在早期兩個分支是不同的,現(xiàn)在主流做法是兩個分支使用相同的輸入,整個操作將變?yōu)榉蔷€性而不是雙線性,但這個名稱沿用至今。
?
2. 雙線性匯合
雙線性匯合在深度學習復興前就已經被提出,隨后,在細粒度圖像分類領域得到了廣泛使用。本節(jié)將介紹雙線性匯合及其變體。
?
2.1 細粒度分類中的雙線性匯合
Tsung-Yu Lin, Aruni RoyChowdhury, and Subhransu Maji. Bilinear CNN models for fine-grained visual recognition. ICCV 2015: 1449-1457.
Tsung-Yu Lin, Aruni RoyChowdhury, and Subhransu Maji. Bilinear convolutional neural networks for fine-grained visual recognition. TPAMI 2018, 40(6): 1309-1322.
?
雙線性匯合操作通過計算深度描述向量的格拉姆矩陣G捕獲特征通道之間成對的相關關系。隨后,將格拉姆矩陣展成向量
并進行規(guī)范化(normalization)
得到最終的雙線性特征。
?
在原文中,Lin等人使用了兩個不同的網(wǎng)絡得到雙線性匯合的不同分支,動機是希望一個分支學到位置(where)信息,而另一個分支學到外觀(what)信息。事實上,這是不可能的。
Mohammad Moghimi, Serge J. Belongie, Mohammad J. Saberian, Jian Yang, Nuno Vasconcelos, and Li-Jia Li. Boosted convolutional neural networks. BMVC 2016.
?
Moghimi等人提出BoostCNN,利用多個雙線性CNN的boosting集成來提升性能,通過最小二乘目標函數(shù),學習boosting權重。然而這會使得訓練變慢兩個量級。
Tsung-Yu Lin and Subhransu Maji. Improved bilinear pooling with CNNs. BMVC 2017.
?
Lin和Maji探索了對格拉姆矩陣不同的規(guī)范化方案,并發(fā)現(xiàn)對格拉姆矩陣進行0.5矩陣冪規(guī)范化壓縮格拉姆矩陣特征值的動態(tài)范圍
后結合逐元素平方開根和L2規(guī)范化可以得到2-3 %的性能提升。此外,由于GPU上沒有SVD的高效實現(xiàn),Lin和Maji使用牛頓迭代法的變體計算G1/2?,并通過解李雅普諾夫方程(Lyapunov equation)來估計G1/2的梯度進行訓練。
Peihua Li, Jiangtao Xie, Qilong Wang, and Wangmeng Zuo. Is second-order information helpful for large-scale visual recognition? ICCV 2017: 2089-2097.
?
Li等人提出MPN-COV,其對深度描述向量的協(xié)方差矩陣∑進行0.5矩陣冪規(guī)范化
以得到雙線性匯合特征。
?
Peihua Li, Jiangtao Xie, Qilong Wang, and Zilin Gao. Towards faster training of global covariance pooling networks by iterative matrix square root normalization. CVPR 2018: 947-955.
?
由于在GPU上沒有特征值分解和SVD的高效實現(xiàn),相比Lin和Maji在反向解李雅普諾夫方程時仍需進行舒爾分解(Schur decomposition)或特征值分解,Li等人前向和反向過程都基于牛頓迭代法,來對矩陣進行0.5矩陣冪規(guī)范化。
Xing Wei, Yue Zhang, Yihong Gong, Jiawei Zhang, and Nanning Zheng. Grassmann pooling as compact homogeneous bilinear pooling for fine-grained visual classification. ECCV 2018: 365-380.
?
Wei等人認為,格拉姆矩陣會受視覺爆發(fā)(visual burstiness)現(xiàn)象的影響。視覺爆發(fā)是指一個視覺元素在同一個圖片中多次出現(xiàn),這會影響其他視覺元素的作用。關于視覺爆發(fā)的更多信息請參閱Herve Jegou, Matthijs Douze, and Cordelia Schmid. On the burstiness of visual elements. CVPR 2009: 1169-1176.
?
事實上,由于格拉姆矩陣G=(1/HW)XXT的條件數(shù)是X的平方,因此格拉姆矩陣會比描述矩陣更不穩(wěn)定。因此,通過0.5矩陣冪可以使得格拉姆矩陣的條件數(shù)等于描述矩陣的條件數(shù),穩(wěn)定訓練過程。
?
Wei等人提出格拉斯曼(Grassmann)/子空間匯合,令X的SVD分解為X=U∑VT,記矩陣U的前k列為Uk∈RD*K,該匯合結束輸出
這個結果不受X的條件數(shù)的影響。相比經典雙線性匯合結果
格拉斯曼/子空間匯將格拉姆矩陣的前k個奇異值/特征值置1,其他奇異值/特征值置0。
?
考慮一張訓練圖像和一張測試圖像對應的格拉斯曼/子空間匯合結果
?
因此,下一層線性分類器的輸出是
?
此外,在格拉斯曼/子空間匯合前Wei等人先對描述向量進行降維。Wei等人認為常用的使用1X1卷積核P進行降維會使得降維結果的各通道的多樣性降低,因此使用P的奇異向量來降維。
?
Tsung-Yu Lin, Subhransu Maji, and Piotr Koniusz. Second-Order democratic aggregation. ECCV 2018: 639-656.
?
Lin等人使用民主聚合來使不同深度描述向量的貢獻接近。
?
2.2 不同階的匯合
Qilong Wang, Peihua Li, and Lei Zhang. G2DeNet: Global Gaussian distribution embedding network and its application to visual recognition. CVPR 2017: 6507-6516.
?
Wang等人提出G2DeNet,同時利用了一階和二階信息
?
并對其進行0.5矩陣冪規(guī)范化。
?
Mengran Gou, Fei Xiong, Octavia I. Camps, and Mario Sznaier. MoNet: Moments embedding network. CVPR 2018: 3175-3183.
?
Gou等人對描述矩陣X進行增廣
這樣,通過一次矩陣乘法,可以得到
其同時包含了一階和二階信息。另外,利用tensor sketch,可以設計精簡雙線性匯合操作。
?
Marcel Simon, Yang Gao, Trevor Darrell, Joachim Denzler, and Erik Rodner. Generalized orderless pooling performs implicit salient matching. ICCV 2017: 4970-4979.
?
Simon等人提出α-匯合,統(tǒng)一表示平均匯合和雙線性匯合.α-匯合形式化為
其中α是一個可學習的參數(shù),|Xi|α-1表示對Xi逐元素取絕對值并逐元素取冪。當深度描述向量每一項都非負時(這是通常的情況,因為我們使用ReLU層的特征),α-匯合可以簡化為
當α=1時,代表平均匯合
當α=2時,代表雙線性匯合
此外,為了對深度卷積神經網(wǎng)絡學到特征進行理解,考慮一張訓練圖像和一張測試圖像對應的格拉姆矩陣
?
其中Xi是對應于的描述向量,?Xj是對應于的描述向量。如果后續(xù)使用一層全連接層進行分類,這相當于使用了線性核SVM。根據(jù)表示定理,測試圖像的分類分數(shù)是和所有訓練圖像內積的線性組合
其中N代表訓練樣例總數(shù)。令
,其表示了測試圖像的第j個深度描述向量和第n張訓練圖像的第i個深度描述向量的匹配程度,也就是對應圖像區(qū)域的匹配程度。通過對γnij進行可視化,我們可以觀察哪些區(qū)域對于細粒度分類最有幫助。
?
3. 精簡雙線性匯合
由于格拉姆矩陣非常高維,有很多工作致力于設計精簡雙線性匯合,本節(jié)分別予以簡要介紹。
?
3.1 PCA降維
Tsung-Yu Lin, Aruni RoyChowdhury, and Subhransu Maji. Bilinear CNN models for fine-grained visual recognition. ICCV 2015, pages: 1449-1457.
Tsung-Yu Lin, Aruni RoyChowdhury, and Subhransu Maji. Bilinear convolutional neural networks for fine-grained visual recognition. TPAMI 2018, 40(6): 1309-1322.
?
Lin等人將雙線性匯合輸入的一個分支先使用??的卷積進行降維,例如將512維降維到64維。以VGG-16為例,最終格拉姆矩陣將由R512x512降維到R512x64。在實際應用中,用PCA對這個1X1卷積的參數(shù)進行初始化。
?
3.2 近似核計算
Yang Gao, Oscar Beijbom, and Ning Zhang, and Trevor Darrell. Compact bilinear pooling. CVPR 2016: 317-326
?
考慮一張訓練圖像和一張測試圖像對應的格拉姆矩陣G和G',
Gao等人使用深度描述向量的低維投影的內積近似二次多項式核
實際應用中,Gao等人使用了random Maclaurin和tensor sketch兩種近似,可以在達到和標準雙線性匯合相似的性能,但參數(shù)量減少了90%。
關于利用FFT進行快速多項式乘法的部分,已超出本文范圍。感興趣的讀者可參閱Sel?uk Baktir and Berk Sunar. Achieving efficient polynomial multiplication in fermat fields using the fast Fourier transform. ACM Southeast Regional Conference 2006: 549-554.
?
Yin Cui, Feng Zhou, Jiang Wang, Xiao Liu, Yuanqing Lin, and Serge J. Belongie. Kernel pooling for convolutional neural networks. CVPR 2017: 3049-3058.
?
Cui等人進一步利用核近似,借助于tensor sketch捕獲更高階的特征交互,提出核匯合。
Kaiyu Yue, Ming Sun, Yuchen Yuan, Feng Zhou, Errui Ding, and Fuxin Xu. Compact generalized non-local network. NIPS 2018, accepted.
?
Yue等人將非局部(non-local)網(wǎng)絡(參見下文)應用到細粒度識別中,并對核函數(shù)泰勒展開進行近似。
?
3.3 低秩雙線性分類器
Shu Kong and Charless C. Fowlkes. Low-rank bilinear pooling for fine-grained classification. CVPR 2017: 7025-7034.
?
經典的雙線性匯合算法在提取雙線性特征后使用線性分類器(例如使用一層全連接層或者使用線性SVM)
根據(jù)表示定理,最優(yōu)的參數(shù)矩陣是特征的線性組合
因此,最優(yōu)的參數(shù)矩陣是對陣矩陣,我們可以對其做譜分解,并根據(jù)特征值的正負分成兩部分
如果我們把所有大于0的特征值和特征向量匯總到矩陣
以及所有小于0的特征值和特征向量匯總到矩陣
那么,
即,我們可以用參數(shù)矩陣U:=[U+U-_]∈RD*r近似原來參數(shù)矩陣W∈RD*D,其中r是一個超參數(shù)。這里需要假設參數(shù)矩陣大于0和小于0的特征值個數(shù)都是r/2。
?
上述低秩近似還有另外一個好處。在計算圖像屬于各個類別的分數(shù)時
從上式可以發(fā)現(xiàn),我們不再需要顯式的計算雙線性匯合結果。
?
為了進一步降低參數(shù)矩陣的計算量,LRBP對參數(shù)矩陣做了第二次近似。由于細粒度識別問題中各類有公共結構,因此,LRBP將對應各類別的參數(shù)矩陣近似為Wk=PVk,其中P∈RD*m,m是另一個超參數(shù)。不同類別的參數(shù)矩陣 P是共享的,實際中,P和Vk都由1X1卷積實現(xiàn)。P由PCA投影矩陣初始化,而Vk采用隨機初始化。
Yanghao Li, Naiyan Wang, Jiaying Liu, and Xiaodi Hou. Factorized bilinear models for image recognition. ICCV 2017: 2098-2106.
?
Li等人通過對參數(shù)矩陣進行低秩近似來完成圖像分類任務,同時其也包含了一階信息。Li等人所提出的的FBN結構可以用于所有的卷積和全連接層。
?
Sijia Cai, Wangmeng Zuo, and Lei Zhang. Higher-order integration of hierarchical convolutional activations for fine-grained visual categorization. ICCV 2017: 511-520.
?
Cai等人捕獲了更高階的特征交互,并對參數(shù)進行秩1近似。
Kaicheng Yu and Mathieu Salzmann. Statistically-motivated second-order pooling. ECCV 2018: 621-637.
?
Yu和Salzmann對參數(shù)矩陣進行低秩近似,并給雙線性匯合的每一步一個概率上的解釋。這個操作可以被等價為對深度描述向量進行1X1卷積后再L2匯合。
Chaojian Yu, Xinyi Zhao, Qi Zheng, Peng Zhang, and Xinge You. Hierarchical bilinear pooling for fine-grained visual recognition. ECCV 2018: 595-610.
?
類似于MLB(見下文),對參數(shù)矩陣進行低秩近似
并使用不同層的深度描述向量作為x和z。
?
4. 雙線性匯合的其他應用
4.1 風格遷移和紋理合成
Leon A. Gatys, Alexander S. Ecker, Matthias Bethge. Image style transfer using convolutional neural networks. CVPR 2016: 2414-2423.
?
風格遷移的基本思路是使優(yōu)化目標包括兩項,使生成圖像的內容接近原始圖像內容,及使生成圖像風格接近給定風格。風格通過格拉姆矩陣體現(xiàn),而內容則直接通過神經元激活值體現(xiàn)。
Yanghao Li, Naiyan Wang, Jiaying Liu, and Xiaodi Hou. Demystifying neural style transfer. IJCAI 2017: 2230-2236.
?
Li等人發(fā)現(xiàn),考慮一張訓練圖像和一張測試圖像對應的格拉姆矩陣G和G',風格損失項
這里利用了上文Compact bilinear pooling的推導結果。這對應了深度描述向量之間的二階多項式MMD距離。最小化風格損失就是在最小化這兩者的特征分布。
?
4.2 視覺問答(visual question answering)
Akira Fukui, Dong Huk Park, Daylen Yang, Anna Rohrbach, Trevor Darrell, and Marcus Rohrbach. Multimodal compact bilinear pooling for visual question answering and visual grounding. EMNLP 2016: 457-468.
?
Fukui等人提出MCB,對圖像和文本特征進行精簡雙線性匯合。
Jin-Hwa Kim, Kyoung Woon On, Woosang Lim, Jeonghee Kim, JungWoo Ha, and Byoung-Tak Zhang. Hadamard product for low-rank bilinear pooling. ICLR 2017.
?
Kim等人提出MLB,對參數(shù)矩陣進行低秩近似。假設圖像描述向量是x,文本描述向量是z,那么它們的雙線性匯合的格拉姆矩陣是
在提取雙線性特征后使用線性分類器
對參數(shù)矩陣進行低秩近似W=UVT,這樣
對整個分數(shù)向量,使用一個投影矩陣,并增加激活函數(shù)
Zhou Yu, Jun Yu, Jianping Fan, and Dacheng Tao. Multi-modal factorized bilinear pooling with co-attention learning for visual question answering. ICCV 2017: 1839-1848.
Zhou Yu, Jun Yu, Chenchao Xiang, Jianping Fan, and Dacheng Tao. Beyond bilinear: Generalized multi-modal factorized high-order pooling for visual question answering. TNNLS 2018, in press.
Yu等人提出MFB,也是對參數(shù)矩陣進行低秩近似。和MLB相比,分數(shù)向量 y的每一項都由
計算得到,不進一步進入投影矩陣和激活函數(shù)。
?
4.3 動作識別
Rohit Girdhar and Deva Ramanan. Attentional pooling for action recognition. NIPS 2017: 33-44.
?
Girdhar和Remanan對參數(shù)矩陣做了秩1近似W=UVT,即
對整個分數(shù)向量,u對所有類別共享,不同類別有各自獨立的v,這兩個分別表示為top-down attention和bottom-up attention。
?
Xiaolong Wang, Ross B. Girshick, Abhinav Gupta, and Kaiming He. Non-local neural networks. CVPR 2018: 7794-7803.
?
非局部(non-local)操作可用于捕獲長距離依賴
其中某一位置i的響應yi是所有位置響應的加權平均。當f是內積,g是恒等變換時
?
?
5. 總結
本文介紹了雙線性匯合在細粒度圖像分類及其他計算機視覺領域的應用。研究方向大致分為兩類,設計更好的雙線性匯合過程,以及精簡雙線性匯合。未來可能的研究方向包括以下幾個部分
?
-
雙線性匯合結果的規(guī)范化。目前發(fā)現(xiàn)矩陣冪規(guī)范化對提升性能很有幫助,是否還有其他規(guī)范化方法,以及能否設計出其在GPU的高效實現(xiàn)?
?
-
精簡雙線性匯合。目前研究的一大關注點是對參數(shù)矩陣進行低秩近似,是否還有其他精簡雙線性匯合方法?
?
-
雙線性匯合原理。目前對雙線性匯合原理的理解圍繞著深度描述向量之間的二階多項式核展開,是否還有其他對雙線性匯合原理的理解方法?
?
此外,經典雙線性匯合官方源代碼是基于MatConvNet實現(xiàn),這里提供一個基于PyTorch的實現(xiàn)版本:https://github.com/HaoMood/bilinear-cnn
?
總結
以上是生活随笔為你收集整理的双线性汇合(bilinear pooling)在细粒度图像分析及其他领域的进展综述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 近期考试反思
- 下一篇: 生命数字密码测试软件,生命数字密码