1. 程式人生 > >【模型解讀】network in network中的1*1卷積,你懂了嗎

【模型解讀】network in network中的1*1卷積,你懂了嗎

文章首發於微信公眾號《與有三學AI》

02 這是深度學習模型解讀第二篇,本篇我們將介紹Network InNetwork。

Network In Network 是發表於2014年ICLR的一篇paper。這篇文章採用較少引數就取得了Alexnet的效果,Alexnet引數大小為230M,而Network In Network僅為29M,這篇paper主要兩大亮點:

01 提出MLP卷積層

下圖是傳統卷積結構:

使用relu的一個非線性變換操作為:

i,j表示畫素下標,xi,j表示畫素值,wk表示卷積引數,k就是下標的索引。

MLP卷積層結構如下圖:

mlpconv層的計算公式為:

i,j表示畫素下標,xi,j表示畫素值,wk,n表示第n層卷積卷積引數。

從以上可以看出,MLP卷積層通過疊加"micro network"網路,提高非線性表達,而其中的"micro network"基本組成單元是1*1卷積網路,說到這,就要解釋一下1*1卷積了,該篇論文是首次提出1*1卷積,具有劃時代的意義,之後的Googlenet借鑑了1*1卷積,還專門致謝過這篇論文。

1*1卷積的意義:

1. 實現了不同通道同一位置的資訊融合

如上圖,C2融合了C1不同通道同一位置的資訊。

2. 可以實現通道數的降維或升維

1*1*n,如果n小於之前通道數,則實現了降維,如果n大於之前通道數,則實現了升維。

02 用全域性均值池化代替全連線層

首先讓我們看下Network In Network的網路結構,如下圖。

上圖看出,該網路結構有三個MLP卷積層組成,每個MLP卷積層分別是一個普通卷積,加兩個1*1卷積。以1000分類為例,最後一個1*1卷積輸出的featuremap大小為6*6*1000。之後每個featuremap採用全域性均值池化,輸出1000個分類。由於沒有全連線的大量引數,使用全域性均值池化不需要引數,極大的降低了引數量。

如下圖是在CIFAR-10 資料集中 Global average pooling 和 fully connected測試對比圖, 從下圖可以看出無引數的Global average pooling層 相比較於有引數的全連線層錯誤率更低。

03 總結

Network In Network通過創新的建立MLP卷積層,提高了網路的非線性表達同時降低了引數量,用全域性均值池化代替全連線層,極大的降低了引數量。

參考文獻

Lin M, Chen Q, Yan S. Network In Network[J]. Computer Science, 2014

同時,在我的知乎專欄也會開始同步更新這個模組,歡迎來交流

注:部分圖片來自網路

—END—

打一個小廣告,我在gitchat開設了一些課程和chat,歡迎交流。