摘要:顯示了殘差連接可以加速深層網絡的收斂速度,考察了殘差網絡中激活函數的位置順序,顯示了恒等映射在殘差網絡中的重要性,并且利用新的架構可以訓練極深層的網絡。包含恒等映射的殘差有助于訓練極深層網絡,但同時也是殘差網絡的一個缺點。
WRN
Wide Residual Networks
Sergey Zagoruyko, Nikos Komodakis
Caffe實現:https://github.com/binLearnin...
摘要深度殘差網絡可以擴展到上千層,并且仍然能夠提升性能。但是,每提升1%的準確率就要付出將網絡層數翻倍的代價,而極深層的殘差網絡對特征的重復利用逐漸減少(diminishing feature reuse),這會使網絡訓練變得很慢。為了處理這個問題,本文提出一種新的架構——wide residual networks (WRNs),該架構減小殘差網絡的深度,增大網絡的寬度。實驗證明WRN要優于窄但極深的網絡,16層的WRN在準確率和效率方面要優于之前所有的殘差網絡,包括超過1000層的極深殘差網絡,WRN在CIFAR、SVHN、COCO上都取得了最佳的結果,在ImageNet上也有很大提升。官方實現(Torch)源碼地址:https://github.com/szagoruyko... 。
1. Introduction近幾年在多項工作中都發現了使用深層網絡的優勢,但是訓練深層網絡存在一些難點,包括梯度消失/爆炸、退化現象等。多種技術有助于訓練較深層的網絡,比如精心設計的初始化策略(msra等),更好的優化器,跳躍連接(skip connection),知識遷移(knowledge transfer),逐層訓練(layer-wise training)等。
最近的ResNet在多個任務上都取得了最佳的結果,相比于Inception架構,ResNet具有更好的泛化能力,也就是說它提取的特征可以用于遷移學習。Inception-ResNet顯示了殘差連接可以加速深層網絡的收斂速度,ResNet-v2考察了殘差網絡中激活函數的位置順序,顯示了恒等映射在殘差網絡中的重要性,并且利用新的架構可以訓練極深層的網絡。Highway network也可以訓練深層網絡,它與ResNet最大的不同在于它的殘差連接是參數門限形式的。
之前的研究基本都是著眼于殘差block中的激活函數位置順序或者殘差網絡的深度。本文從另一個角度來提高殘差網絡性能。
Width vs depth in residual networks
ResNet為了在增加網絡深度時保持模型包含較小參數量,將網絡設計的很“窄(thin)”,甚至引入bottleneck block使block更窄。
包含恒等映射的殘差block有助于訓練極深層網絡,但同時也是殘差網絡的一個缺點。梯度反傳時并不一定要通過殘差block中帶權值的支路(殘差函數),那么這些殘差函數在訓練時就學習不到任何信息,所以殘差網絡中可能只有一小部分block學習到有用的表示,大多數block對最終的預測貢獻甚少。這個問題在Highway network被稱為diminishing feature reuse。隨機深度ResNet通過在訓練時隨機丟棄ResNet中的部分層來解決這個問題,這種方法可以視為dropout的特例,而該方法的有效性也證明了上述假設是正確的。
本文工作基于ResNet-v2,主要考察殘差block的寬度。本文實驗顯示, 適當的增加ResNet中block的寬度比增加網絡深度可以更有效的提升性能 ,這說明殘差網絡的能力主要由殘差block提供,網絡深度只有補充性的作用。
Use of dropout in ResNet blocks
Dropout多用于網絡中包含大量參數的最終幾層(一般是全連接層)來防止特征相互適應(feature coadaptation)以及過擬合。但dropout逐漸被batch normalization (BN)取代,BN也有正則化的效果,并且實驗證明使用BN的網絡比使用dropout的網絡有更高的準確率。在本文中,加寬的殘差block包含大量參數,我們使用dropout來防止過擬合。ResNet-v2中將dropout加到快捷連接支路上發現性能變差,我們認為dropout應該添加到殘差函數支路中,實驗證明該方法可以提升網絡性能。
在ResNet-v2中殘差網絡有兩種形式的block:
basic —— 兩個相連的3x3卷積層,預激活(pre-activation)形式,如圖1(a)所示
bottleneck —— 一個3x3卷積層,前后各一個1x1卷積層,如圖1(b)所示
bottleneck block是為了在增加層數時減少block的計算量,也就是使得block更窄,而我們要考察的是加寬block的效果,所以不考慮bottleneck block,在本文架構中只使用basic形式。
有三種提升殘差block表示能力的方法:
? 向每個block中增加更多的卷積層
? 通過增加特征圖數量來加寬卷積層
? 增大卷積層的濾波器尺寸
VGG、Inception-v4中顯示小尺寸的濾波器更有效,所以本文不考慮尺寸大于3x3的卷積核。引入兩個因子:深度因子l,表示一個block中包含的卷積層數量;寬度因子k,卷積層輸出特征圖數量的倍數,那么basic block對應的l=2,k=1。圖1(a)、(c)分別展示了basic block和加寬的basic block。
表1中展示了本文提出的殘差網絡的具體配置,其中寬度因子k用來控制殘差block的寬度。
用B(M)來表示殘差block的結構,其中M表示卷積層列表,以濾波器尺寸來代表卷積層。為了考察3x3卷積層的重要性,以及它是否可以被其他形式的卷積取代,本文試驗了多種形式的卷積組合:
B(3,3) - original basic block
B(3,1,3) - with one extra 1x1 layer
B(1,3,1) - with the same dimensionality of all convolutions, straightened bottleneck
B(1,3) - the network has alternating 1x1-3x3 convolutions everywhere
B(3,1) - similar idea to the previous block
B(3,1,1) - Network-in-Network style block
2.2 Number of convolutional layers per residual block考察深度因子l對模型性能的影響,為了保持網絡復雜度基本不變,需要同時改變l和d(d表示block的總數),也就是說增大l時應該減小d。
考察寬度因子k,當block深度因子l或者block總數d增大時,模型參數量也線性增加;而寬度因子k增大時,參數量和計算復雜度會增加k的平方倍。即使這樣,計算加寬的網絡也比窄但極深的網絡更加高效,因為GPU在并行計算大的張量時更加高效。
ResNet之前的網絡架構都是比較寬的,比如Inception和VGG。
本文以WRN-n-k表示包含n個卷積層且寬度因子為k的WRN,也有可能加上block的形式,比如WRN-40-2-B(3,3)。
加寬block會增加網絡的參數數量,所以要使用正則化方法。之前的殘差網絡使用BN來提供正則化的效果,但仍然需要大量的數據增廣操作。本文在殘差函數支路中加入dropout(如圖1(d)所示)來避免過擬合。在極深層殘差網絡中這樣應該可以解決特征重復利用逐漸減少的問題,因為dropout的加入可以強使不同的殘差block學習表示。
3. Experimental results分別在CIFAR-10、CIFAR-100、SVHN和ImageNet數據集上進行實驗。
Type of convolutions in a block
不同形式的卷積組合的性能見表2,可以看出,具有相同參數量的block的性能基本一樣,所以后面的實驗全部選取只包含3x3卷積層的形式。
Number of convolutions per block
不同的深度因子l的性能見表3。B(3,3,3)和B(3,3,3,3)比B(3,3)性能差,可能是因為網絡中的殘差連接減少(參考2.2),使得網絡難以優化。
Width of residual blocks
考察不同的k和網絡深度的組合,具體性能見表4。
表5展示了不同網絡的性能比較,圖2顯示了兩個代表性網絡的訓練曲線。
盡管先前的一些工作表明深度具有正則化的效果,而寬度則會導致過擬合,但是我們成功訓練出來比1001層ResNet參數量還要多的模型,訓練耗時更短,性能也更好。
總結上述實驗結果:
? 加寬不同深度的殘差網絡都可以提升性能
? 在參數量過多和需要更強的正則化方法之前,增加深度和寬度都有助于提升性能
? 深度好像并沒有正則化的作用,具有相同參數量的寬且淺網絡可以學習到相當或更好的表示。此外,寬網絡可以訓練出數倍于窄網絡參數量的模型,窄網絡的深度需要加倍才能得到相同的結果,這使得訓練幾乎不可行
Dropout in residual blocks
考察dropout的作用,具體性能見表6。
我們發現在訓練殘差網絡時,在第一次和第二次下調學習率之間的時間段,驗證集損失和誤差都會震蕩走高,這可能是因為權值衰減(weight decay),但是調低權值衰減系數會使得準確率大幅下降。dropout可以在大多數情況下緩解這個問題(見圖2,3)。
盡管網絡中使用了BN,dropout仍然是一個有效的正則化方法。dropout可以和加寬方法互補使用來進一步提升模型性能。
ImageNet and COCO experiments
具體結果見表7-9。
Computational efficiency
窄深且卷積核尺寸小的殘差網絡與GPU計算優勢相悖。增加寬度可以提高計算效率,所以寬的網絡通常更高效。考察不同的網絡計算耗時如圖4。
Implementation details
使用Torch實現,官方實現源碼地址:https://github.com/szagoruyko... 。
本文主要考察了殘差網絡中的寬度以及dropout的使用。實驗證明殘差網絡的能力主要由殘差block提供,并不是極端的深度。另外,WRN的訓練在某些情況下會更快。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/19628.html
摘要:和是兩個非常重要的網絡,它們顯示了深層卷積神經網絡的能力,并且指出使用極小的卷積核可以提高神經網絡的學習能力。也有工作考察與的關系,與其相似,本文考察了與的關系。與的網絡架構配置以及復雜度見表。 DPN Dual Path NetworksYunpeng Chen, Jianan Li, Huaxin Xiao, Xiaojie Jin, Shuicheng Yan, Jiashi F...
摘要:將這些需要保留的信息直接通過恒等映射進行傳輸,展示了中的很多層對最終的結果影響極小,可以在訓練時隨機丟棄部分層。得益于密集連接的方式,可以同時具有恒等映射深度監督和深度多樣性的特性。 DenseNet Densely Connected Convolutional NetworksGao Huang, Zhuang Liu, Kilian Q. Weinberger, Laurens ...
摘要:本文提出的網絡名為,意為維度基數。在空間通道維度分解網絡,減少冗余,可以對網絡進行加速或精簡。復雜度不變的情況下,隨著基數的增大錯誤率持續減小。考察增加深度寬度基數對網絡性能的提升。 ResNeXt Aggregated Residual Transformations for Deep Neural NetworksSaining Xie, Ross Girshick, Piotr ...
摘要:大量實驗結果證明了恒等映射的重要性。本文實驗了不同形式的,發現使用恒等映射的網絡性能最好,誤差減小最快且訓練損失最低。為了使得是恒等映射,需要調整和帶權值層的位置。恒等映射形式的快捷連接和預激活對于信號在網絡中的順暢傳播至關重要。 ResNet-v2 Identity Mappings in Deep Residual NetworksKaiming He, Xiangyu Zhang...
摘要:前面層中的以類別無關的方式增強可共享的低層表示的質量。通過調整網絡各層間的連接機制來提升深層網絡的學習和表示性能。基本都是常規處理和訓練設置。根據輸入動態調整各通道的特征,增強網絡的表示能力。 SENet Squeeze-and-Excitation NetworksJie Hu, Li Shen, Gang Sun 摘要 卷積神經網絡顧名思義就是依賴卷積操作,使用局部感受區域(loc...
閱讀 3209·2021-11-12 10:36
閱讀 1258·2019-08-30 15:56
閱讀 2444·2019-08-30 11:26
閱讀 551·2019-08-29 13:00
閱讀 3609·2019-08-28 18:08
閱讀 2749·2019-08-26 17:18
閱讀 1893·2019-08-26 13:26
閱讀 2432·2019-08-26 11:39