雙線性匯合(bilinear pooling)在細粒度圖像分析及其他領域的進展綜述

作者簡介:

張皓

南京大學計算機系機器學習與數據挖掘所(LAMDA)

研究方向:計算機視覺和機器學習(視覺識別和深度學習)

個人主頁:goo.gl/N715YT

細粒度圖像分類旨在同一大類圖像的確切子類。由於不同子類之間的視覺差異很小,而且容易受姿勢、視角、圖像中目標位置等影響,這是一個很有挑戰性的任務。因此,類間差異通常比類內差異更小。雙線性匯合(bilinear pooling)計算不同空間位置的外積,並對不同空間位置計算平均匯合以得到雙線性特徵。外積捕獲了特徵通道之間成對的相關關係,並且這是平移不變的。雙線性匯合提供了比線性模型更強的特徵表示,並可以端到端地進行優化,取得了和使用部位(parts)信息相當或甚至更高的性能。

在本文,我們將對使用雙線性匯合進行細粒度分類的方法發展歷程予以回顧。研究方向大致分爲兩類:設計更好的雙線性匯合過程,以及精簡雙線性匯合。其中,對雙線性匯合過程的設計主要包括對匯合結果規範化過程的選擇及其高效實現,以及融合一階和二階信息。精簡雙線性匯合設計大致有三種思路:利用PCA降維、近似覈計算、以及低秩雙線性分類器。此外,雙線性匯合的思想也被用於其他計算機視覺領域,例如風格遷移、視覺問答、動作識別等。我們也將介紹雙線性匯合在這些領域的應用。

1. 數學準備

在本節,我們介紹本文用要用到的符號和在推導時需要的數學性質。

1.1 符號

深度描述向量(deep descriptor)xiRD 。其中1<=i<=HW。例如對VGG-16網絡,我們通常使用relu5-3層的特徵提取圖像的深度描述向量,那麼H=W=14,D=512。

描述矩陣(descriptor matrix)XRD*HW。定義爲

均值向量(mean vector)μ∈RD。定義爲

格拉姆矩陣(Gram matrix)G∈RD*D。定義爲

協方差矩陣(covariance matrix)∑∈RD*D。定義爲

其中

是中心化矩陣(centering matrix)。

分數向量(score vector)y∈Rk,softma層的輸入,k是分類任務的類別數。

1.2 數學性質

由於雙線性匯合相關的論文涉及許多矩陣運算,尤其是跡運算。如下性質在推導時將有幫助。這些性質在使用時即可以從左向右使用,也可以從右向左使用。

向量化操作的跡等價

弗羅貝尼烏斯範數(Frobenius norm)的跡等價

矩陣跡滿足交換率和結合率

矩陣轉置不改變跡

矩陣冪等價於特徵值分別取冪

1.3 雙線性

對函數分f(x,y),雙線性(bilinear)是指當固定其中一個參數(例如x)時,f(x,y)對另一個參數(例如y)是線性的。在這裏,研究的雙線性函數是形如f(x,y)=XTAy這樣的形式。本文關注的雙線性匯合叫雙線性這個名字是受歷史的影響,在早期兩個分支是不同的,現在主流做法是兩個分支使用相同的輸入,整個操作將變爲非線性而不是雙線性,但這個名稱沿用至今。

2. 雙線性匯合

雙線性匯合在深度學習復興前就已經被提出,隨後,在細粒度圖像分類領域得到了廣泛使用。本節將介紹雙線性匯合及其變體。

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捕獲特徵通道之間成對的相關關係。隨後,將格拉姆矩陣展成向量

並進行規範化(normalization)

得到最終的雙線性特徵。

