1. 程式人生 > >【Imagenet LSVRC系列模型】GoogLeNet-2014 Going Deeper with Convolutions

【Imagenet LSVRC系列模型】GoogLeNet-2014 Going Deeper with Convolutions

Szegedy C, Liu W, Jia Y, et al. Going deeper with convolutions[C]. Cvpr, 2015.

ImageNet 影象分類 2014 冠軍模型

文中主要是提出一種稱為Inception的深度卷積神經網路結構。Inception的優勢在於增加網路的深度和寬度的同時,將計算量控制在一定範圍內。另外,Inception的設計理念中還包含了Hebbian原則以及多尺度處理。

1、Introduction

自2012年Alexnet被提出以來,深度學習以及卷積網路的快速發展使物體分類以及檢測水平迅速提高。值得令人鼓舞的是,取得的這些進步不單單是更多資料或更大的模型或更多硬體力量的結果,也是眾多新想法、新演算法、不斷改善的網路結構的結果。例如,本文的提出的GoogLeNet在不增加更多訓練資料量的前提下,在ImageNet分任務中比Alexnet更準確,且引數量少於後者的十二分之一。也就是說我們在考慮模型更復雜更深的同時,也需要考慮到計算資源,比如移動端或其他嵌入式應用。

本文聚焦於一個有效的深度神經網路結構—Inception。“深”體現在兩方面:第一則是直觀上的增加網路層數;第二是Inception模組以及Inception帶來的模型深度增加。

2、motivation

提升深度神經網路效果的最直接的方法就是增加模型深度(模型層數的增加)和模型寬度(每層feature map數的增加)。但同時會帶來三個問題:

(1)模型size越大,則引數越多。在訓練資料量一定的情況下,更容易過擬合。

(2)模型size越大,計算量越多。而且,在網路中,大多數權重傾向於零,對於這些“近零”的計算,實際上是一種計算浪費。

(3)模型越深,梯度反向傳播困難,帶來梯度消失問題。

要想解決這個問題,則可以:引入稀疏性以及用稀疏層代替全連線層甚至中間的卷積層。理由:

(1)人類神經系統也具有稀疏性。

(2)有堅實的理論分析。如果用一個大型的稀疏深度神經網路來表達資料集的分佈,則可以分析前層啟用值的相關統計特性然後聚類為後層高度相關的神經元輸出,一層一層地構建最優網路拓撲結構。具體參考:S. Arora, A. Bhaskara, R. Ge, and T. Ma. Provable bounds for learning some deep representations. CoRR,abs/1310.6343, 2013.

(3)Hebbian準則:neurons that fire together,wire together。(關於神經元之間相關性的一個假說)

但是,引入稀疏性又帶來了問題:現今的基礎計算資源建設對於稀疏資料計算並不友好。也就是說,不論是CPU或GPU,它們擅長於稠密計算,對於它們來說,稀疏計算也是和稠密計算一樣的處理方式,並不能凸顯稀疏帶來的計算資源節省(自己理解的,不知道對不對)。

於是,現在要解決的問題是:有沒有一種折中的可能,找到一種結構,這個結構既可以保證稀疏性,同時充分利用現有計算資源的稠密性計算。有發現,把稀疏矩陣聚類為相對稠密的子矩陣,能節省計算量。

因此,文中提出了Inception結構。

3、Inception

結構如圖1,(a)是初始結構,(b)是加入降維處理後的結構。Inception最主要還是在於結構稀疏性的同時轉化為傳統稠密計算。(The main idea of the Inception architecture is to consider how an optimal local sparse structure of a convolutional vision network can be approximated and covered by readily available dense components. )

Inception的特點:

(1)不同大小的卷積核保證了不同尺度的特徵提取和融合。

(2)1*1的卷積核可以降低引數量。(比如previous layer 為56*56*64,不加1*1卷積核而直接加128個5*5卷積核時,引數量為5*5*64*128;而先加入32個1*1卷積核再連線128個5*5卷積核時,引數量為1*1*1*64*32+5*5*32*128)

(3)Inception模組適合加在網路的高層。

(5)越往上,Inception模組中的3*3以及5*5卷積核數量應該增加。


圖1 Inception結構

4、GoogLeNet

(1)結構如圖2,共22層(只包括含有引數的層,不包含pool層);

(2)用average pooling代替全連線層(與network in network中一樣),但保留了dropout,此操作提高0.6%的top-1準確率。

(3)為了彌補梯度消失,在中間層插入額外的淺層softmax分類網路結構,如圖2,直接傳遞一定權重的loss。

圖2 GoogLeNet結構

5、其他

Inception的主要思想來源:

(1)稀疏性理論支撐:S. Arora, A. Bhaskara, R. Ge, and T. Ma. Provable bounds for learning some deep representations. CoRR, abs/1310.6343, 2013.

(2)網路結構啟發:

NIN網路:M. Lin, Q. Chen, and S. Yan. Network in network. CoRR, abs/1312.4400, 2013.

不同大小的Gabor濾波器實現多尺度特徵:T. Serre, L.Wolf, S. M. Bileschi, M. Riesenhuber, and T. Poggio. Robust object recognition with cortex-like mechanisms. IEEE Trans. Pattern Anal. Mach. Intell., 29(3):411–426, 2007.