双线性汇合(bilinear pooling)在细粒度图像分析及其他领域的进展综述
作者簡介:
張皓
南京大學(xué)計(jì)算機(jī)系機(jī)器學(xué)習(xí)與數(shù)據(jù)挖掘所(LAMDA)
研究方向?yàn)橛?jì)算機(jī)視覺和機(jī)器學(xué)習(xí),特別是視覺識(shí)別和深度學(xué)習(xí)
個(gè)人主頁:goo.gl/N715YT
?
細(xì)粒度圖像分類旨在同一大類圖像的確切子類。由于不同子類之間的視覺差異很小,而且容易受姿勢(shì)、視角、圖像中目標(biāo)位置等影響,這是一個(gè)很有挑戰(zhàn)性的任務(wù)。因此,類間差異通常比類內(nèi)差異更小。雙線性匯合(bilinear pooling)計(jì)算不同空間位置的外積,并對(duì)不同空間位置計(jì)算平均匯合以得到雙線性特征。外積捕獲了特征通道之間成對(duì)的相關(guān)關(guān)系,并且這是平移不變的。雙線性匯合提供了比線性模型更強(qiáng)的特征表示,并可以端到端地進(jìn)行優(yōu)化,取得了和使用部位(parts)信息相當(dāng)或甚至更高的性能。
?
在本文,我們將對(duì)使用雙線性匯合進(jìn)行細(xì)粒度分類的方法發(fā)展歷程予以回顧。研究方向大致分為兩類:設(shè)計(jì)更好的雙線性匯合過程,以及精簡雙線性匯合。其中,對(duì)雙線性匯合過程的設(shè)計(jì)主要包括對(duì)匯合結(jié)果規(guī)范化過程的選擇及其高效實(shí)現(xiàn),以及融合一階和二階信息。精簡雙線性匯合設(shè)計(jì)大致有三種思路:利用PCA降維、近似核計(jì)算、以及低秩雙線性分類器。此外,雙線性匯合的思想也被用于其他計(jì)算機(jī)視覺領(lǐng)域,例如風(fēng)格遷移、視覺問答、動(dòng)作識(shí)別等。我們也將介紹雙線性匯合在這些領(lǐng)域的應(yīng)用。
?
1. 數(shù)學(xué)準(zhǔn)備
在本節(jié),我們介紹本文用要用到的符號(hào)和在推導(dǎo)時(shí)需要的數(shù)學(xué)性質(zhì)。
?
1.1 符號(hào)
深度描述向量(deep descripto)xi?∈RD?。其中1<=i<=HW。例如對(duì)VGG-16網(wǎng)絡(luò),我們通常使用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)。
?
分?jǐn)?shù)向量(score vector)y∈Rk,softma層的輸入,k是分類任務(wù)的類別數(shù)。
?
1.2 數(shù)學(xué)性質(zhì)
由于雙線性匯合相關(guān)的論文涉及許多矩陣運(yùn)算,尤其是跡運(yùn)算。如下性質(zhì)在推導(dǎo)時(shí)將有幫助。這些性質(zhì)在使用時(shí)即可以從左向右使用,也可以從右向左使用。
?
向量化操作的跡等價(jià)
弗羅貝尼烏斯范數(shù)(Frobenius norm)的跡等價(jià)
矩陣跡滿足交換率和結(jié)合率
矩陣轉(zhuǎn)置不改變跡
矩陣冪等價(jià)于特征值分別取冪
?
1.3 雙線性
對(duì)函數(shù)分f(x,y),雙線性(bilinear)是指當(dāng)固定其中一個(gè)參數(shù)(例如x)時(shí),f(x,y)對(duì)另一個(gè)參數(shù)(例如y)是線性的。在這里,研究的雙線性函數(shù)是形如f(x,y)=XTAy這樣的形式。本文關(guān)注的雙線性匯合叫雙線性這個(gè)名字是受歷史的影響,在早期兩個(gè)分支是不同的,現(xiàn)在主流做法是兩個(gè)分支使用相同的輸入,整個(gè)操作將變?yōu)榉蔷€性而不是雙線性,但這個(gè)名稱沿用至今。
?
2. 雙線性匯合
雙線性匯合在深度學(xué)習(xí)復(fù)興前就已經(jīng)被提出,隨后,在細(xì)粒度圖像分類領(lǐng)域得到了廣泛使用。本節(jié)將介紹雙線性匯合及其變體。
?
2.1 細(xì)粒度分類中的雙線性匯合
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.
?
雙線性匯合操作通過計(jì)算深度描述向量的格拉姆矩陣G捕獲特征通道之間成對(duì)的相關(guān)關(guān)系。隨后,將格拉姆矩陣展成向量
并進(jìn)行規(guī)范化(normalization)
得到最終的雙線性特征。
?
在原文中,Lin等人使用了兩個(gè)不同的網(wǎng)絡(luò)得到雙線性匯合的不同分支,動(dòng)機(jī)是希望一個(gè)分支學(xué)到位置(where)信息,而另一個(gè)分支學(xué)到外觀(what)信息。事實(shí)上,這是不可能的。
Mohammad Moghimi, Serge J. Belongie, Mohammad J. Saberian, Jian Yang, Nuno Vasconcelos, and Li-Jia Li. Boosted convolutional neural networks. BMVC 2016.
?
Moghimi等人提出BoostCNN,利用多個(gè)雙線性CNN的boosting集成來提升性能,通過最小二乘目標(biāo)函數(shù),學(xué)習(xí)boosting權(quán)重。然而這會(huì)使得訓(xùn)練變慢兩個(gè)量級(jí)。
Tsung-Yu Lin and Subhransu Maji. Improved bilinear pooling with CNNs. BMVC 2017.
?
Lin和Maji探索了對(duì)格拉姆矩陣不同的規(guī)范化方案,并發(fā)現(xiàn)對(duì)格拉姆矩陣進(jìn)行0.5矩陣冪規(guī)范化壓縮格拉姆矩陣特征值的動(dòng)態(tài)范圍
后結(jié)合逐元素平方開根和L2規(guī)范化可以得到2-3 %的性能提升。此外,由于GPU上沒有SVD的高效實(shí)現(xiàn),Lin和Maji使用牛頓迭代法的變體計(jì)算G1/2?,并通過解李雅普諾夫方程(Lyapunov equation)來估計(jì)G1/2的梯度進(jìn)行訓(xùn)練。
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,其對(duì)深度描述向量的協(xié)方差矩陣∑進(jìn)行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的高效實(shí)現(xiàn),相比Lin和Maji在反向解李雅普諾夫方程時(shí)仍需進(jìn)行舒爾分解(Schur decomposition)或特征值分解,Li等人前向和反向過程都基于牛頓迭代法,來對(duì)矩陣進(jìn)行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等人認(rèn)為,格拉姆矩陣會(huì)受視覺爆發(fā)(visual burstiness)現(xiàn)象的影響。視覺爆發(fā)是指一個(gè)視覺元素在同一個(gè)圖片中多次出現(xiàn),這會(huì)影響其他視覺元素的作用。關(guān)于視覺爆發(fā)的更多信息請(qǐng)參閱Herve Jegou, Matthijs Douze, and Cordelia Schmid. On the burstiness of visual elements. CVPR 2009: 1169-1176.
?
事實(shí)上,由于格拉姆矩陣G=(1/HW)XXT的條件數(shù)是X的平方,因此格拉姆矩陣會(huì)比描述矩陣更不穩(wěn)定。因此,通過0.5矩陣冪可以使得格拉姆矩陣的條件數(shù)等于描述矩陣的條件數(shù),穩(wěn)定訓(xùn)練過程。
?
Wei等人提出格拉斯曼(Grassmann)/子空間匯合,令X的SVD分解為X=U∑VT,記矩陣U的前k列為Uk∈RD*K,該匯合結(jié)束輸出
這個(gè)結(jié)果不受X的條件數(shù)的影響。相比經(jīng)典雙線性匯合結(jié)果
格拉斯曼/子空間匯將格拉姆矩陣的前k個(gè)奇異值/特征值置1,其他奇異值/特征值置0。
?
考慮一張訓(xùn)練圖像和一張測試圖像對(duì)應(yīng)的格拉斯曼/子空間匯合結(jié)果
?
因此,下一層線性分類器的輸出是
?
此外,在格拉斯曼/子空間匯合前Wei等人先對(duì)描述向量進(jìn)行降維。Wei等人認(rèn)為常用的使用1X1卷積核P進(jìn)行降維會(huì)使得降維結(jié)果的各通道的多樣性降低,因此使用P的奇異向量來降維。
?
Tsung-Yu Lin, Subhransu Maji, and Piotr Koniusz. Second-Order democratic aggregation. ECCV 2018: 639-656.
?
Lin等人使用民主聚合來使不同深度描述向量的貢獻(xiàn)接近。
?
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,同時(shí)利用了一階和二階信息
?
并對(duì)其進(jìn)行0.5矩陣冪規(guī)范化。
?
Mengran Gou, Fei Xiong, Octavia I. Camps, and Mario Sznaier. MoNet: Moments embedding network. CVPR 2018: 3175-3183.
?
Gou等人對(duì)描述矩陣X進(jìn)行增廣
這樣,通過一次矩陣乘法,可以得到
其同時(shí)包含了一階和二階信息。另外,利用tensor sketch,可以設(shè)計(jì)精簡雙線性匯合操作。
?
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)一表示平均匯合和雙線性匯合.α-匯合形式化為
其中α是一個(gè)可學(xué)習(xí)的參數(shù),|Xi|α-1表示對(duì)Xi逐元素取絕對(duì)值并逐元素取冪。當(dāng)深度描述向量每一項(xiàng)都非負(fù)時(shí)(這是通常的情況,因?yàn)槲覀兪褂肦eLU層的特征),α-匯合可以簡化為
當(dāng)α=1時(shí),代表平均匯合
當(dāng)α=2時(shí),代表雙線性匯合
此外,為了對(duì)深度卷積神經(jīng)網(wǎng)絡(luò)學(xué)到特征進(jìn)行理解,考慮一張訓(xùn)練圖像和一張測試圖像對(duì)應(yīng)的格拉姆矩陣
?
其中Xi是對(duì)應(yīng)于的描述向量,?Xj是對(duì)應(yīng)于的描述向量。如果后續(xù)使用一層全連接層進(jìn)行分類,這相當(dāng)于使用了線性核SVM。根據(jù)表示定理,測試圖像的分類分?jǐn)?shù)是和所有訓(xùn)練圖像內(nèi)積的線性組合
其中N代表訓(xùn)練樣例總數(shù)。令
,其表示了測試圖像的第j個(gè)深度描述向量和第n張訓(xùn)練圖像的第i個(gè)深度描述向量的匹配程度,也就是對(duì)應(yīng)圖像區(qū)域的匹配程度。通過對(duì)γnij進(jìn)行可視化,我們可以觀察哪些區(qū)域?qū)τ诩?xì)粒度分類最有幫助。
?
3. 精簡雙線性匯合
由于格拉姆矩陣非常高維,有很多工作致力于設(shè)計(jì)精簡雙線性匯合,本節(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等人將雙線性匯合輸入的一個(gè)分支先使用??的卷積進(jìn)行降維,例如將512維降維到64維。以VGG-16為例,最終格拉姆矩陣將由R512x512降維到R512x64。在實(shí)際應(yīng)用中,用PCA對(duì)這個(gè)1X1卷積的參數(shù)進(jìn)行初始化。
?
3.2 近似核計(jì)算
Yang Gao, Oscar Beijbom, and Ning Zhang, and Trevor Darrell. Compact bilinear pooling. CVPR 2016: 317-326
?
考慮一張訓(xùn)練圖像和一張測試圖像對(duì)應(yīng)的格拉姆矩陣G和G',
Gao等人使用深度描述向量的低維投影的內(nèi)積近似二次多項(xiàng)式核
實(shí)際應(yīng)用中,Gao等人使用了random Maclaurin和tensor sketch兩種近似,可以在達(dá)到和標(biāo)準(zhǔn)雙線性匯合相似的性能,但參數(shù)量減少了90%。
關(guān)于利用FFT進(jìn)行快速多項(xiàng)式乘法的部分,已超出本文范圍。感興趣的讀者可參閱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等人進(jìn)一步利用核近似,借助于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)絡(luò)(參見下文)應(yīng)用到細(xì)粒度識(shí)別中,并對(duì)核函數(shù)泰勒展開進(jìn)行近似。
?
3.3 低秩雙線性分類器
Shu Kong and Charless C. Fowlkes. Low-rank bilinear pooling for fine-grained classification. CVPR 2017: 7025-7034.
?
經(jīng)典的雙線性匯合算法在提取雙線性特征后使用線性分類器(例如使用一層全連接層或者使用線性SVM)
根據(jù)表示定理,最優(yōu)的參數(shù)矩陣是特征的線性組合
因此,最優(yōu)的參數(shù)矩陣是對(duì)陣矩陣,我們可以對(duì)其做譜分解,并根據(jù)特征值的正負(fù)分成兩部分
如果我們把所有大于0的特征值和特征向量匯總到矩陣
以及所有小于0的特征值和特征向量匯總到矩陣
那么,
即,我們可以用參數(shù)矩陣U:=[U+U-_]∈RD*r近似原來參數(shù)矩陣W∈RD*D,其中r是一個(gè)超參數(shù)。這里需要假設(shè)參數(shù)矩陣大于0和小于0的特征值個(gè)數(shù)都是r/2。
?
上述低秩近似還有另外一個(gè)好處。在計(jì)算圖像屬于各個(gè)類別的分?jǐn)?shù)時(shí)
從上式可以發(fā)現(xiàn),我們不再需要顯式的計(jì)算雙線性匯合結(jié)果。
?
為了進(jìn)一步降低參數(shù)矩陣的計(jì)算量,LRBP對(duì)參數(shù)矩陣做了第二次近似。由于細(xì)粒度識(shí)別問題中各類有公共結(jié)構(gòu),因此,LRBP將對(duì)應(yīng)各類別的參數(shù)矩陣近似為Wk=PVk,其中P∈RD*m,m是另一個(gè)超參數(shù)。不同類別的參數(shù)矩陣 P是共享的,實(shí)際中,P和Vk都由1X1卷積實(shí)現(xiàn)。P由PCA投影矩陣初始化,而Vk采用隨機(jī)初始化。
Yanghao Li, Naiyan Wang, Jiaying Liu, and Xiaodi Hou. Factorized bilinear models for image recognition. ICCV 2017: 2098-2106.
?
Li等人通過對(duì)參數(shù)矩陣進(jìn)行低秩近似來完成圖像分類任務(wù),同時(shí)其也包含了一階信息。Li等人所提出的的FBN結(jié)構(gòu)可以用于所有的卷積和全連接層。
?
Sijia Cai, Wangmeng Zuo, and Lei Zhang. Higher-order integration of hierarchical convolutional activations for fine-grained visual categorization. ICCV 2017: 511-520.
?
Cai等人捕獲了更高階的特征交互,并對(duì)參數(shù)進(jìn)行秩1近似。
Kaicheng Yu and Mathieu Salzmann. Statistically-motivated second-order pooling. ECCV 2018: 621-637.
?
Yu和Salzmann對(duì)參數(shù)矩陣進(jìn)行低秩近似,并給雙線性匯合的每一步一個(gè)概率上的解釋。這個(gè)操作可以被等價(jià)為對(duì)深度描述向量進(jìn)行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(見下文),對(duì)參數(shù)矩陣進(jìn)行低秩近似
并使用不同層的深度描述向量作為x和z。
?
4. 雙線性匯合的其他應(yīng)用
4.1 風(fēng)格遷移和紋理合成
Leon A. Gatys, Alexander S. Ecker, Matthias Bethge. Image style transfer using convolutional neural networks. CVPR 2016: 2414-2423.
?
風(fēng)格遷移的基本思路是使優(yōu)化目標(biāo)包括兩項(xiàng),使生成圖像的內(nèi)容接近原始圖像內(nèi)容,及使生成圖像風(fēng)格接近給定風(fēng)格。風(fēng)格通過格拉姆矩陣體現(xiàn),而內(nèi)容則直接通過神經(jīng)元激活值體現(xiàn)。
Yanghao Li, Naiyan Wang, Jiaying Liu, and Xiaodi Hou. Demystifying neural style transfer. IJCAI 2017: 2230-2236.
?
Li等人發(fā)現(xiàn),考慮一張訓(xùn)練圖像和一張測試圖像對(duì)應(yīng)的格拉姆矩陣G和G',風(fēng)格損失項(xiàng)
這里利用了上文Compact bilinear pooling的推導(dǎo)結(jié)果。這對(duì)應(yīng)了深度描述向量之間的二階多項(xiàng)式MMD距離。最小化風(fēng)格損失就是在最小化這兩者的特征分布。
?
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,對(duì)圖像和文本特征進(jìn)行精簡雙線性匯合。
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,對(duì)參數(shù)矩陣進(jìn)行低秩近似。假設(shè)圖像描述向量是x,文本描述向量是z,那么它們的雙線性匯合的格拉姆矩陣是
在提取雙線性特征后使用線性分類器
對(duì)參數(shù)矩陣進(jìn)行低秩近似W=UVT,這樣
對(duì)整個(gè)分?jǐn)?shù)向量,使用一個(gè)投影矩陣,并增加激活函數(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,也是對(duì)參數(shù)矩陣進(jìn)行低秩近似。和MLB相比,分?jǐn)?shù)向量 y的每一項(xiàng)都由
計(jì)算得到,不進(jìn)一步進(jìn)入投影矩陣和激活函數(shù)。
?
4.3 動(dòng)作識(shí)別
Rohit Girdhar and Deva Ramanan. Attentional pooling for action recognition. NIPS 2017: 33-44.
?
Girdhar和Remanan對(duì)參數(shù)矩陣做了秩1近似W=UVT,即
對(duì)整個(gè)分?jǐn)?shù)向量,u對(duì)所有類別共享,不同類別有各自獨(dú)立的v,這兩個(gè)分別表示為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的響應(yīng)yi是所有位置響應(yīng)的加權(quán)平均。當(dāng)f是內(nèi)積,g是恒等變換時(shí)
?
?
5. 總結(jié)
本文介紹了雙線性匯合在細(xì)粒度圖像分類及其他計(jì)算機(jī)視覺領(lǐng)域的應(yīng)用。研究方向大致分為兩類,設(shè)計(jì)更好的雙線性匯合過程,以及精簡雙線性匯合。未來可能的研究方向包括以下幾個(gè)部分
?
-  
雙線性匯合結(jié)果的規(guī)范化。目前發(fā)現(xiàn)矩陣冪規(guī)范化對(duì)提升性能很有幫助,是否還有其他規(guī)范化方法,以及能否設(shè)計(jì)出其在GPU的高效實(shí)現(xiàn)?
 
?
-  
精簡雙線性匯合。目前研究的一大關(guān)注點(diǎn)是對(duì)參數(shù)矩陣進(jìn)行低秩近似,是否還有其他精簡雙線性匯合方法?
 
?
-  
雙線性匯合原理。目前對(duì)雙線性匯合原理的理解圍繞著深度描述向量之間的二階多項(xiàng)式核展開,是否還有其他對(duì)雙線性匯合原理的理解方法?
 
?
此外,經(jīng)典雙線性匯合官方源代碼是基于MatConvNet實(shí)現(xiàn),這里提供一個(gè)基于PyTorch的實(shí)現(xiàn)版本:https://github.com/HaoMood/bilinear-cnn
?
總結(jié)
以上是生活随笔為你收集整理的双线性汇合(bilinear pooling)在细粒度图像分析及其他领域的进展综述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 近期考试反思
 - 下一篇: Sun公司JES服务器软件已支持更多操作