天天看點

論文筆記:GoogLenet摘要動機結構參考文獻

論文原文連結:https://arxiv.org/abs/1409.4842

摘要

本文提出了一種叫做Inception的深度卷積神經網絡結構,并在ILSVRC14比賽中的分類和檢測任務中取得了最好的成績。這種結構的主要特點是能夠更好地利用網絡中的計算資源。通過仔細地設計,我們在增加網絡深度和寬度的同時仍然保證了計算成本不變。為了優化性能,這個結構是建立在Hebbian定理和多線程處理之上的。我們送出給ILSVRC14比賽的模型是一種叫GoogLenet的結構,它是一個22層的網絡,我們在文中的分類和檢測部分對其性能進行了評估。

動機

更深更寬的網絡在提高模型性能的同時也會帶來兩個主要問題:(1)産生巨大參數,極易導緻過拟合;(2)計算量變大,消耗更多的計算資源。解決這兩個沖突的一個方法是将全連接配接甚至卷積轉化為稀疏連接配接(這個觀點有文獻支撐),但是現在的計算機軟硬體對非均勻稀疏資料的計算效率很差,因而文中提出這麼一個問題:能否設計出一種網絡結構,使它既能保持網絡的稀疏性,又能利用密集矩陣的高計算性能?GoogLenet利用Inception結構将稀疏矩陣聚類成較密集的子矩陣來提高計算性能。

結構

Inception

論文筆記:GoogLenet摘要動機結構參考文獻

上圖中(a)是原始的Inception結構,上一層特征圖分别經1*1,3*3,5*5的卷積和3*3的最大池化操作後再堆疊在一起。為了保證拼接是尺度的統一,需要加上相應的padding,比如輸入特征圖為224*224*3,當stride=1時,padding分别取0,1,2,1,經卷積活池化後的輸出大小分别為:(224+2*0-1)/1+1=224,(224+2*1-3)/1+1= 224,(224+2*2-5)/1+1=224,(224+2*1-3)/+1=224,即四個輸出的大小相同,可以堆疊在一起。

但文中指出,這樣的結構存在一定的問題:當層數越來越深時,網絡中提取的卷積核越來越抽象,需要更大的感覺野來提取特征,相應的3*3和5*5的卷積核比例需要增加,但是更多的5*5的卷積核會帶來龐大的計算量,是以需要某種降維方法來減少計算。這就引出了圖(b)中改進後的Inception。

可以發現,(b)于(a)的不同之處在于多了3個1*1的卷積核。帶來的好處就是次元降低和非線性的提升。

舉個例子,假設輸入特征圖的次元(N,W,H,C)=100*224*224*3,即100個3通道大小為224*224的特征圖,直接通過50個3*3的卷積核的訓練參數有:100*3*3*50=45,000,若在前面事先加50個1*1的卷積核,則訓練參數的總數=100*1*1*50+50*3*3*50=27500,并且1*1的卷積核相當于把所有特征圖統一位置的資訊融合在了一起,并不影響原有的特征圖位置資訊。此外,1*1的卷積核後面也會接一個激活函數(比如ReLU),這相當于提升了原有模型的非線性能力。

GoogLenet

GoogLenet中用了很多Inception結構,具體如下表所示:

論文筆記:GoogLenet摘要動機結構參考文獻

整個網絡一共有22層,在ImageNet比賽中Top-5錯誤率隻有6.66%比AlexNet和VGGn都要低。同時它的參數總量和在caffe中訓練的模型大小都小于AlexNet和VGG,具體如下表:

Model Layers Top-5 error(%) Parameters(M) Caffemodel size
AlexNet 8 16.04 60 244
VGG 19 7.33 138 >600
GoogLenet 22 6.66 7 50

參考文獻

  1. Going deeper with convolutions

繼續閱讀