--- tags: Deep learning --- # 論文閱讀:ResNet(Deep Residual Learning for Image Recognition) [論文](https://arxiv.org/pdf/1512.03385.pdf) ## Introduciton 如果根據AlexNet、VGG等論文所言,CNN model的"深度"對於其performance極其重要,那麼做出一個更優秀的model,是否只要堆疊更多的convolution layer就沒問題了呢?答案很明顯並非那麼單純。 問題其一,是更深的CNN模型具有vanishing gradient的問題。對於這些問題,已經有許多解決方法被提出,舉凡normalized initialization,或者在network中implement normalization layers,都能有效的降低vanishing gradient的影響。 然而還有另一個問題。如下圖,我們可以觀察到,當使用更深的深度學習模型時,training error不降反增。顯然這狀況不是overfitting,因為不僅是testing error,training error同樣也因為層數的加深反而更高了。論文中這種狀況為"degradation"。  設想一個情境:現在你有一個淺層的網路A,如果往後堆疊許多identity mapping,理論上你能得到一個效果與A相同,深度更深的模型B,對吧? 然而經驗告訴我們,現實並不如我們所預期。 因此,論文提出了residual block的概念,如下圖  假設直接mapping input x的結果為H(x),則ResNet希望模型能學習到的是其殘差F(x)= H(x)−x,因此,只有F(x)會通過conv layer。這使得當殘差為0時,此時conv就像做了identity mapping。論文稱這條identity的路徑為"short cut",short cut的設計使得Network的性能得以提升,並且不需要增加額外的參數。 ## Related Work 略 ## Deep Residual Learning ### Residual Learning 論文認為,residual的學習(F(x))相對於直接學習整個output(H(x))更容易。從degradation的發生可以推測,由許多非線性單元組成的深度學習架構很難逼近indentity mapping。然而透過通過residual的學習,如果identity mapping是最佳解的,則模型只要將多個非線性層的權重設為零,便可以逼近identity mapping。 ### Identity Mapping by Shortcuts 在paper中,我們可以視一個buliding block如同以下公式: > y = F(x, {Wi}) + x. x為input,y為output,F(x, {Wi})則表示一個residual mapping。F是可以有彈性,以Figure 2為例,F=W2σ(W1x) (σ表示ReLu function)。 ### Network Architectures  論文中測試了各種Plain/Residual Network,並觀察到了一致的現象,下面先簡單闡述論文中實驗的模型架構: #### Plain Network: 啟發於VGG的架構,其conv layer主要由3x3的filter組成。並且遵循兩個規則 1. 相同output尺寸的conv會有相同數量的filter 2. 如果feature map的大小減半,則filter的數量也將增加一倍,以保持每層的時間複雜度。 downsampling會直接通過stride=2的conv layer完成。network的最後連接average pooling layer及一個1000個輸出的fully-connected layer + softmax。最後總共有34層。(如上圖中間) 值得一提的是,這個架構比起VGG有更少的filter/參數。 #### Residual Network: 如上圖右邊。基於plain network架構加入了shortcut。因為shortcut只能被用在input與output相同dimension的狀況下,因此shortcut使用了兩種選項: 1. shortcut 只做identity mapping,其他多餘的地方就補0,好處是不用增加多餘的參數。 2. 使用1x1 conv 使dimensions相同(映射)。 ### Implementation (訓練細節略,基本上都是和AlexNet/VGG類似的概念。) ### Experiments 在ImageNet 2012 classification dataset上測試模型 #### Plain Networks  論文首先測試18-layer 和 34-layer 的模型(模型的參數細節如上表)  可以看到,在plain network中,當把模型深度加深,反而error提高。追究其原因,從Figure4 左圖可以發現degradation的發生。 需注意問題**並非是因為層數變多而發生vanishging gradient**,網路是有使用BatchNorm 訓練的,可確保forward propagate具有non-zero variances。論文也驗證了在forward與backward上都沒有訊號的消失。 論文認為,問題應該是出在更深的網路具有極低的收斂速度。  #### Residual Networks 接下來我們來看看Residual Network的表現。(這邊對於input/output dimension不對應的狀況是採用zero-padding,因此不會增加多餘的參數) 可以看到error隨著網路加深可以變得更低(Table2),並且training error是會隨著epoch低於validation error的(Fig. 4)。也就是說,透過residual block的使用可以有效地降低degradation的發生。 #### Identity vs. Projection Shortcuts 從上一個實驗我們可以看到,使用identity mapping + zero-padding(如果input/output dimension不同)方式的short cut就足以使模型的表現變好。這裡論文嘗試了三種方案的short cut做實驗: ( A ) identity mapping + zero-padding shortcut(同上面的方法) ( B ) 對於input/output dimension有差異的使用映射的short cut,其他則維持identity mapping ( C ) 所有short cut 都使用映射 實驗結果則如下表:  可以看到B的方法是大於A的,論文認為這是因為被zero-padding的部分在網路中是不會被模型學習的。 而C方法又大於B,然而考慮到使用更多的映射就必須增加更多的參數,因此論文中最終的模型是沒有採用C作法的。 #### Deeper Bottleneck Architectures. 除了增加準確度之外,模型的時間複雜度無疑的也是需要考量的部分。論文往下提出了可以節省參數的架構"Bottleneck"。  如上圖右,bottleneck block使用了三層的架構取代原本的2層架構。其中1×1 layers被用來降維及增維。透過bottleneck block,可以堆疊出與使用residual block相同時間複雜度,但是層數更深的network架構。 在50/101/152-layer ResNets中,bottleneck架構都被使用。 ### Comparisons with State-of-the-art Methods 如圖,可以看到ResNet達到超過當時state-of-art的方法。  ### Conclusion ResNet的貢獻在於提出解決"Degradation"的方法,透過short cut使CNN Network可以變得更深。因為ResNet的概念的成功,許多Deep learning上也常看到使用residual block來提升performance的技巧。 ## Reference [深度學習入門教程:經典CNN網絡ResNet的原理分析與TensorFlow實現](https://kknews.cc/zh-tw/code/xpaz689.html) [Review: ResNet — Winner of ILSVRC 2015 ](https://towardsdatascience.com/review-resnet-winner-of-ilsvrc-2015-image-classification-localization-detection-e39402bfa5d8)
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.