天天看點

計算機視覺領域最全彙總(第1部分)

計算機視覺領域最全彙總(第2部分)

計算機視覺是人工智能(AI)中的熱門研究課題,它已經存在多年。然而,計算機視覺仍然是人工智能面臨的最大挑戰之一。在本文中,我們将探讨使用深度神經網絡來解決計算機視覺的一些基本挑戰。特别是,我們将研究神經網絡壓縮,細粒度圖像分類,紋理合成,圖像搜尋和對象跟蹤等應用。

1、神經網絡壓縮

盡管深度神經網絡具有令人難以置信的性能,但它們對計算能力和存儲的需求對其在實際應用中的部署提出了重大挑戰。研究表明,神經網絡中使用的參數可能非常多餘。是以,在提高精度的同時還需要投入大量的工作來降低了網絡的複雜性。

低秩近似用于接近原始權重矩陣。例如,SVD可用于獲得矩陣的最佳低秩近似,或者Toeplitz矩陣可與Krylov分析結合使用以近似的原始矩陣。

1.1:修剪

一旦訓練完成,一些不相關的神經元連接配接(可以在損失算法中權重值平衡和稀疏限制)或者将所有這些連接配接過濾掉,然後執行幾輪微調。在實際應用中,修剪神經元連接配接的級别将使結果稀疏,難以緩存,并且難以從存儲器通路。有時,我們需要特别設計一個合作營運資料庫。

相比之下,過濾級修剪可以直接在已經存在的操作資料庫上運作,過濾級修剪的關鍵是确定如何平衡過濾器的重要性。例如,我們可以使用卷積結果的稀疏性、濾波器對損失算法的影響或者卷積對下一層結果的影響進行平衡。

1.2:量化

我們可以将權重值分成組,然後使用組中的中值來替換原始權重,并通過霍夫曼編碼運作它。但是,如果我們隻考慮權重本身,則可以減少量化過程的誤差偏差。随後,分類操作的誤差偏差将顯着增加。是以,量化CNN的優化目标是重構以最小化誤差偏差。此外,我們可以使用哈希編碼并投影相同的哈希權重(hash

bucket weights)來共享相同的值。

1.3:減少資料值的範圍

在預設情況下,資料由單精度浮點組成,占32位。研究人員發現,使用半精度浮點(16位)對性能的影響幾乎為零。谷歌的TPU使用8位整數來表示資料,這種情況是值的範圍是兩個或三個值(0/1或-1/0/1)。僅使用位進行操作可以使我們快速完成各種計算,但是訓練兩個或三個價值網絡是一個至關重要的問題。

傳統方法是使用兩個或三個值作為前饋過程并在更新過程中傳遞實數。此外,研究人員認為兩個值的表達能力是有限的,是以可以使用額外的浮點縮放二進制卷積結果來改善網絡表示。

1.4:簡化的結構設計

研究人員一直緻力于建立簡化的網絡結構,例如:

1. 1x1卷積:這種設計理念已經在Inception和ResNet系列網絡設計中得到了廣泛應用;

2. 分組卷積;

3. 擴充卷積:隻要值不變,使用擴充卷積就可以擴充感覺域。

知識蒸餾(Knowledge distillation)訓練小網絡接近廣泛的網絡。但是,目前還不清楚如何正确地接近龐大的網絡。

1.5:硬體-軟體協定設計

常用硬體:

1. 常見硬體,如CPU(低延遲,複雜操作)和GPU(高吞吐量,适合并發,簡單過程);

2. 專用硬體,包括ASIC(專用內建電路,例如Google的TPU)和FPGA(現場可程式設計門陣列,靈活但效率較低)。

2、細粒度圖像分類

與(普通)圖像分類相比,細粒度圖像分類在确定圖像類别時需要更高的精度。例如,我們可能需要确定目标鳥的确切種類、汽車的品牌和型号、飛機的型号。通常,這些類之間的差異很小。例如,波音737-300和波音737-400之間唯一明顯不同的差別就是窗戶的數量。是以,細粒度圖像分類比标準圖像分類更具挑戰性。