在原文中,Lin等人使用了兩個不同的網絡得到雙線性匯合的不同分支,動機是希望一個分支學到位置(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集成來提升性能,通過最小二乘目標函數,學習boosting權重。然而這會使得訓練變慢兩個量級。

Tsung-Yu Lin and Subhransu Maji. Improved bilinear pooling with CNNs. BMVC 2017.

Lin和Maji探索了對格拉姆矩陣不同的規範化方案,並發現對格拉姆矩陣進行0.5矩陣冪規範化壓縮格拉姆矩陣特徵值的動態範圍

後結合逐元素平方開根和

規範化可以得到2-3 %的性能提升。此外,由於GPU上沒有SVD的高效實現,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,其對深度描述向量的協方差矩陣進行0.5矩陣冪規範化

以得到雙線性匯合特徵。

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的高效實現,相比Lin和Maji在反向解李雅普諾夫方程時仍需進行舒爾分解(Schur decomposition)或特徵值分解,Li等人前向和反向過程都基於牛頓迭代法,來對矩陣進行0.5矩陣冪規範化。

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等人認爲,格拉姆矩陣會受視覺爆發(visual burstiness)現象的影響。視覺爆發是指一個視覺元素在同一個圖片中多次出現,這會影響其他視覺元素的作用。關於視覺爆發的更多信息請參閱Herve Jegou, Matthijs Douze, and Cordelia Schmid. On the burstiness of visual elements. CVPR 2009: 1169-1176.

事實上,由於格拉姆矩陣G=(1/HW)XXT的條件數是X的平方,因此格拉姆矩陣會比描述矩陣更不穩定。因此,通過0.5矩陣冪可以使得格拉姆矩陣的條件數等於描述矩陣的條件數,穩定訓練過程。

Wei等人提出格拉斯曼(Grassmann)/子空間匯合,令X的SVD分解爲X=U∑VT,記矩陣U的前k列爲UkRD*K,該匯合結束輸出

這個結果不受X的條件數的影響。相比經典雙線性匯合結果

格拉斯曼/子空間匯將格拉姆矩陣的前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矩陣冪規範化。

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等人提出α-匯合,統一表示平均匯合和雙線性匯合.α-匯合形式化爲

其中α是一個可學習的參數,|Xi|α-1表示對Xi逐元素取絕對值並逐元素取冪。當深度描述向量每一項都非負時(這是通常的情況,因爲我們使用ReLU層的特徵),α-匯合可以簡化爲

α=1時,代表平均匯合

α=2時,代表雙線性匯合

此外,爲了對深度卷積神經網絡學到特徵進行理解,考慮一張訓練圖像和一張測試圖像對應的格拉姆矩陣

其中Xi是對應於

的描述向量, Xj是對應於

的描述向量。如果後續使用一層全連接層進行分類,這相當於使用了線性核SVM。根據表示定理,測試圖像的分類分數是和所有訓練圖像內積的線性組合

其中N代表訓練樣例總數。令

,其表示了測試圖像的第j個深度描述向量和第n張訓練圖像的第i個深度描述向量的匹配程度,也就是對應圖像區域的匹配程度。通過對γnij進行可視化,我們可以觀察哪些區域對於細粒度分類最有幫助。

3. 精簡雙線性匯合

由於格拉姆矩陣非常高維,有很多工作致力於設計精簡雙線性匯合,本節分別予以簡要介紹。

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等人將雙線性匯合輸入的一個分支先使用1*1的卷積進行降維,例如將512維降維到64維。以VGG-16爲例,最終格拉姆矩陣將由R512x512降維到R512x64。在實際應用中,用PCA對這個1X1卷積的參數進行初始化。

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兩種近似,可以在達到和標準雙線性匯合相似的性能,但參數量減少了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)網絡(參見下文)應用到細粒度識別中,並對核函數泰勒展開進行近似。

3.3 低秩雙線性分類器

Shu Kong and Charless C. Fowlkes. Low-rank bilinear pooling for fine-grained classification. CVPR 2017: 7025-7034.

經典的雙線性匯合算法在提取雙線性特徵後使用線性分類器(例如使用一層全連接層或者使用線性SVM)

根據表示定理,最優的參數矩陣是特徵的線性組合

因此,最優的參數矩陣是對陣矩陣,我們可以對其做譜分解,並根據特徵值的正負分成兩部分

如果我們把所有大於0的特徵值和特徵向量彙總到矩陣

以及所有小於0的特徵值和特徵向量彙總到矩陣

那麼,

即,我們可以用參數矩陣U:=[U+U-]∈RD*r近似原來參數矩陣W∈RD*D,其中r是一個超參數。這裏需要假設參數矩陣大於0和小於0的特徵值個數都是r/2。

