存在 區域 分類 論文 定位 獨立 也會 rgb 線索

技術分享圖片

論文原址:https://arxiv.org/pdf/1409.4842.pdf

代碼連接:https://github.com/titu1994/Inception-v4(包含v1,v2,v4)

摘要

本文提出了一個深層的卷積網絡結構-Inception,該結構的主要特點是提高了網絡內部計算資源的利用率。在預估計算資源消耗量不變的情況下增加網絡的深度及寬度。為了進行有效的優化,結構決策基於Hebbian原理及多尺寸處理操作。本文思想的一個經典實現是GoogLeNet,網絡的深度為22層,該網絡在分類及檢測任務上進行評估。

介紹

相比於ILSVRC2014的冠軍網絡,GoogLeNet的參數量要少12倍多,準確率卻得到大幅度的改善。目標檢測任務上的改進主要來自於網絡結構及經典計算機視覺的協同作用。

本文的另一個特點是針對移動端及嵌入端上的計算,本文在計算資源及內存方面的利用率提高方面證明了該網絡的有效性。大部分實驗證明,Inception在推理時保持1.5 billion次的加乘法操作,因此可以應用至實際生活中。

本文提出的Inception網絡為深度更深的卷積網絡。這裏的“更深”包含兩個方面意義,一定意義上引入了Inception形式的層次組織,同時也直接增加了網絡的深度。該網絡結構在ILSVRC的分類和檢測任務上超過了當時最好的模型。

相關工作

自LeNet-5開始,卷積網絡有固定的結構:一系列卷積層一般夾雜著固定的標準化處理及池化層,及一個或者多個全連接層。對於更大的數據集,開始流行改變網絡的深度來提高分類準確率,同時利用Dropout來防止過擬合。

盡管最大池化層會造成空間信息上準確率的損失,但相似的網絡結構成功的應用於定位,分類及人體姿態估計任務上,受原始神經科學模型的啟發,使用一系列固定的具有不同尺寸的Gabor核來處理多尺度問題,這與Inception模型相類似,與固定的兩層深的模型不同,Inception模型中的所有卷積核都是可以學習的。在GoogLeNet中,Inception層可以重復多次,最終得到一個22層深的卷積網絡模型。

Network in Network用於增強網絡的表示能力,此方法可以看作是在經典的整流激活函數後增加額外的1x1的卷積核,同時,此模型可以很容易的融合到當前的卷積網絡中。本文主要使用此網絡結構,然而,本文中1x1的卷積核有兩個用途,更主要的是用於降維,移除計算量較大的模塊,從而可以增加網絡的深度及寬度。

當時,目標檢測算法最好的是R-CNN,R-CNN將所有檢測問題分為兩個子問題:首先利用像顏色,超像素的一致性等低層次的特征生成類別不可知的proposals,然後,利用卷積及分類器對對應位置進行類別分類。兩階段的方法利用具有低層次線索的邊界框分割的準確率及最好卷積網絡的分類特性。本文在檢測階段采用相似的流程,比如使用多尺寸的框預測出更高召回率的邊界框及對目標框進行更有效分類的集成方法等。

動機

增強深度神經網絡最直接的方式是直接增加網絡的尺寸,包括增加網絡的深度及寬度。這種方式簡單粗暴,然而存在兩個重要的缺點。

更大的尺寸通常意味著擁有更多的參數量,容易造成網絡過擬合,特別是當有標記的數據及其有限的條件下,這會成為主要瓶頸因素,由於創建像ImageNet中的細粒度分類的數據集(如下圖)是十分費力費時的。

技術分享圖片 另一個問題是如果一味的增加網絡的尺寸則會大大增加計算資源的消耗。比如,相連的兩個卷積層,增加其卷積核的數量,則會造成平方級別的計算量級。如果增加的容量無法有效的利用,則會造成計算量大量的浪費。由於通常計算資源是有限的,因此合理的分配計算資源要比任意增加尺寸對提高結果的質量更有幫助。

解決上述問題的基本方法是將全部的全連接層,甚至卷積層中的,變為稀疏連接結構。有結論表明,如果存在一個更大的及更稀疏的網絡能夠表示數據集的概率分布,則可以通過分析最後一層激活值的相關性統計分布,及聚合較高相關性的輸出來一層一層的構建最優的網絡。雖然其有較強的假設條件,但實際上即使在較弱的假設條件下,該理論仍然有效。

當前對於非均勻的數據集進行數值計算的計算效率是非常低效的。雖然將計算量降低了100倍,但查找的開銷及緩存丟失的原因,使得即使將數據變換為稀疏結構,結果也是於事無補。隨著算法的不斷改進、高度調優的數字庫,及利用底層CPU或GPU硬件的細微細節,可以實現極其快速的密集矩陣乘法,會進一步擴大這種差距。而非均勻的稀疏的模型需要更加復雜的流程及計算基礎。目前大多數基於機器學習的視覺系統利用卷積結構來獲得空間的稀疏性。然而,卷積可以看作是前面幾層網絡中patch密集連接的集合。傳統的卷積網絡在特征維度上使用隨機的,稀疏的連接表,從而打破了對稱性,並提高了學習的效率,同時為了更好的並行計算,選擇使用全連接層。均勻化的結構,更多的卷積核及更大的batch可以實現高效的密集運算。

