1. 程式人生 > >《Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning》筆記

《Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning》筆記

Inception結構有著良好的效能,且計算量低。Residual connection不同於傳統網路結構,且在2015 ILSVRC取得冠軍,它的效能和Inception-v3接近。作者嘗試將Inception結構和Residual connection結合,提出了新的網路結構Inception-v4。Inception-v4在ImageNet分類比賽中,top-5的錯誤率為3.08%。

介紹

Residual connection使得訓練更深的網路變得容易。Inception結構也使得網路變深。將Residual connection新增到Inception結構中,使得Inception結構得到Residual connection的“益處”,且保留計算的高效。

作者也嘗試了不使用Residual connection,而是直接拓展Inception結構,使得它更深更寬。作者也設計了不用Residual connection版本的Inception-v4。

相關工作

卷積網路在影象識別領域已經十分流行,經典網路有AlexNet、VGGNet、GoogLeNet等。Residual connection的提出是用了訓練更深的網路,但是作者發現不使用Residual connection也可以訓練更新的網路,Residual connection並不是必要條件;只是使用了Residual connection會加快訓練速度。

Inception結構最初由GoogLeNet引入,GoogLeNet叫做Inception-v1;之後引入了BatchNormalization,叫做Inception-v2;隨後引入分解,叫做Inception-v3。

網路架構

Inception-v4共有四種結構,一種不包含Residual connection結構的;包含Residual connection結構的,根據包含Inception模組的不同又分為2種:Inception-ResNet-v1和Inception-ResNet-v2。

Inception-v4

下圖是Inception-v4的結構:

inception_v4_09.jpg

Stem模組為:
inception_v4_03.jpg

下面分別為:Inception-A、Inception-B、Inception-C模組。
inception_v4_04.jpg
inception_v4_05.jpg
inception_v4_06.jpg

不同的Inception模組的連線,減小了feature map,卻增加了filter bank。

35x35變為17x17模組,即Reduction-A
inception_v4_07.jpg

17x17變為8x8模組,即Reduction-B
inception_v4_08.jpg

Inception-ResNet

Inception-ResNet的兩個版本,結構基本相同,只是細節不同。整體結構為:

inception_v4_15.jpg

Inception-ResNet的兩個版本對應Inception-resnet-A、Inception-resnet-B、Inception-resnet-C略微不同。

其中Inception-ResNet-v1和Inception-ResNet-v2對應的Inception-resnet-A模組為:

inception_v4_10.jpg
inception_v4_16.jpg

其中Inception-ResNet-v1和Inception-ResNet-v2對應的Inception-resnet-B模組為:
inception_v4_12.jpg
inception_v4_17.jpg

其中Inception-ResNet-v1和Inception-ResNet-v2對應的Inception-resnet-C模組為:
inception_v4_13.jpg
inception_v4_19.jpg

Inception-ResNet的stem模組和Reduction-B模組也略微不同。Inception-ResNet-v1和Inception-ResNet-v2主要在於Reduction-A結構不同:
inception_v4_table01.jpg
其中k,l,m,n表示filter bank size。

縮放Residuals

當卷積核個數超過1000時,訓練將會變得不穩定,在訓練的早期,網路“died”。這是縮小Residuals有助於穩定訓練,縮小因子介於0.1到0.3。

He在訓練Residual Net時也發現這個問題,提出了“two phase”訓練。首先“warm up”,使用較小的學習率。接著再使用較大的學習率。

訓練方法

使用Momentum + SGM,momentum=0.9。使用RMSProp,decay為0.9,ϵ=1.0

學習率為0.045,每2個epoch縮小為原理的0.94。

實驗結果

inception_v4_table02.jpg