计算机视觉领域最全汇总(第1部分)
計算機視覺是人工智能(AI)中的熱門研究課題,它已經(jīng)存在多年。然而,計算機視覺仍然是人工智能面臨的最大挑戰(zhàn)之一。在本文中,我們將探討使用深度神經(jīng)網(wǎng)絡(luò)來解決計算機視覺的一些基本挑戰(zhàn)。特別是,我們將研究神經(jīng)網(wǎng)絡(luò)壓縮,細(xì)粒度圖像分類,紋理合成,圖像搜索和對象跟蹤等應(yīng)用。
1、神經(jīng)網(wǎng)絡(luò)壓縮
盡管深度神經(jīng)網(wǎng)絡(luò)具有令人難以置信的性能,但它們對計算能力和存儲的需求對其在實際應(yīng)用中的部署提出了重大挑戰(zhàn)。研究表明,神經(jīng)網(wǎng)絡(luò)中使用的參數(shù)可能非常多余。因此,在提高精度的同時還需要投入大量的工作來降低了網(wǎng)絡(luò)的復(fù)雜性。
低秩近似用于接近原始權(quán)重矩陣。例如,SVD可用于獲得矩陣的最佳低秩近似,或者Toeplitz矩陣可與Krylov分析結(jié)合使用以近似的原始矩陣。
1.1:修剪
一旦訓(xùn)練完成,一些不相關(guān)的神經(jīng)元連接(可以在損失算法中加權(quán)值平衡和稀疏約束)或者將所有這些連接過濾掉,然后執(zhí)行幾輪微調(diào)。在實際應(yīng)用中,修剪神經(jīng)元連接的級別將使結(jié)果稀疏,難以緩存,并且難以從存儲器訪問。有時,我們需要特別設(shè)計一個合作運營數(shù)據(jù)庫。
相比之下,過濾級修剪可以直接在已經(jīng)存在的操作數(shù)據(jù)庫上運行,過濾級修剪的關(guān)鍵是確定如何平衡過濾器的重要性。例如,我們可以使用卷積結(jié)果的稀疏性、濾波器對損失算法的影響或者卷積對下一層結(jié)果的影響進(jìn)行平衡。
1.2:量化
我們可以將權(quán)重值分成組,然后使用組中的中值來替換原始權(quán)重,并通過霍夫曼編碼運行它。但是,如果我們只考慮權(quán)重本身,則可以減少量化過程的誤差偏差。隨后,分類操作的誤差偏差將顯著增加。因此,量化CNN的優(yōu)化目標(biāo)是重構(gòu)以最小化誤差偏差。此外,我們可以使用哈希編碼并投影相同的哈希權(quán)重(hash bucket weights)來共享相同的值。
1.3:減少數(shù)據(jù)值的范圍
在默認(rèn)情況下,數(shù)據(jù)由單精度浮點組成,占32位。研究人員發(fā)現(xiàn),使用半精度浮點(16位)對性能的影響幾乎為零。谷歌的TPU使用8位整數(shù)來表示數(shù)據(jù),這種情況是值的范圍是兩個或三個值(0/1或-1/0/1)。僅使用位進(jìn)行操作可以使我們快速完成各種計算,但是訓(xùn)練兩個或三個價值網(wǎng)絡(luò)是一個至關(guān)重要的問題。
傳統(tǒng)方法是使用兩個或三個值作為前饋過程并在更新過程中傳遞實數(shù)。此外,研究人員認(rèn)為兩個值的表達(dá)能力是有限的,因此可以使用額外的浮點縮放二進(jìn)制卷積結(jié)果來改善網(wǎng)絡(luò)表示。
1.4:簡化的結(jié)構(gòu)設(shè)計
研究人員一直致力于創(chuàng)建簡化的網(wǎng)絡(luò)結(jié)構(gòu),例如:
1.?1x1卷積:這種設(shè)計理念已經(jīng)在Inception和ResNet系列網(wǎng)絡(luò)設(shè)計中得到了廣泛應(yīng)用;
2.?分組卷積;
3.?擴展卷積:只要值不變,使用擴展卷積就可以擴展感知域。
知識蒸餾(Knowledge distillation)訓(xùn)練小網(wǎng)絡(luò)接近廣泛的網(wǎng)絡(luò)。但是,目前還不清楚如何正確地接近龐大的網(wǎng)絡(luò)。
1.5:硬件-軟件協(xié)議設(shè)計
常用硬件:
1.?常見硬件,如CPU(低延遲,復(fù)雜操作)和GPU(高吞吐量,適合并發(fā),簡單過程);
2.?專用硬件,包括ASIC(專用集成電路,例如Google的TPU)和FPGA(現(xiàn)場可編程門陣列,靈活但效率較低)。
2、細(xì)粒度圖像分類
與(普通)圖像分類相比,細(xì)粒度圖像分類在確定圖像類別時需要更高的精度。例如,我們可能需要確定目標(biāo)鳥的確切種類、汽車的品牌和型號、飛機的型號。通常,這些類之間的差異很小。例如,波音737-300和波音737-400之間唯一明顯不同的區(qū)別就是窗戶的數(shù)量。因此,細(xì)粒度圖像分類比標(biāo)準(zhǔn)圖像分類更具挑戰(zhàn)性。
細(xì)粒度圖像分類的經(jīng)典方法是首先在圖像上定義不同的位置,例如,鳥的頭部、腳部或翅膀。然后我們必須從這些位置提取特征,最后,組合這些特征并使用它們來完成分類。這種方法具有非常高的準(zhǔn)確性,但它需要大量的數(shù)據(jù)集和手動標(biāo)記位置信息。細(xì)粒度分類的一個主要趨勢是沒有額外監(jiān)督信息的訓(xùn)練,而不是僅使用圖像筆記,該方法由雙線性CNN方法表示。
2.1:雙線性(Bilinear)CNN
首先計算卷積描述符的外積,以找出不同維度之間的相互關(guān)系。因為不同描述符的維度對應(yīng)于卷積特征的不同通道,并且不同的通道提取不同的語義特征,所以使用雙線性操作允許我們捕獲輸入圖像上的不同語義元素之間的關(guān)系。
2.2:流線型雙線性匯合(Streamlined Bilinear Confluence)
雙線性匯合的結(jié)果是非常高維的,這需要大量的計算和存儲資源,也明顯增加了下一個完全連接層上的參數(shù)數(shù)量。后續(xù)研究旨在制定簡化雙線性匯合的戰(zhàn)略,其結(jié)果包括以下內(nèi)容:
1.?PCA維數(shù)減少:在雙線性匯合出現(xiàn)之前,我們會在深度描述符上使用PCA投影維數(shù)減少,但這會影響影響性能的每個維度。一個折中的方案是僅將PCA降維應(yīng)用于一條線。
2.?近似核估計:證明在雙線性收斂之后使用線性SVM分類與在描述符上使用多項式核一樣有價值。因為兩個描述符的向外投影等于兩個獨立描述符的卷積投影,所以一些研究集中于使用隨機矩陣來近似描述符投影。此外,通過近似核估計,我們可以捕獲超過二階信息(見下圖)。
3.?低秩近似:使用來自全連接層的參數(shù)矩陣進(jìn)行低秩近似使得不必明確地計算雙線性匯合的結(jié)果。
3、圖像描述
圖像描述是生成圖像的一個或兩個句子描述的過程。這是一項涉及計算機視覺和自然語言處理的跨學(xué)科任務(wù)。
3.1:編碼器-解碼器網(wǎng)絡(luò)
設(shè)計圖像字幕網(wǎng)絡(luò)背后的基本思想基于自然語言處理領(lǐng)域中機器翻譯的概念。在具有圖像CNN編碼網(wǎng)絡(luò)的機器翻譯器中替換源語言編碼網(wǎng)絡(luò)并提取圖像的特征之后,我們可以使用解碼器網(wǎng)絡(luò)作為目標(biāo)語言來創(chuàng)建文本描述。
3.2:Show Attend and Tell
注意力機制是機器翻譯器用來捕獲遠(yuǎn)程依賴關(guān)系的標(biāo)準(zhǔn)技術(shù),也可以用于圖像字幕。在解碼器網(wǎng)絡(luò)中,除了預(yù)測下一個單詞之外,在每個時刻,我們還需要輸出二維注意力圖像并將其用于深度卷積特征的加權(quán)收斂。使用注意力機制的另一個好處是網(wǎng)絡(luò)可以被可視化,這樣我們就可以輕松地看到網(wǎng)絡(luò)在生成每個單詞時所看到的圖像部分。
3.3:Adaptive Attention(自適應(yīng)注意力機制)
先前的注意力機制將為每個預(yù)測的單詞產(chǎn)生二維注意圖像(圖像(a))。但是,對于一些停止詞,我們不需要使用圖像中的線索。相反,某些單詞可以根據(jù)上下文生成,完全獨立于圖像本身。這項工作在LSTM上進(jìn)行了擴展,并產(chǎn)生了“視覺哨兵”機制,該機制確定是否應(yīng)根據(jù)上下文或圖像信息(圖像(b))預(yù)測當(dāng)前單詞。
此外,與先前在根據(jù)隱藏層的狀態(tài)計算注意圖像的先前方法不同,該方法根據(jù)隱藏層的當(dāng)前狀態(tài)執(zhí)行計算。
4、視覺問答
給定圖像和與該圖像相關(guān)的問題,視覺問答旨在從選擇的候選答案中回答該問題。從本質(zhì)上講,這是一個分類任務(wù),有時它使用遞歸神經(jīng)網(wǎng)絡(luò)解碼來產(chǎn)生文本答案。視覺問答也是一項涉及視覺和自然語言處理的跨學(xué)科任務(wù)。
4.1:基本思想過程
問題概念是使用CNN從圖像中提取特征,RNN從文本問題中提取文本特征,然后組合視覺和文本特征,最后使用完全連接后進(jìn)行分類。這項任務(wù)的關(guān)鍵是弄清楚如何連接這兩種類型的功能。直接組合這些特征的方法將它們轉(zhuǎn)換為矢量,或者通過添加或乘以元素來添加或生成視覺和文本矢量。
注意使用注意力機制的圖像字幕系統(tǒng)可提高視覺問答的性能。注意力機制包括視覺注意(“我在哪里看”)和文本注意力(“我在看哪個詞?”)HieCoAtten可以同時或依次創(chuàng)建視覺和文本注意力。DAN在同一空間內(nèi)投射視覺和文本注意力的結(jié)果;?然后它同時產(chǎn)生視覺和文本注意力的下一步。
4.2:雙線性整合
該方法使用視覺特征向量和文本特征向量的外積來捕獲每個維度上這些狀態(tài)的特征之間的關(guān)系。為了避免明確地計算雙線性匯合的高維度結(jié)果,我們可以將在細(xì)粒度識別中發(fā)現(xiàn)的流線型雙線性匯合背后的思想應(yīng)用于視覺問題回答。例如,MFB使用低速率近似背后的概念以及視覺和文本注意機制。
5、神經(jīng)網(wǎng)絡(luò)可視化與神經(jīng)網(wǎng)絡(luò)理解
下文提供了許多可視化方法,以幫助理解卷積和神經(jīng)網(wǎng)絡(luò)。
5.1:直接可視化第一個過濾器
由于第一個卷積層上的濾鏡在輸入圖像上滑動,我們可以直接在第一層上顯示濾鏡。我們可以看到第一層權(quán)重集中在特定方向的邊緣和指定的顏色組合,這類似于視覺生物學(xué)機制。但是,由于高級過濾器不直接用于輸入圖像,因此直接可視化只能應(yīng)用于第一層上的過濾器。
5.2:T-SNE
此方法在圖像的fc7和pool5特征上使用低維嵌入。例如,將它們縮小到2維并允許它們在2維平面上繪制,具有類似語義信息的圖像應(yīng)該產(chǎn)生與t-SNE類似的結(jié)果。該方法與PCA之間的區(qū)別在于t-SNE是一種非線性減少方法,可以保留地點之間的距離。我們得到以下圖像,該圖像是將t-SNE應(yīng)用于原始MNIST圖像的結(jié)果。我們可以看到MNIST是一個相對簡單的數(shù)據(jù)集,其中不同分類的圖像之間的差異是顯而易見的。
5.3:可視化中間層激活值
我們可以看到,即使ImageNet沒有人臉類別,網(wǎng)絡(luò)仍將學(xué)會區(qū)分這種語義信息并捕獲未來的分類。
5.4:最大化響應(yīng)圖像區(qū)域
為了阻止這種情況,在中間層選擇一個指定的神經(jīng)元,然后將多個不同的圖像輸入網(wǎng)絡(luò),以找到導(dǎo)致神經(jīng)元最大響應(yīng)的圖像區(qū)域。這允許我們觀察神經(jīng)元對應(yīng)的語義特征,我們使用“圖像區(qū)域”而不是“完整圖像”的原因是中間層神經(jīng)元的感受野受限并且不能覆蓋整個圖像。
5.5:梯度上升優(yōu)化
該方法選擇特定的神經(jīng)元,然后計算該神經(jīng)元對輸入圖像的反應(yīng)產(chǎn)生的偏導(dǎo)數(shù),然后使用梯度上升優(yōu)化圖像直到收斂。此外,我們需要一些標(biāo)準(zhǔn)化的項目來使生成的圖像更接近自然模型。除了優(yōu)化輸入圖像,我們還可以優(yōu)化fc6功能并創(chuàng)建所需的圖像。
6、對抗性的例子
選擇圖像和不正確的分類。然后,系統(tǒng)計算該分類對圖像的偏導(dǎo)數(shù),然后對圖像應(yīng)用梯度上升優(yōu)化。實驗表明,在使用小的,幾乎察覺不到的變化之后,我們可以使網(wǎng)絡(luò)以高可信度對模型實現(xiàn)不正確的類。
在實際應(yīng)用中,對抗性示例在金融和安全領(lǐng)域非常有用。研究人員發(fā)現(xiàn),這是因為圖像空間的維度非常高。即使有大量的訓(xùn)練數(shù)據(jù),我們也只能覆蓋該空間的一小部分。如果輸入圖像從該不同空間稍微變化,那么網(wǎng)絡(luò)將難以做出合理的決定。
總結(jié)
以上是生活随笔為你收集整理的计算机视觉领域最全汇总(第1部分)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 霍夫变换(hough transform
- 下一篇: 计算机视觉领域最全汇总(第2部分)