新智元專欄
作者:張皓(南京大學(xué))
深度學(xué)習(xí)目前已成為發(fā)展最快、最令人興奮的機(jī)器學(xué)習(xí)領(lǐng)域之一。本文以計(jì)算機(jī)視覺的重要概念為線索,介紹深度學(xué)習(xí)在計(jì)算機(jī)視覺任務(wù)中的應(yīng)用,包括網(wǎng)絡(luò)壓縮、細(xì)粒度圖像分類、看圖說話、視覺問答、圖像理解、紋理生成和風(fēng)格遷移、人臉識(shí)別、圖像檢索、目標(biāo)跟蹤等。
網(wǎng)絡(luò)壓縮(network compression)
盡管深度神經(jīng)網(wǎng)絡(luò)取得了優(yōu)異的性能,但巨大的計(jì)算和存儲(chǔ)開銷成為其部署在實(shí)際應(yīng)用中的挑戰(zhàn)。有研究表明,神經(jīng)網(wǎng)絡(luò)中的參數(shù)存在大量的冗余。因此,有許多工作致力于在保證準(zhǔn)確率的同時(shí)降低網(wǎng)路復(fù)雜度。
低秩近似用低秩矩陣近似原有權(quán)重矩陣。例如,可以用SVD得到原矩陣的最優(yōu)低秩近似,或用Toeplitz矩陣配合Krylov分解近似原矩陣。
剪枝(pruning) 在訓(xùn)練結(jié)束后,可以將一些不重要的神經(jīng)元連接(可用權(quán)重?cái)?shù)值大小衡量配合損失函數(shù)中的稀疏約束)或整個(gè)濾波器去除,之后進(jìn)行若干輪微調(diào)。實(shí)際運(yùn)行中,神經(jīng)元連接級(jí)別的剪枝會(huì)使結(jié)果變得稀疏,不利于緩存優(yōu)化和內(nèi)存訪問,有的需要專門設(shè)計(jì)配套的運(yùn)行庫。相比之下,濾波器級(jí)別的剪枝可直接運(yùn)行在現(xiàn)有的運(yùn)行庫下,而濾波器級(jí)別的剪枝的關(guān)鍵是如何衡量濾波器的重要程度。例如,可用卷積結(jié)果的稀疏程度、該濾波器對(duì)損失函數(shù)的影響、或卷積結(jié)果對(duì)下一層結(jié)果的影響來衡量。
量化(quantization)對(duì)權(quán)重?cái)?shù)值進(jìn)行聚類,用聚類中心數(shù)值代替原權(quán)重?cái)?shù)值,配合Huffman編碼,具體可包括標(biāo)量量化或乘積量化。但如果只考慮權(quán)重自身,容易造成量化誤差很低,但分類誤差很高的情況。因此,Quantized CNN優(yōu)化目標(biāo)是重構(gòu)誤差最小化。此外,可以利用哈希進(jìn)行編碼,即被映射到同一個(gè)哈希桶中的權(quán)重共享同一個(gè)參數(shù)值。
降低數(shù)據(jù)數(shù)值范圍默認(rèn)情況下數(shù)據(jù)是單精度浮點(diǎn)數(shù),占32位。有研究發(fā)現(xiàn),改用半精度浮點(diǎn)數(shù)(16位)幾乎不會(huì)影響性能。谷歌TPU使用8位整型來表示數(shù)據(jù)。極端情況是數(shù)值范圍為二值或三值(0/1或-1/0/1),這樣僅用位運(yùn)算即可快速完成所有計(jì)算,但如何對(duì)二值或三值網(wǎng)絡(luò)進(jìn)行訓(xùn)練是一個(gè)關(guān)鍵。通常做法是網(wǎng)絡(luò)前饋過程為二值或三值,梯度更新過程為實(shí)數(shù)值。此外,有研究認(rèn)為,二值運(yùn)算的表示能力有限,因此其使用一個(gè)額外的浮點(diǎn)數(shù)縮放二值卷積后的結(jié)果,以提升網(wǎng)絡(luò)表示能力。
精簡結(jié)構(gòu)設(shè)計(jì)有研究工作直接設(shè)計(jì)精簡的網(wǎng)絡(luò)結(jié)構(gòu)。例如,(1).瓶頸(bottleneck)結(jié)構(gòu)及1×1卷積。這種設(shè)計(jì)理念已經(jīng)被廣泛用于Inception和ResNet系列網(wǎng)絡(luò)設(shè)計(jì)中。(2). 分組卷積。(3). 擴(kuò)張卷積。使用擴(kuò)張卷積可以保持參數(shù)量不變的情況下擴(kuò)大感受野。
知識(shí)蒸餾(knowledge distillation) 訓(xùn)練小網(wǎng)絡(luò)以逼近大網(wǎng)絡(luò),但應(yīng)該如何去逼近大網(wǎng)絡(luò)仍沒有定論。
軟硬件協(xié)同設(shè)計(jì)常用的硬件包括兩大類:(1). 通用硬件,包括CPU(低延遲,擅長串行、復(fù)雜運(yùn)算)和GPU(高吞吐率,擅長并行、簡單運(yùn)算)。(2). 專用硬件,包括ASIC(固定邏輯器件,例如谷歌TPU)和FPGA(可編程邏輯器件,靈活,但效率不如ASIC)。
細(xì)粒度圖像分類(fine-grained image classification)
相比(通用)圖像分類,細(xì)粒度圖像分類需要判斷的圖像類別更加精細(xì)。比如,我們需要判斷該目標(biāo)具體是哪一種鳥、哪一款的車、或哪一個(gè)型號(hào)的飛機(jī)。通常,這些子類之間的差異十分微小。比如,波音737-300和波音737-400的外觀可見的區(qū)別只是窗戶的個(gè)數(shù)不同。因此,細(xì)粒度圖像分類是比(通用)圖像分類更具有挑戰(zhàn)性的任務(wù)。
細(xì)粒度圖像分類的經(jīng)典做法是先定位出目標(biāo)的不同部位,例如鳥的頭、腳、翅膀等,之后分別對(duì)這些部位提取特征,最后融合這些特征進(jìn)行分類。這類方法的準(zhǔn)確率較高,但這需要對(duì)數(shù)據(jù)集人工標(biāo)注部位信息。目前細(xì)粒度分類的一大研究趨勢是不借助額外監(jiān)督信息,只利用圖像標(biāo)記進(jìn)行學(xué)習(xí),其以基于雙線性CNN的方法為代表。
雙線性CNN (bilinear CNN)其通過計(jì)算卷積描述向量(deor)的外積來考察不同維度之間的交互關(guān)系。由于描述向量的不同維度對(duì)應(yīng)卷積特征的不同通道,而不同通道提取了不同的語義特征,因此,通過雙線性操作,可以同時(shí)捕獲輸入圖像的不同語義特征之間的關(guān)系。
精簡雙線性匯合雙線性匯合的結(jié)果十分高維,這會(huì)占用大量的計(jì)算和存儲(chǔ)資源,同時(shí)使后續(xù)的全連接層的參數(shù)量大大增加。許多后續(xù)研究工作旨在設(shè)計(jì)更精簡的雙線性匯合策略,大致包括以下三大類:(1). PCA降維。在雙線性匯合前,對(duì)深度描述向量進(jìn)行PCA投影降維,但這會(huì)使各維不再相關(guān),進(jìn)而影響性能。一個(gè)折中的方案是只對(duì)一支進(jìn)行PCA降維。(2). 近似核估計(jì)。可以證明,在雙線性匯合結(jié)果后使用線性SVM分類等價(jià)于在描述向量間使用了多項(xiàng)式核。由于兩個(gè)向量外積的映射等于兩個(gè)向量分別映射之后再卷積,有研究工作使用隨機(jī)矩陣近似向量的映射。此外,通過近似核估計(jì),我們可以捕獲超過二階的信息(如下圖)。(3). 低秩近似。對(duì)后續(xù)用于分類的全連接層的參數(shù)矩陣進(jìn)行低秩近似,進(jìn)而使我們不用顯式計(jì)算雙線性匯合結(jié)果。
“看圖說話”(image captioning)
“看圖說話”旨在對(duì)一張圖像產(chǎn)生對(duì)其內(nèi)容一兩句話的文字描述。這是視覺和自然語言處理兩個(gè)領(lǐng)域的交叉任務(wù)。
編碼-解碼網(wǎng)絡(luò)(encoder-decoder networks)看圖說話網(wǎng)絡(luò)設(shè)計(jì)的基本思想,其借鑒于自然語言處理中的機(jī)器翻譯思路。將機(jī)器翻譯中的源語言編碼網(wǎng)絡(luò)替換為圖像的CNN編碼網(wǎng)絡(luò)以提取圖像的特征,之后用目標(biāo)語言解碼網(wǎng)絡(luò)生成文字描述。
Show, attend, and tell注意力(attention)機(jī)制是機(jī)器翻譯中用于捕獲長距離依賴的常用技巧,也可以用于看圖說話。在解碼網(wǎng)絡(luò)中,每個(gè)時(shí)刻,除了預(yù)測下一個(gè)詞外,還需要輸出一個(gè)二維注意力圖,用于對(duì)深度卷積特征進(jìn)行加權(quán)匯合。使用注意力機(jī)制的一個(gè)額外的好處是可以對(duì)網(wǎng)絡(luò)進(jìn)行可視化,以觀察在生成每個(gè)詞的時(shí)候網(wǎng)絡(luò)注意到圖像中的哪些部分。
Adaptive attention之前的注意力機(jī)制會(huì)對(duì)每個(gè)待預(yù)測詞生成一個(gè)二維注意力圖(圖(a)),但對(duì)于像the、of這樣的詞實(shí)際上并不需要借助來自圖像的線索,并且有的詞可以根據(jù)上文推測出也不需要圖像信息。該工作擴(kuò)展了LSTM,以提出“視覺哨兵”機(jī)制以判斷預(yù)測當(dāng)前詞時(shí)應(yīng)更關(guān)注上文語言信息還是更關(guān)注圖像信息(圖(b))。此外,和之前工作利用上一時(shí)刻的隱層狀態(tài)計(jì)算注意力圖不同,該工作使用當(dāng)前隱層狀態(tài)。
視覺問答(visual question answering)
給定一張圖像和一個(gè)關(guān)于該圖像內(nèi)容的文字問題,視覺問答旨在從若干候選文字回答中選出正確的答案。其本質(zhì)是分類任務(wù),也有工作是用RNN解碼來生成文字回答。視覺問答也是視覺和自然語言處理兩個(gè)領(lǐng)域的交叉任務(wù)。
基本思路使用CNN從圖像中提取圖像特征,用RNN從文字問題中提取文本特征,之后設(shè)法融合視覺和文本特征,最后通過全連接層進(jìn)行分類。該任務(wù)的關(guān)鍵是如何融合這兩個(gè)模態(tài)的特征。直接的融合方案是將視覺和文本特征拼成一個(gè)向量、或者讓視覺和文本特征向量逐元素相加或相乘。
注意力機(jī)制 和“看圖說話”相似,使用注意力機(jī)制也會(huì)提升視覺問答的性能。注意力機(jī)制包括視覺注意力(“看哪里”)和文本注意力(“關(guān)注哪個(gè)詞”)兩者。HieCoAtten可同時(shí)或交替產(chǎn)生視覺和文本注意力。DAN將視覺和文本的注意力結(jié)果映射到一個(gè)相同的空間,并據(jù)此同時(shí)產(chǎn)生下一步的視覺和文本注意力。
雙線性融合通過視覺特征向量和文本特征向量的外積,可以捕獲這兩個(gè)模態(tài)特征各維之間的交互關(guān)系。為避免顯式計(jì)算高維雙線性匯合結(jié)果,細(xì)粒度識(shí)別中的精簡雙線性匯合思想也可用于視覺問答。例如,MFB采用了低秩近似思路,并同時(shí)使用了視覺和文本注意力機(jī)制。
網(wǎng)絡(luò)可視化(visualizing)和網(wǎng)絡(luò)理解(understanding)
這些方法旨在提供一些可視化的手段以理解深度卷積神經(jīng)網(wǎng)絡(luò)。
直接可視化第一層濾波器由于第一層卷積層的濾波器直接在輸入圖像中滑動(dòng),我們可以直接對(duì)第一層濾波器進(jìn)行可視化??梢钥闯?第一層權(quán)重關(guān)注于特定朝向的邊緣以及特定色彩組合。這和生物的視覺機(jī)制是符合的。但由于高層濾波器并不直接作用于輸入圖像,直接可視化只對(duì)第一層濾波器有效。
t-SNE對(duì)圖像的fc7或pool5特征進(jìn)行低維嵌入,比如降維到2維使得可以在二維平面畫出。具有相近語義信息的圖像應(yīng)該在t-SNE結(jié)果中距離相近。和PCA不同的是,t-SNE是一種非線性降維方法,保留了局部之間的距離。下圖是直接對(duì)MNIST原始圖像進(jìn)行t-SNE的結(jié)果??梢钥闯?MNIST是比較容易的數(shù)據(jù)集,屬于不同類別的圖像聚類十分明顯。
可視化中間層激活值對(duì)特定輸入圖像,畫出不同特征圖的響應(yīng)。觀察發(fā)現(xiàn),即使ImageNet中沒有人臉或文字相關(guān)的類別,網(wǎng)絡(luò)會(huì)學(xué)習(xí)識(shí)別這些語義信息,以輔助后續(xù)的分類。
最大響應(yīng)圖像區(qū)域選擇某一特定的中間層神經(jīng)元,向網(wǎng)絡(luò)輸入許多不同的圖像,找出使該神經(jīng)元響應(yīng)最大的圖像區(qū)域,以觀察該神經(jīng)元用于響應(yīng)哪種語義特征。是“圖像區(qū)域”而不是“完整圖像”的原因是中間層神經(jīng)元的感受野是有限的,沒有覆蓋到全部圖像。
輸入顯著性圖對(duì)給定輸入圖像,計(jì)算某一特定神經(jīng)元對(duì)輸入圖像的偏導(dǎo)數(shù)。其表達(dá)了輸入圖像不同像素對(duì)該神經(jīng)元響應(yīng)的影響,即輸入圖像的不同像素的變化會(huì)帶來怎樣的神經(jīng)元響應(yīng)值的變化。Guided backprop只反向傳播正的梯度值,即只關(guān)注對(duì)神經(jīng)元正向的影響,這會(huì)產(chǎn)生比標(biāo)準(zhǔn)反向傳播更好的可視化效果。
梯度上升優(yōu)化選擇某一特定的神經(jīng)元,計(jì)算某一特定神經(jīng)元對(duì)輸入圖像的偏導(dǎo)數(shù),對(duì)輸入圖像使用梯度上升進(jìn)行優(yōu)化,直到收斂。此外,我們需要一些正則化項(xiàng)使得產(chǎn)生的圖像更接近自然圖像。此外,除了在輸入圖像上進(jìn)行優(yōu)化外,我們也可以對(duì)fc6特征進(jìn)行優(yōu)化并從其生成需要的圖像。
DeepVisToolbox該工具包同時(shí)提供了以上四種可視化結(jié)果。該鏈接中提供了一個(gè)演示視頻:Jason Yosinski(yosinski.com/deepvis#toolbox)
遮擋實(shí)驗(yàn)(occlusion experiment)用一個(gè)灰色方塊遮擋住圖像的不同區(qū)域,之后前饋網(wǎng)絡(luò),觀察其對(duì)輸出的影響。對(duì)輸出影響最大的區(qū)域即是對(duì)判斷該類別最重要的區(qū)域。從下圖可以看出,遮擋住狗的臉對(duì)結(jié)果影響最大。
Deep dream 選擇一張圖像和某一特定層,優(yōu)化目標(biāo)是通過對(duì)圖像的梯度上升,最大化該層激活值的平方。實(shí)際上,這是在通過正反饋放大該層神經(jīng)元捕獲到的語義特征??梢钥闯?生成的圖像中出現(xiàn)了很多狗的圖案,這是因?yàn)镮mageNet數(shù)據(jù)集1000類別中有200類關(guān)于狗,因此,神經(jīng)網(wǎng)絡(luò)中有很多神經(jīng)元致力于識(shí)別圖像中的狗。
對(duì)抗樣本(adversarial examples) 選擇一張圖像和一個(gè)不是它真實(shí)標(biāo)記的類別,計(jì)算該類別對(duì)輸入圖像的偏導(dǎo)數(shù),對(duì)圖像進(jìn)行梯度上升優(yōu)化。實(shí)驗(yàn)發(fā)現(xiàn),在對(duì)圖像進(jìn)行難以察覺的微小改變后,就可以使網(wǎng)絡(luò)以相當(dāng)大的信心認(rèn)為該圖像屬于那個(gè)錯(cuò)誤的類別。實(shí)際應(yīng)用中,對(duì)抗樣本會(huì)將會(huì)對(duì)金融、安防等領(lǐng)域產(chǎn)生威脅。有研究認(rèn)為,這是由于圖像空間非常高維,即使有非常多的訓(xùn)練數(shù)據(jù),也只能覆蓋該空間的很小一部分。只要輸入稍微偏離該流形空間,網(wǎng)絡(luò)就難以得到正常的判斷。
紋理生成(texture synthesis)和風(fēng)格遷移(style transform)
給定一小張包含特定紋理的圖像,紋理合成旨在生成更大的包含相同紋理的圖像。給定一張普通圖像和一張包含特定繪畫風(fēng)格的圖像,風(fēng)格遷移旨在保留原圖內(nèi)容的同時(shí),將給定風(fēng)格遷移到該圖中。
特征逆向工程(feature inversion) 這兩類問題的基本思路。給定一個(gè)中間層特征,我們希望通過迭代優(yōu)化,產(chǎn)生一個(gè)特征和給定特征接近的圖像。此外,特征逆向工程也可以告訴我們中間層特征中蘊(yùn)含了多少圖像中信息??梢钥闯?低層的特征中幾乎沒有損失圖像信息,而高層尤其是全連接特征會(huì)丟失大部分的細(xì)節(jié)信息。從另一方面講,高層特征對(duì)圖像的顏色和紋理變化更不敏感。
Gram矩陣給定D×H×W的深度卷積特征,我們將其轉(zhuǎn)換為D×(HW)的矩陣X,則該層特征對(duì)應(yīng)的Gram矩陣定義為
G=XX^T
通過外積,Gram矩陣捕獲了不同特征之間的共現(xiàn)關(guān)系。
紋理生成基本思路對(duì)給定紋理圖案的Gram矩陣進(jìn)行特征逆向工程。使生成圖像的各層特征的Gram矩陣接近給定紋理圖像的各層Gram。低層特征傾向于捕獲細(xì)節(jié)信息,而高層特征可以捕獲更大面積的特征。
風(fēng)格遷移基本思路優(yōu)化目標(biāo)包括兩項(xiàng),使生成圖像的內(nèi)容接近原始圖像內(nèi)容,及使生成圖像風(fēng)格接近給定風(fēng)格。風(fēng)格通過Gram矩陣體現(xiàn),而內(nèi)容則直接通過神經(jīng)元激活值體現(xiàn)。
直接生成風(fēng)格遷移的圖像上述方法的缺點(diǎn)是需要多次迭代才能收斂。該工作提出的解決方案是訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)來直接生成風(fēng)格遷移的圖像。一旦訓(xùn)練結(jié)束,進(jìn)行風(fēng)格遷移只需前饋網(wǎng)絡(luò)一次,十分高效。在訓(xùn)練時(shí),將生成圖像、原始圖像、風(fēng)格圖像三者前饋一固定網(wǎng)絡(luò)以提取不同層特征用于計(jì)算損失函數(shù)。
示例歸一化(instance normalization)和批量歸一化(batch normalization)作用于一個(gè)批量不同,示例歸一化的均值和方差只由圖像自身決定。實(shí)驗(yàn)中發(fā)現(xiàn),在風(fēng)格遷移網(wǎng)絡(luò)中使用示例歸一化可以從圖像中去除和示例有關(guān)的對(duì)比度信息以簡化生成過程。
條件示例歸一化(conditional instance normalization)上述方法的一個(gè)問題是對(duì)每種不同的風(fēng)格,我們需要分別訓(xùn)練一個(gè)模型。由于不同風(fēng)格之間存在共性,該工作旨在讓對(duì)應(yīng)于不同風(fēng)格的風(fēng)格遷移網(wǎng)絡(luò)共享參數(shù)。具體來說,其修改了風(fēng)格遷移網(wǎng)絡(luò)中的示例歸一化,使其具有N組縮放和平移參數(shù),每組對(duì)應(yīng)一個(gè)不同的風(fēng)格。這樣,我們可以通過一次前饋過程同時(shí)獲得N張風(fēng)格遷移圖像。
人臉驗(yàn)證/識(shí)別(face verification/recognition)
人臉驗(yàn)證/識(shí)別可以認(rèn)為是一種更加精細(xì)的細(xì)粒度圖像識(shí)別任務(wù)。人臉驗(yàn)證是給定兩張圖像、判斷其是否屬于同一個(gè)人,而人臉識(shí)別是回答圖像中的人是誰。一個(gè)人臉驗(yàn)證/識(shí)別系統(tǒng)通常包括三大步:檢測圖像中的人臉,特征點(diǎn)定位、及對(duì)人臉進(jìn)行驗(yàn)證/識(shí)別。人臉驗(yàn)證/識(shí)別的難題在于需要進(jìn)行小樣本學(xué)習(xí)。通常情況下,數(shù)據(jù)集中每人只有對(duì)應(yīng)的一張圖像,這稱為一次學(xué)習(xí)(one-shot learning)。
兩種基本思路當(dāng)作分類問題(需要面對(duì)非常多的類別數(shù)),或者當(dāng)作度量學(xué)習(xí)問題。如果兩張圖像屬于同一個(gè)人,我們希望它們的深度特征比較接近,否則,我們希望它們不接近。之后,根據(jù)深度特征之間的距離進(jìn)行驗(yàn)證(對(duì)特征距離設(shè)定閾值以判斷是否屬于同一個(gè)人),或識(shí)別(k近鄰分類)。
DeepFace第一個(gè)將深度神經(jīng)網(wǎng)絡(luò)成功用于人臉驗(yàn)證/識(shí)別的模型。DeepFace使用了非共享參數(shù)的局部連接。這是由于人臉不同區(qū)域存在不同的特征(例如眼睛和嘴巴具有不同的特征),經(jīng)典卷積層的“共享參數(shù)”性質(zhì)在人臉識(shí)別中不再適用。因此,人臉識(shí)別網(wǎng)絡(luò)中會(huì)采用不共享參數(shù)的局部連接。其使用孿生網(wǎng)絡(luò)(siamese network)進(jìn)行人臉驗(yàn)證。當(dāng)兩張圖像的深度特征小于給定閾值時(shí),認(rèn)為其來自同一個(gè)人。
FaceNet 三元輸入,希望和負(fù)樣本之間的距離以一定間隔(如0.2)大于和正樣本之間的距離。此外,輸入三元的選擇不是隨機(jī)的,否則由于和負(fù)樣本之間的差異很大,網(wǎng)絡(luò)學(xué)不到什么東西。選擇最困難的三元組(即最遠(yuǎn)的正樣本和最近的負(fù)樣本)會(huì)使網(wǎng)絡(luò)陷入局部最優(yōu)。FaceNet采用半困難策略,選擇比正樣本遠(yuǎn)的負(fù)樣本。
大間隔交叉熵?fù)p失近幾年的一大研究熱點(diǎn)。由于類內(nèi)波動(dòng)大而類間相似度高,有研究工作旨在提升經(jīng)典的交叉熵?fù)p失對(duì)深度特征的判斷能力。例如,L-Softmax加強(qiáng)優(yōu)化目標(biāo),使對(duì)應(yīng)類別的參數(shù)向量和深度特征夾角增大。 A-Softmax進(jìn)一步約束L-Softmax的參數(shù)向量長度為1,使訓(xùn)練更集中到優(yōu)化深度特征和夾角上。實(shí)際中,L-Softmax和A-Softmax都很難收斂,訓(xùn)練時(shí)采用了退火方法,從標(biāo)準(zhǔn)softmax逐漸退火至L-Softmax或A-Softmax。
活體檢測(liveness detection) 判斷人臉是來自真人或是來自照片等,這是人臉驗(yàn)證/識(shí)別需要解決的關(guān)鍵問題。在產(chǎn)業(yè)界目前主流的做法是利用人的表情變化、紋理信息、眨眼、或讓用戶完成一系列動(dòng)作等。
圖像檢索(image retrieval)
給定一個(gè)包含特定實(shí)例(例如特定目標(biāo)、場景、建筑等)的查詢圖像,圖像檢索旨在從數(shù)據(jù)庫圖像中找到包含相同實(shí)例的圖像。但由于不同圖像的拍攝視角、光照、或遮擋情況不同,如何設(shè)計(jì)出能應(yīng)對(duì)這些類內(nèi)差異的有效且高效的圖像檢索算法仍是一項(xiàng)研究難題。
圖像檢索的典型流程首先,設(shè)法從圖像中提取一個(gè)合適的圖像的表示向量。其次,對(duì)這些表示向量用歐式距離或余弦距離進(jìn)行最近鄰搜索以找到相似的圖像。最后,可以使用一些后處理技術(shù)對(duì)檢索結(jié)果進(jìn)行微調(diào)。可以看出,決定一個(gè)圖像檢索算法性能的關(guān)鍵在于提取的圖像表示的好壞。
(1) 無監(jiān)督圖像檢索
無監(jiān)督圖像檢索旨在不借助其他監(jiān)督信息,只利用ImageNet預(yù)訓(xùn)練模型作為固定的特征提取器來提取圖像表示。
直覺思路由于深度全連接特征提供了對(duì)圖像內(nèi)容高層級(jí)的描述,且是“天然”的向量形式,一個(gè)直覺的思路是直接提取深度全連接特征作為圖像的表示向量。但是,由于全連接特征旨在進(jìn)行圖像分類,缺乏對(duì)圖像細(xì)節(jié)的描述,該思路的檢索準(zhǔn)確率一般。
利用深度卷積特征由于深度卷積特征具有更好的細(xì)節(jié)信息,并且可以處理任意大小的圖像輸入,目前的主流方法是提取深度卷積特征,并通過加權(quán)全局求和匯合(sum-pooling)得到圖像的表示向量。其中,權(quán)重體現(xiàn)了不同位置特征的重要性,可以有空間方向權(quán)重和通道方向權(quán)重兩種形式。
CroW深度卷積特征是一個(gè)分布式的表示。雖然一個(gè)神經(jīng)元的響應(yīng)值對(duì)判斷對(duì)應(yīng)區(qū)域是否包含目標(biāo)用處不大,但如果多個(gè)神經(jīng)元同時(shí)有很大的響應(yīng)值,那么該區(qū)域很有可能包含該目標(biāo)。因此,CroW把特征圖沿通道方向相加,得到一張二維聚合圖,并將其歸一化并根號(hào)規(guī)范化的結(jié)果作為空間權(quán)重。CroW的通道權(quán)重根據(jù)特征圖的稀疏性定義,其類似于自然語言處理中TF-IDF特征中的IDF特征,用于提升不常出現(xiàn)但具有判別能力的特征。
Class weighted features 該方法試圖結(jié)合網(wǎng)絡(luò)的類別預(yù)測信息來使空間權(quán)重更具判別能力。具體來說,其利用CAM來獲取預(yù)訓(xùn)練網(wǎng)絡(luò)中對(duì)應(yīng)各類別的最具代表性區(qū)域的語義信息,進(jìn)而將歸一化的CAM結(jié)果作為空間權(quán)重。
PWAPWA發(fā)現(xiàn),深度卷積特征的不同通道對(duì)應(yīng)于目標(biāo)不同部位的響應(yīng)。因此,PWA選取一系列有判別能力的特征圖,將其歸一化之后的結(jié)果作為空間權(quán)重進(jìn)行匯合,并將其結(jié)果級(jí)聯(lián)起來作為最終圖像表示。
(2) 有監(jiān)督圖像檢索
有監(jiān)督圖像檢索首先將ImageNet預(yù)訓(xùn)練模型在一個(gè)額外的訓(xùn)練數(shù)據(jù)集上進(jìn)行微調(diào),之后再從這個(gè)微調(diào)過的模型中提取圖像表示。為了取得更好的效果,用于微調(diào)的訓(xùn)練數(shù)據(jù)集通常和要用于檢索的數(shù)據(jù)集比較相似。此外,可以用候選區(qū)域網(wǎng)絡(luò)提取圖像中可能包含目標(biāo)的前景區(qū)域。
孿生網(wǎng)絡(luò)(siamese network)和人臉識(shí)別的思路類似,使用二元或三元(++-)輸入,訓(xùn)練模型使相似樣本之間的距離盡可能小,而不相似樣本之間的距離盡可能大。
目標(biāo)跟蹤(object tracking)
目標(biāo)跟蹤旨在跟蹤一段視頻中的目標(biāo)的運(yùn)動(dòng)情況。通常,視頻第一幀中目標(biāo)的位置會(huì)以包圍盒的形式給出,我們需要預(yù)測其他幀中該目標(biāo)的包圍盒。目標(biāo)跟蹤類似于目標(biāo)檢測,但目標(biāo)跟蹤的難點(diǎn)在于事先不知道要跟蹤的目標(biāo)具體是什么,因此無法事先收集足夠的訓(xùn)練數(shù)據(jù)以訓(xùn)練一個(gè)專門的檢測器。
孿生網(wǎng)絡(luò)類似于人臉驗(yàn)證的思路,利用孿生網(wǎng)絡(luò),一支輸入第一幀包圍盒內(nèi)圖像,另一支輸入其他幀的候選圖像區(qū)域,輸出兩張圖的相似度。我們不需要遍歷其他幀的所有可能的候選區(qū)域,利用全卷積網(wǎng)絡(luò),我們只需要前饋整張圖像一次。通過互相關(guān)操作(卷積),得到二維的響應(yīng)圖,其中最大響應(yīng)位置確定了需要預(yù)測的包圍盒位置。基于孿生網(wǎng)絡(luò)的方法速度快,能處理任意大小的圖像。
CFNet 相關(guān)濾波通過訓(xùn)練一個(gè)線性模板來區(qū)分圖像區(qū)域和它周圍區(qū)域,利用傅里葉變換,相關(guān)濾波有十分高效的實(shí)現(xiàn)。CFNet結(jié)合離線訓(xùn)練的孿生網(wǎng)絡(luò)和在線更新的相關(guān)濾波模塊,提升輕量級(jí)網(wǎng)絡(luò)的跟蹤性能。
生成式模型(generative models)
這類模型旨在學(xué)得數(shù)據(jù)(圖像)的分布,或從該分布中采樣得到新的圖像。生成式模型可以用于超分辨率重建、圖像著色、圖像轉(zhuǎn)換、從文字生成圖像、學(xué)習(xí)圖像潛在表示、半監(jiān)督學(xué)習(xí)等。此外,生成式模型可以和強(qiáng)化學(xué)習(xí)結(jié)合,用于仿真和逆強(qiáng)化學(xué)習(xí)。
顯式建模根據(jù)條件概率公式,直接進(jìn)行最大似然估計(jì)對(duì)圖像的分布進(jìn)行學(xué)習(xí)。該方法的弊端是,由于每個(gè)像素依賴于之前的像素,生成圖像時(shí)由于需要從一角開始序列地進(jìn)行,所以會(huì)比較慢。例如,WaveNet可以生成類似人類說話的語音,但由于無法并行生成,得到1秒的語音需要2分鐘的計(jì)算,無法達(dá)到實(shí)時(shí)。
變分自編碼器(variational auto-encoder, VAE)為避免顯式建模的弊端,變分自編碼器對(duì)數(shù)據(jù)分布進(jìn)行隱式建模。其認(rèn)為圖像的生成受一個(gè)隱變量控制,并假設(shè)該隱變量服從對(duì)角高斯分布。變分自編碼器通過一個(gè)解碼網(wǎng)絡(luò)從隱變量生成圖像。由于無法直接進(jìn)行最大似然估計(jì),在訓(xùn)練時(shí),類似于EM算法,變分自編碼器會(huì)構(gòu)造似然函數(shù)的下界函數(shù),并對(duì)這個(gè)下界函數(shù)進(jìn)行優(yōu)化。變分自編碼器的好處是,由于各維獨(dú)立,我們可以通過控制隱變量來控制輸出圖像的變化因素。
生成式對(duì)抗網(wǎng)絡(luò)(generative adversarial networks, GAN)由于學(xué)習(xí)數(shù)據(jù)分布十分困難,生成式對(duì)抗網(wǎng)絡(luò)繞開這一步驟,直接生成新的圖像。生成式對(duì)抗網(wǎng)絡(luò)使用一個(gè)生成網(wǎng)絡(luò)G從隨機(jī)噪聲中生成圖像,以及一個(gè)判別網(wǎng)絡(luò)D判斷其輸入圖像是真實(shí)/偽造圖像。在訓(xùn)練時(shí),判別網(wǎng)絡(luò)D的目標(biāo)是能判斷真實(shí)/偽造圖像,而生成網(wǎng)絡(luò)G的目標(biāo)是使得判別網(wǎng)絡(luò)D傾向于判斷其輸出是真實(shí)圖像。實(shí)際中,直接訓(xùn)練生成式對(duì)抗網(wǎng)絡(luò)會(huì)遇到mode collapse問題,即生成式對(duì)抗網(wǎng)絡(luò)無法學(xué)到完整的數(shù)據(jù)分布。隨后,出現(xiàn)了LS-GAN和W-GAN的改進(jìn)。和變分自編碼器相比,生成式對(duì)抗網(wǎng)絡(luò)的細(xì)節(jié)信息更好。以下鏈接整理了許多和生成式對(duì)抗網(wǎng)絡(luò)有關(guān)的論文:hindupuravinash/the-gan-zoo。以下鏈接整理了許多訓(xùn)練生成式對(duì)抗網(wǎng)絡(luò)的其技巧:soumith/ganhacks。
視頻分類(video classification)
前面介紹的大部分任務(wù)也可以用于視頻數(shù)據(jù),這里僅以視頻分類任務(wù)為例,簡要介紹處理視頻數(shù)據(jù)的基本方法。
多幀圖像特征匯合這類方法將視頻看成一系列幀的圖像組合。網(wǎng)絡(luò)同時(shí)接收屬于一個(gè)視頻片段的若干幀圖像(例如15幀),并分別提取其深度特征,之后融合這些圖像特征得到該視頻片段的特征,最后進(jìn)行分類。實(shí)驗(yàn)發(fā)現(xiàn),使用"slow fusion"效果最好。此外,獨(dú)立使用單幀圖像進(jìn)行分類即可得到很有競爭力的結(jié)果,這說明單幀圖像已經(jīng)包含很多的信息。
三維卷積將經(jīng)典的二維卷積擴(kuò)展到三維卷積,使之在時(shí)間維度也局部連接。例如,可以將VGG的3×3卷積擴(kuò)展為3×3×3卷積,2×2匯合擴(kuò)展為2×2×2匯合。
圖像+時(shí)序兩分支結(jié)構(gòu)這類方法用兩個(gè)獨(dú)立的網(wǎng)絡(luò)分別捕獲視頻中的圖像信息和隨時(shí)間運(yùn)動(dòng)信息。其中,圖像信息從單幀靜止圖像中得到,是經(jīng)典的圖像分類問題。運(yùn)動(dòng)信息則通過光流(optical flow)得到,其捕獲了目標(biāo)在相鄰幀之間的運(yùn)動(dòng)情況。
CNN+RNN捕獲遠(yuǎn)距離依賴之前的方法只能捕獲幾幀圖像之間的依賴關(guān)系,這類方法旨在用CNN提取單幀圖像特征,之后用RNN捕獲幀之間的依賴。
此外,有研究工作試圖將CNN和RNN合二為一,使每個(gè)卷積層都能捕獲遠(yuǎn)距離依賴。
作者簡介
張皓:南京大學(xué)計(jì)算機(jī)系機(jī)器學(xué)習(xí)與數(shù)據(jù)挖掘所(LAMDA)碩士生,研究方向?yàn)橛?jì)算機(jī)視覺和機(jī)器學(xué)習(xí),特別是視覺識(shí)別和深度學(xué)習(xí)。個(gè)人主頁http://lamda.nju.edu.cn/zhangh/。
參考文獻(xiàn)
1. A. Agrawal, et al. VQA: Visual question answering. IJCV, 2017.
2. M. Arjovsky, et al. Wasserstein generative adversarial networks. ICML, 2017.
3. N. Ballas, et al. Delving deeper into convolutional networks for learning video representations. ICLR, 2016.
4. L. Bertinetto, et al. Fully-convolutional siamese networks for object tracking. ECCV Workshop, 2016.
5. W. Chen, et al. Compressing neural networks with the hashing trick. ICML, 2015.
6. Y. Cui, et al. Kernel pooling for convolutional neural networks. CVPR, 2017.
7. M. Danelljan, et al. ECO: Efficient convolution operators for tracking. CVPR, 2017.
8. E. Denton, et al. Exploiting linear structure within convolutional networks for efficient evaluation. NIPS, 2014.
9. C. Doersch. Tutorial on variational autoencoders. arXiv: 1606.05908, 2016.
10. J. Donahue, et al. Long-term recurrent convolutional networks for visual recognition and deion. CVPR, 2015.
11. V. Dumoulin, et al. A learned representation for artistic style. ICLR, 2017.
12. Y. Gao, et al. Compact bilinear pooling. CVPR, 2016.
13. L. A. Gatys, et al. Texture synthesis using convolutional neural networks. NIPS, 2015.
14. L. A. Gatys, et al. Image style transfer using convolutional neural networks. CVPR, 2016.
15. I. Goodfellow, et al. Generative adversarial nets. NIPS, 2014.
16. I. Goodfellow. NIPS 2016 tutorial: Generative adversarial networks, arXiv: 1701.00160, 2016.
17. A. Gordo, et al. End-to-end learning of deep visual representations for image retrieval. IJCV, 2017.
18. S. Han, et al. Learning both weights and connections for efficient neural network. NIPS, 2015.
19. A. G. Howard, et al. MobileNets: Efficient convolutional neural networks for mobile vision applications. arXiv: 1704.04861, 2017.
20. H. Hu, et al. Network trimming: A data-driven neuron pruning approach towards efficient deep architectures. arXiv: 1607.03250, 2016.
21. I. Hubara, et al. Binarized neural networks. NIPS, 2016.
22. A. Jiménez, et al. Class-weighted convolutional features for visual instance search. BMVC, 2017.
23. Y. Jing, et al. Neural style transfer: A review. arXiv: 1705.04058, 2017.
24. J. Johnson, et al. Perceptual losses for real-time style transfer and super-resolution. ECCV, 2016.
25. K. Kafle and C. Kanan. Visual question answering: Datasets, algorithms, and future challenges. CVIU, 2017.
26. Y. Kalantidis, et al. Cross-dimensional weighting for aggregated deep convolutional features. ECCV, 2016.
27. A. Karpathy, et al. Large-scale video classification with convolutional neural networks. CVPR, 2014.
28. A. Karpathy and L. Fei-Fei. Deep visual-semantic alignments for generating image deions. CVPR, 2015.
29. D. P. Kingma and M. Welling. Auto-encoding variational Bayes. ICLR, 2014.
30. S. Kong and C. Fowlkes. Low-rank bilinear pooling for fine-grained classification. CVPR, 2017.
31. A. Krizhevsky, et al. ImageNet classification with deep convolutional neural networks. NIPS, 2012.
32. T.-Y. Lin, et al. Bilinear convolutional neural networks for fine-grained visual recognition. TPAMI, 2017.
33. T.-Y. Lin and S. Maji. Improved Bilinear Pooling with CNNs. BMVC, 2017.
34. J. Liu, et al. Knowing when to look: Adaptive attention via a visual sentinel for image captioning. CVPR, 2017.
35. W. Lie, et al. Large-margin softmax loss for convolutional neural networks. ICML, 2016.
36. W. Liu, et al. SphereFace: Deep hypersphere embedding for face recognition. CVPR, 2017.
37. J. Lu, et al. Hierarchical question-image co-attention for visual question answering. NIPS, 2016.
38. J.-H. Luo, et al. Image categorization with resource constraints: Introduction, challenges and advances. FCS, 2017.
39. J.-H. Luo, et al. ThiNet: A filter level pruning method for deep neural network compression. ICCV, 2017.
40. L. Maaten and G. Hinton. Visualizing data using t-SNE. JMLR, 2008.
41. A. Mahendran and A. Vedaldi. Understanding deep image representations by inverting them. CVPR, 2015.
42. X. Mao, et al. Least squares generative adversarial networks. ICCV, 2017.
43. P. Molchanov, et al. Pruning convolutional neural networks for resource efficient inference. ICLR, 2017.
44. A. Mordvintsev, et al. Inceptionism: Going deeper into neural networks. Google Research Blog, 2015.
45. H. Nam, et al. Dual attention networks for multimodal reasoning and matching. CVPR, 2017.
46. J. Y. H. Ng, et al. Beyond short snippets: Deep networks for video classification. CVPR, 2015.
47. F. Radenovi?, et al. Fine-tuning CNN image retrieval with no human annotation. arXiv: 1711.02512, 2017.
48. A. Radford, et al. Unsupervised representation learning with deep convolutional generative adversarial networks. ICLR, 2016.
49. M. Rastegari, et al. XNOR-Net: ImageNet classification using binary convolutional neural networks. ECCV, 2016.
50. F. Schroff, et al. FaceNet: A unified embedding for face recognition and clustering. CVPR, 2015.
51. K. Simonyan, et al. Deep inside convolutional networks: Visualizing image classification models and saliency maps. ICLR Workshop, 2014.
52. K. Simonyan and A. Zisserman. Two-stream convolutional networks for action recognition in videos. NIPS, 2014.
53. V. Sindhwani, et al. Structured transforms for small-footprint deep learning. NIPS, 2015.
54. J. T. Springenberg, et al. Striving for simplicity: The all convolutional net. ICLR Workshop, 2015.
55. Y. Taigman, et al. DeepFace: Closing the gap to human-level performance in face verification. CVPR, 2014.
56. D. Tran, et al. Learning spatiotemporal features with 3D convolutional networks. ICCV, 2015.
57. A. Nguyen, et al. Synthesizing the preferred inputs for neurons in neural networks via deep generator networks. NIPS, 2016.
58. D. Ulyanov and A. Vedaldi. Instance normalization: The missing ingredient for fast stylization. arXiv: 1607.08022, 2016.
59. J. Valmadre, et al. End-to-end representation learning for correlation filter based tracking. CVPR, 2017.
60. O. Vinyals, et al. Show and tell: A neural image caption generator. CVPR, 2015.
61. C. Wu, et al. A compact DNN: Approaching GoogleNet-level accuracy of classification and domain adaptation. CVPR, 2017.
62. J. Wu, et al. Quantized convolutional neural networks for mobile devices. CVPR, 2016.
63. Z. Wu, et al. Deep learning for video classification and captioning. arXiv: 1609.06782, 2016.
64. J. Xu, et al. Unsupervised part-based weighting aggregation of deep convolutional features for image retrieval. AAAI, 2018.
65. K. Xu, et al. Show, attend, and tell: Neural image caption generation with visual attention. ICML, 2015.
66. J. Yosinski, et al. Understanding neural networks through deep visualization. ICML Workshop, 2015.
67. Z. Yu, et al. Multi-modal factorized bilinear pooling with co-attention learning for visual question answering. ICCV, 2017.
68. M. D. Zeiler and R. Fergus. Visualizing and understanding convolutional networks. ECCV, 2014.
69. L. Zhang, et al. SIFT meets CNN: A decade survey of instance retrieval. TPAMI, 2017.
來源:新智元