細粒度圖像分類的經典方法是首先在圖像上定義不同的位置,例如,鳥的頭部、腳部或翅膀。然後我們必須從這些位置提取特征,最後,組合這些特征并使用它們來完成分類。這種方法具有非常高的準确性,但它需要大量的資料集和手動标記位置資訊。細粒度分類的一個主要趨勢是沒有額外監督資訊的訓練,而不是僅使用圖像筆記,該方法由雙線性CNN方法表示。

2.1:雙線性(Bilinear)CNN

首先計算卷積描述符的外積,以找出不同次元之間的互相關系。因為不同描述符的次元對應于卷積特征的不同通道,并且不同的通道提取不同的語義特征,是以使用雙線性操作允許我們捕獲輸入圖像上的不同語義元素之間的關系。

計算機視覺領域最全彙總(第1部分)

2.2:流線型雙線性彙合(Streamlined Bilinear Confluence)

雙線性彙合的結果是非常高維的,這需要大量的計算和存儲資源,也明顯增加了下一個完全連接配接層上的參數數量。後續研究旨在制定簡化雙線性彙合的戰略,其結果包括以下内容:

1. PCA維數減少:在雙線性彙合出現之前,我們會在深度描述符上使用PCA投影維數減少,但這會影響影響性能的每個次元。一個折中的方案是僅将PCA降維應用于一條線。

2. 近似核估計:證明在雙線性收斂之後使用線性SVM分類與在描述符上使用多項式核一樣有價值。因為兩個描述符的向外投影等于兩個獨立描述符的卷積投影,是以一些研究集中于使用随機矩陣來近似描述符投影。此外,通過近似核估計,我們可以捕獲超過二階資訊(見下圖)。

3. 低秩近似:使用來自全連接配接層的參數矩陣進行低秩近似使得不必明确地計算雙線性彙合的結果。

計算機視覺領域最全彙總(第1部分)

3、圖像描述

圖像描述是生成圖像的一個或兩個句子描述的過程。這是一項涉及計算機視覺和自然語言處理的跨學科任務。

3.1:編碼器-解碼器網絡

設計圖像字幕網絡背後的基本思想基于自然語言處理領域中機器翻譯的概念。在具有圖像CNN編碼網絡的機器翻譯器中替換源語言編碼網絡并提取圖像的特征之後,我們可以使用解碼器網絡作為目智語言來建立文本描述。

計算機視覺領域最全彙總(第1部分)

3.2:Show

Attend and Tell

注意力機制是機器翻譯器用來捕獲遠端依賴關系的标準技術,也可以用于圖像字幕。在解碼器網絡中,除了預測下一個單詞之外,在每個時刻,我們還需要輸出二維注意力圖像并将其用于深度卷積特征的權重收斂。使用注意力機制的另一個好處是網絡可以被可視化,這樣我們就可以輕松地看到網絡在生成每個單詞時所看到的圖像部分。

計算機視覺領域最全彙總(第1部分)

3.3:Adaptive

Attention(自适應注意力機制)

先前的注意力機制将為每個預測的單詞産生二維注意圖像(圖像(a))。但是,對于一些停止詞,我們不需要使用圖像中的線索。相反,某些單詞可以根據上下文生成,完全獨立于圖像本身。這項工作在LSTM上進行了擴充,并産生了“視覺哨兵”機制,該機制确定是否應根據上下文或圖像資訊(圖像(b))預測目前單詞。

此外,與先前在根據隐藏層的狀态計算注意圖像的先前方法不同,該方法根據隐藏層的目前狀态執行計算。

計算機視覺領域最全彙總(第1部分)

4、視覺問答

給定圖像和與該圖像相關的問題,視覺問答旨在從選擇的候選答案中回答該問題。從本質上講,這是一個分類任務,有時它使用遞歸神經網絡解碼來産生文本答案。視覺問答也是一項涉及視覺和自然語言處理的跨學科任務。

4.1:基本思想過程

問題概念是使用CNN從圖像中提取特征,RNN從文本問題中提取文本特征,然後組合視覺和文本特征,最後使用完全連接配接後進行分類。這項任務的關鍵是弄清楚如何連接配接這兩種類型的功能。直接組合這些特征的方法将它們轉換為矢量,或者通過添加或乘以元素來添加或生成視覺和文本矢量。