上述低秩近似還有另外一個好處。在計算圖像屬於各個類別的分數時

從上式可以發現,我們不再需要顯式的計算雙線性匯合結果。

爲了進一步降低參數矩陣的計算量,LRBP對參數矩陣做了第二次近似。由於細粒度識別問題中各類有公共結構,因此,LRBP將對應各類別的參數矩陣近似爲Wk=PVk,其中P∈RD*m,m是另一個超參數。不同類別的參數矩陣 P是共享的,實際中,P和Vk都由1X1卷積實現。P由PCA投影矩陣初始化,而Vk採用隨機初始化。

Yanghao Li, Naiyan Wang, Jiaying Liu, and Xiaodi Hou. Factorized bilinear models for image recognition. ICCV 2017: 2098-2106.

Li等人通過對參數矩陣進行低秩近似來完成圖像分類任務,同時其也包含了一階信息。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等人捕獲了更高階的特徵交互,並對參數進行秩1近似。

Kaicheng Yu and Mathieu Salzmann. Statistically-motivated second-order pooling. ECCV 2018: 621-637.

Yu和Salzmann對參數矩陣進行低秩近似,並給雙線性匯合的每一步一個概率上的解釋。這個操作可以被等價爲對深度描述向量進行1X1卷積後在

匯合。

Chaojian Yu, Xinyi Zhao, Qi Zheng, Peng Zhang, and Xinge You. Hierarchical bilinear pooling for fine-grained visual recognition. ECCV 2018: 595-610.

類似於MLB(見下文),對參數矩陣進行低秩近似

並使用不同層的深度描述向量作爲x和z。

4. 雙線性匯合的其他應用

4.1 風格遷移和紋理合成

Leon A. Gatys, Alexander S. Ecker, Matthias Bethge. Image style transfer using convolutional neural networks. CVPR 2016: 2414-2423.

風格遷移的基本思路是使優化目標包括兩項,使生成圖像的內容接近原始圖像內容,及使生成圖像風格接近給定風格。風格通過格拉姆矩陣體現,而內容則直接通過神經元激活值體現。

Yanghao Li, Naiyan Wang, Jiaying Liu, and Xiaodi Hou. Demystifying neural style transfer. IJCAI 2017: 2230-2236.

Li等人發現,考慮一張訓練圖像和一張測試圖像對應的格拉姆矩陣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,對參數矩陣進行低秩近似。假設圖像描述向量是x,文本描述向量是z,那麼它們的雙線性匯合的格拉姆矩陣是

在提取雙線性特徵後使用線性分類器

對參數矩陣進行低秩近似W=UVT,這樣

對整個分數向量,使用一個投影矩陣,並增加激活函數

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,也是對參數矩陣進行低秩近似。和MLB相比,分數向量 y的每一項都由

計算得到,不進一步進入投影矩陣和激活函數。

4.3 動作識別

Rohit Girdhar and Deva Ramanan. Attentional pooling for action recognition. NIPS 2017: 33-44.

Girdhar和Remanan對參數矩陣做了秩1近似W=UVT,即

對整個分數向量,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. 總結

本文介紹了雙線性匯合在細粒度圖像分類及其他計算機視覺領域的應用。研究方向大致分爲兩類,設計更好的雙線性匯合過程,以及精簡雙線性匯合。未來可能的研究方向包括以下幾個部分

  • 雙線性匯合結果的規範化。目前發現矩陣冪規範化對提升性能很有幫助,是否還有其他規範化方法,以及能否設計出其在GPU的高效實現?
  • 精簡雙線性匯合。目前研究的一大關注點是對參數矩陣進行低秩近似,是否還有其他精簡雙線性匯合方法?
  • 雙線性匯合原理。目前對雙線性匯合原理的理解圍繞着深度描述向量之間的二階多項式核展開,是否還有其他對雙線性匯合原理的理解方法?

此外,經典雙線性匯合官方源代碼是基於MatConvNet實現,這裏提供一個基於PyTorch的實現版本:https://github.com/HaoMood/bilinear-cnn

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