雙線性匯合(bilinear pooling)在細粒度影象分析及其他領域的進展綜述
作者簡介:
張皓
南京大學計算機系機器學習與資料探勘所(LAMDA)
研究方向為計算機視覺和機器學習,特別是視覺識別和深度學習
個人主頁:goo.gl/N715YT
細粒度影象分類旨在同一大類影象的確切子類。由於不同子類之間的視覺差異很小,而且容易受姿勢、視角、影象中目標位置等影響,這是一個很有挑戰性的任務。因此,類間差異通常比類內差異更小。雙線性匯合(bilinear pooling)計算不同空間位置的外積,並對不同空間位置計算平均匯合以得到雙線性特徵。外積捕獲了特徵通道之間成對的相關關係,並且這是平移不變的。雙線性匯合提供了比線性模型更強的特徵表示,並可以端到端地進行優化,取得了和使用部位(parts)資訊相當或甚至更高的效能。
在本文,我們將對使用雙線性匯合進行細粒度分類的方法發展歷程予以回顧。研究方向大致分為兩類:設計更好的雙線性匯合過程,以及精簡雙線性匯合。其中,對雙線性匯合過程的設計主要包括對匯合結果規範化過程的選擇及其高效實現,以及融合一階和二階資訊。精簡雙線性匯合設計大致有三種思路:利用PCA降維、近似核計算、以及低秩雙線性分類器。此外,雙線性匯合的思想也被用於其他計算機視覺領域,例如風格遷移、視覺問答、動作識別等。我們也將介紹雙線性匯合在這些領域的應用。
1. 數學準備
在本節,我們介紹本文用要用到的符號和在推導時需要的數學性質。
1.1 符號
深度描述向量(deep descripto)xi ∈RD 。其中1<=i<=HW。例如對VGG-16網路,我們通常使用relu5-3層的特徵提取影象的深度描述向量,那麼H=W=14,D=512。
描述矩陣(descriptor matrix)X∈RD*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矩陣冪規範化壓縮格拉姆矩陣特徵值的動態範圍
後結合逐元素平方開根和L2規範化可以得到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列為Uk∈RD*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等人將雙線性匯合輸入的一個分支先使用 的卷積進行降維,例如將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卷積後再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(見下文),對引數矩陣進行低秩近似
並使用不同層的深度描述向量作為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的高效實現?
-
精簡雙線性匯合。目前研究的一大關注點是對引數矩陣進行低秩近似,是否還有其他精簡雙線性匯合方法?
-
雙線性匯合原理。目前對雙線性匯合原理的理解圍繞著深度描述向量之間的二階多項式核展開,是否還有其他對雙線性匯合原理的理解方法?