計算機視覺領域最全彙總(第1部分)

注意使用注意力機制的圖像字幕系統可提高視覺問答的性能。注意力機制包括視覺注意(“我在哪裡看”)和文本注意力(“我在看哪個詞?”)HieCoAtten可以同時或依次建立視覺和文本注意力。DAN在同一空間内投射視覺和文本注意力的結果; 然後它同時産生視覺和文本注意力的下一步。

計算機視覺領域最全彙總(第1部分)

4.2:雙線性整合

該方法使用視覺特征向量和文本特征向量的外積來捕獲每個次元上這些狀态的特征之間的關系。為了避免明确地計算雙線性彙合的高次元結果,我們可以将在細粒度識别中發現的流線型雙線性彙合背後的思想應用于視覺問題回答。例如,MFB使用低速率近似背後的概念以及視覺和文本注意機制。

計算機視覺領域最全彙總(第1部分)

5、神經網絡可視化與神經網絡了解

下文提供了許多可視化方法,以幫助了解卷積和神經網絡。

5.1:直接可視化第一個過濾器

由于第一個卷積層上的濾鏡在輸入圖像上滑動,我們可以直接在第一層上顯示濾鏡。我們可以看到第一層權重集中在特定方向的邊緣和指定的顔色組合,這類似于視覺生物學機制。但是,由于進階過濾器不直接用于輸入圖像,是以直接可視化隻能應用于第一層上的過濾器。

5.2:T-SNE

此方法在圖像的fc7和pool5特征上使用低維嵌入。例如,将它們縮小到2維并允許它們在2維平面上繪制,具有類似語義資訊的圖像應該産生與t-SNE類似的結果。該方法與PCA之間的差別在于t-SNE是一種非線性減少方法,可以保留地點之間的距離。我們得到以下圖像,該圖像是将t-SNE應用于原始MNIST圖像的結果。我們可以看到MNIST是一個相對簡單的資料集,其中不同分類的圖像之間的差異是顯而易見的。

計算機視覺領域最全彙總(第1部分)

5.3:可視化中間層激活值

我們可以看到,即使ImageNet沒有人臉類别,網絡仍将學會區分這種語義資訊并捕獲未來的分類。

5.4:最大化響應圖像區域

為了阻止這種情況,在中間層選擇一個指定的神經元,然後将多個不同的圖像輸入網絡,以找到導緻神經元最大響應的圖像區域。這允許我們觀察神經元對應的語義特征,我們使用“圖像區域”而不是“完整圖像”的原因是中間層神經元的感受野受限并且不能覆寫整個圖像。

5.5:梯度上升優化

該方法選擇特定的神經元,然後計算該神經元對輸入圖像的反應産生的偏導數,然後使用梯度上升優化圖像直到收斂。此外,我們需要一些标準化的項目來使生成的圖像更接近自然模型。除了優化輸入圖像,我們還可以優化fc6功能并建立所需的圖像。

計算機視覺領域最全彙總(第1部分)
計算機視覺領域最全彙總(第1部分)

6、對抗性的例子

選擇圖像和不正确的分類。然後,系統計算該分類對圖像的偏導數,然後對圖像應用梯度上升優化。實驗表明,在使用小的,幾乎察覺不到的變化之後,我們可以使網絡以高可信度對模型實作不正确的類。

在實際應用中,對抗性示例在金融和安全領域非常有用。研究人員發現,這是因為圖像空間的次元非常高。即使有大量的訓練資料,我們也隻能覆寫該空間的一小部分。如果輸入圖像從該不同空間稍微變化,那麼網絡将難以做出合理的決定。

數十款阿裡雲産品限時折扣中,趕緊點選領劵開始雲上實踐吧!

以上為譯文。

本文由

阿裡雲雲栖社群

組織翻譯。

文章原标題《deep-dive-into-computer-vision-with-neural-network-1》,

作者: 

Leona Zhang

譯者:虎說八道,審校:。

文章為簡譯,更為詳細的内容,請檢視

原文

繼續閱讀