本文聯想到一個問題,是否在基於當前的硬件資源及密集矩陣計算的條件下利用額外的稀疏性,有研究表明,將稀疏矩陣轉變為密集的子矩陣會得到比稀疏矩陣更好的效果。

基於前面的理論構建了Inception網絡拓撲結構。經過微調及調參優化,Inception在上下文定位及目標檢測上十分有效。

網絡結構

Inception結構的主要目標是如何將卷積網絡中的局部最優稀疏結構近似的轉變為密集結構。本文的變換不變性意味著從卷積結構中進行構建,找到局部最優的結構,並將此結構進行重復。本文認為卷積網絡前幾層的單元為輸入圖像的對應響應,並將這些卷積核聚到一個卷積bank中。底層網絡的單元作用於圖像的局部區域。因此,可以在單獨的一個區域中使用多個卷積核bank,然後在其後一層使用1x1的卷積來進行聚合。同時,期望更少數量但具有更多稀疏的集群,在更大的patch中被卷積覆蓋,因此,更大區域上的patch數量也會減少。為了避免patch對齊問題。目前,Inception模型將結構限制在1x1,3x3,5x5幾種結構尺寸。這意味著網絡是將所有層的卷積banks的輸出做了串聯處理後作為下個階段的輸入,同時,在正常的卷積上增加一個平行的池化操作會有利於結果的生成。結構如下圖。

技術分享圖片 由於Inception 模型堆疊在頂部,因此,其輸出的相關性統計是有所不同的:較高層次的抽象特征由較高層次的網絡提取。而其空間註意力的減少表明在更高層的網絡中應該增加3x3,5x5卷積核的比例。

上述模型存在一個弊端,大量5x5的卷積核需要占用大量的計算資源,如果後接池化層,影響會更嚴重,輸出filter的通道數與上一階段的通道數相同。將卷積層的輸出與池化層的輸出相融合會不可避免的增加輸出量,使計算效率低下。

為解決上述問題,在計算量較大的地方應用降維處理。低緯度的嵌入表示也可以表示相對較大的patch信息,然而,嵌入式以一種壓縮密集的形式對信息進行表示,壓縮的信息很難建模。本文希望在大多數區域進行稀疏表示,當需要將信號聚合時才進行壓縮處理。因此,在3x3,5x5的卷積後加1x1的卷積來進行壓縮。

本文結構的一個優點是在不過分增加計算量的基礎上可以增加每個層的單元。在與一個較大patch進行卷積之前進行降維操作。另一個優點是該結構結合了不同的尺寸信息,因此,網絡可以獲取不同尺寸大小的抽象信息。

隨著計算條件的改善,網絡逐漸趨於更深,更寬的情形。本文發現使用Inception結構的網絡要比沒有的快兩到三倍。

GoogLeNet

本文使用了較深的和較寬的Inception模型,發現將其嵌入到整個網絡中效果得到大幅度的改進。其中,GoogLeNet的Inception部分結構如下:

技術分享圖片 網絡中的所有卷積都接著一個整流線性激活層。感受野的大小為224x224,輸入為減均值處理後的RGB圖像。在最大池化層後增加一個1x1的卷積,以進行降維操作。

此網絡結構偏於高效計算設計的,因此,可以在計算資源有限的獨立設備上運行。網絡的深度為22層。在分類器前增加了平均池化層,同時增加了一些額外的非線性層。可以使網絡很容易的對其他的數據集的進行微調或者訓練。然而,將全連接層替換為平均池化層可以提高top-1的準確率為0.6%。

較深的網絡,其梯度信息反向傳播到所有層是至關重要的。一種有趣的觀點是網絡中間層產生的特征區分度較高。在中間層增加一些輔助分類器,增加分類器低層次的區分度,增加梯度信號並能夠進行反向傳遞,同時,增加一些正則化處理。GoogleNet的結構如下圖所示(詳細請看論文原文)。



技術分享圖片實驗結果

技術分享圖片

技術分享圖片

Reference

[1] Know your meme: We need to go deeper. http://knowyourmeme.com/memes/ we-need-to-go-deeper. Accessed: 2014-09-15.
[2] Sanjeev Arora, Aditya Bhaskara, Rong Ge, and Tengyu Ma. Provable bounds for learning some deep representations. CoRR, abs/1310.6343, 2013.
[3]¨Umit V. C?atalyürek, Cevdet Aykanat, and Bora Uc ?ar. On two-dimensional sparse matrix partitioning: Models, methods, and a recipe. SIAM J. Sci. Comput., 32(2):656–683, February 2010.

論文閱讀筆記四十二:Going deeper with convolutions (Inception V1 CVPR2014 )