Deep Residual Network 深度殘差網路
2012年,計算機視覺界頂級比賽ILSVRC中,多倫多大學Hinton團隊所提出的深度卷積神經網路結構AlexNet[1]一鳴驚人,同時也拉開了深度卷積神經網路在計算機視覺領域廣泛應用的序幕,如圖1所示。
圖1 AlexNet網路結構2014年,Google公司的GoogleNet[2]和牛津大學視覺幾何組的VGGNet[3]在當年的ILSVRC中再一次各自使用深度卷積神經網路取得了優異的成績,並在分類錯誤率上優於AlexNet數個百分點,再一次將深度卷積神經網路推上了新的巔峰。兩種結構相較於AlexNet,繼續選擇了增加網路複雜程度的策略來增強網路的特徵表示能力。 2015年,微軟亞洲研究院的何凱明等人使用殘差網路ResNet[4]參加了當年的ILSVRC,在圖像分類、目標檢測等任務中的表現大幅超越前一年的比賽的性能水準,並最終取得冠軍。殘差網路的明顯特徵是有著相當深的深度,從32層到152層,其深度遠遠超過了之前提出的深度網路結構,而後又針對小數據設計了1001層的網路結構。殘差網路ResNet的深度驚人,極其深的深度使該網路擁有極強大的表達能力。本文剩餘部分將對殘差網路及其變種進行詳細的介紹。Deeper is better?上一部分我們回顧了深度卷積神經網路的發展歷程,可以明顯發現,網路的表達能力是隨著網路深度的增加而增強的。何愷明等人的實驗[5]也證明,時間複雜度相同的兩種網路結構,深度較深的網路性能會有相對的提升。 然而,網路並非越深越好。拋開計算代價的問題不談,在網路深度較深時,繼續增加層數並不能提高性能,如圖2所示。可以看到,在「平整」網路(與本文所介紹的殘差網路複雜程度相同,但未使用殘差結構的網路)中,隨著網路層數的增加,其性能不但沒有提升,反而出現了顯著的退化。由於訓練誤差也隨著層數增加而提升,所以這個現象可能並非參數的增加造成的過擬合;此外,這個網路在訓練時也使用了ReLU激活、BN等手段,一定程度上緩解了梯度消失,這個現象可能也並非完全由梯度消失造成的。這個問題仍有待理論層面的研究和解決。 那麼當下真的沒有辦法讓網路更深了嗎?把思路打開,假設上面的實驗場景中,多增加的26層全部為單位映射,那麼完全可以認為不會產生性能的損失。當然實際應用中這樣做是沒有意義的,但如果增加的層可以近似為單位映射,或者增加了些許擾動的單位映射,那麼就有可能實現上述假設。在這一思路的引導下,深度殘差學習(Deep Residual Learning)應運而生。 圖2 使用Cifar-10數據集對「平整」網路進行訓練和測試對應的誤差Deep Residual Learning(2)初始化:我們設深度網路中某隱含層為H(x)-x→F(x),如果可以假設多個非線性層組合可以近似於一個複雜函數,那麼也同樣可以假設隱含層的殘差近似於某個複雜函數[6]。即那麼我們可以將隱含層表示為H(x)=F(x)+ x。
這樣一來,我們就可以得到一種全新的殘差結構單元,如圖3所示。可以看到,殘差單元的輸出由多個卷積層級聯的輸出和輸入元素間相加(保證卷積層輸出和輸入元素維度相同),再經過ReLU激活後得到。將這種結構級聯起來,就得到了殘差網路。典型網路結構表1所示。 圖3 殘差單元示意圖可以注意到殘差網路有這樣幾個特點:1. 網路較瘦,控制了參數數量;2. 存在明顯層級,特徵圖個數逐層遞進,保證輸出特徵表達能力;3. 使用了較少的池化層,大量使用下採樣,提高傳播效率;4. 沒有使用Dropout,利用BN和全局平均池化進行正則化,加快了訓練速度;5. 層數較高時減少了3x3卷積個數,並用1x1卷積控制了3x3卷積的輸入輸出特徵圖數量,稱這種結構為「瓶頸」(bottleneck)。 表1 典型的殘差網路結構 圖4 ImageNet數據集上「平整」網路和殘差網路的收斂性能圖5 ImageNet數據集上殘差網路和其他網路單模型分類驗證錯誤率對比 (VGG對應值為測試誤差)
圖6 ImageNet數據集上殘差網路和其他網路集成模型分類測試錯誤率對比 圖7 在Cifar-10數據集上網路各層響應的方差分布 上圖:按照原網路層數排列;下圖:按照方差大小排列收斂性能:圖4中可以看到,與之前的實驗不同,殘差網路增加了一定層數之後,並未出現性能退化,反而性能有了一定程度的提升:殘差網路有著更低的收斂損失,同時也沒有產生過高的過擬合。同時注意到,殘差網路在淺層時並未表現出更多的優勢,說明殘差網路必須要配合較深的深度才能發揮其結構優勢,與「平整」網路拉開性能差距。分類性能:圖5和圖6是幾種網路結構在ImageNet數據集上單模型及集成模型分類錯誤率的對比。可以發現,殘差網路系由於層數普遍高於以上模型,且又有殘差結構作為極深度的支持前提,使得其性能普遍高於此前的各類優秀模型。此外,殘差網路的性能也確實如期望隨著網路層數的提升而提升。在100層以上時已經遠遠甩開了IRSVRC 2014的冠亞軍網路模型。網路響應:圖7中可以看出,殘差網路中大部分層的響應方差都處在較低水平,這一定程度上印證了我們的假設:這些響應方差較低的層響應較為固定,很有可能權重近似於零,這也就是說其所對應的殘差結構可能近似於單位映射,網路的實際有效層數是要比全部層數要少一些的,產生了跳過連接(Skip-connection)的作用。這樣也就是網路為什麼在較深的深度下仍可以保持並提升性能,且沒有過多增加訓練難度的原因。ResDeeper more何愷明等人基於深度殘差結構,進一步設計了一些其他的殘差網路模型,用於Cifar-10數據集上的分類任務,分類錯誤率如圖8所示。可以看到,110層以下的殘差網路中均表現出了較強的分類性能。但在使用1202層殘差網路模型時,分類性能出現了退化,甚至不如32層殘差網路的表現。由於Cifar-10數據集尺寸和規模相對較小,此處1202層模型也並未使用Dropout等強正則化手段,1202層的網路有可能已經產生過擬合,但也不能排除和之前「平整」網路情況類似的原因導致的性能退化。[1]Krizhevsky, Alex, Ilya Sutskever, and Geoffrey E. Hinton. "Imagenet classification with deep convolutional neural networks." Advances in neural information processing systems. 2012.
[2]Szegedy, Christian, et al. "Going deeper with convolutions." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2015.
[3]Simonyan, Karen, and Andrew Zisserman. "Very deep convolutional networks for large-scale image recognition." arXiv preprint arXiv:1409.1556(2014).
[4]He, Kaiming, et al. "Deep residual learning for image recognition." arXiv preprint arXiv:1512.03385 (2015).
[5]He, Kaiming, and Jian Sun. "Convolutional neural networks at constrained time cost." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2015.
[6]Montufar, Guido F., et al. "On the number of linear regions of deep neural networks." Advances in neural information processing systems. 2014.[7]He, Kaiming, et al. "Identity mappings in deep residual networks." arXiv preprint arXiv:1603.05027 (2016).
推薦閱讀:
※深度學習(Deep Learning)基礎概念1:神經網路基礎介紹及一層神經網路的python實現
※SPPNet-引入空間金字塔池化改進RCNN
※擔心的事情還是發生了,AI水軍你根本看不出來
※Python · RNN
TAG:深度学习DeepLearning | 神经网络 | 人脸识别 |