深度殘差網路 ResNet

來源:互聯網
上載者:User

作為 CVPR2016 的 best paper,何凱明的文章【1】針對深層網路梯度彌散導致的SGD最佳化難題,提出了 residual(殘差)結構,很好的解決了模型退化問題,在50層、101層、152層甚至1202層的網路上測試均獲得了很好的效果。

應用了ResNet的錯誤率大大低於其他主流深度網路(圖1)

          
                       圖1.ResNet網路在 ImageNet15上獲得冠軍 網路模型

一個很顯然的事實是:越深的網路表達能力越強。但隨著深度的提高,梯度彌散的現象越明顯,導致SGD無法收斂,最終精度反而下降(圖2)

               
                 圖2. 常規56層網路無論訓練還是測試,精度都比20層網路差

針對該問題,方法提出一個 Residual(殘差)結構,對於1000多層的網路也能保持很好的訓練效果(雖然此時已經出現了過擬)

                    
               圖3. 殘差結構直接將輸入 x 接入輸出,相當於引入了一個恒等映射

如圖3所示,假設原始網路要學的函數為 H(x) H(x) ,作者將其分解為 H(x)=F(x)+x H(x)=F(x)+x。
分解後原始網路(圖3垂直向下的流程)擬合 F(x) F(x),盤支(圖3彎曲的 shortcut connection)

圖4為 VGG-19、34層普通網路和34層添加殘差的網路結構

                  
          圖4. 相較於普通網路,ResNet 只需增加 shortcut connection(虛線是將通道數乘以2)

作者的實驗表明,殘差結構需要2層以上才會有效果,如下式中 Ws W_s 表示的線性變換也僅是統一輸入輸出的維度,對訓練效果提升沒有協助
y=F(x,Wi)+Wsx y=F(x,{W_i})+W_sx
圖5是作者使用 ResNet 的實驗效果

       
                     圖5. ResNet網路(右)與普通網路(左)的訓練誤差 為什麼 ResNet 起作用

這裡需要回答兩個問題: 一是為什麼分解為 H(x)=F(x)+x H(x)=F(x)+x(實際最佳化的是 F(x)=0 F(x)=0); 二是為什麼分解後能解決梯度渙散的問題

對於第一個問題,作者並沒有從原理上做解釋,而是通過實驗證明其是最優的。知乎上關於為什麼用 x 而不是 0.5x 或者其他的一個回答是:“實踐發現機器學習要擬合的(target function)函數 f(x) 經常是很接近同一映射函數的。”但我不能理解。

對於第二個問題,有以下3種解釋:
1)由於網路權重初始值往往在0附近,因此最佳化 F(x)=0 F(x)=0是有天然優勢的。
  一個比喻是:假設要擬合的函數是一根直線(在這裡就是 H(x) H(x)),那麼用一根直線(殘差結構 x x)和一些微小的折線( F(x) F(x))來疊加肯定比單純的用直線或者折線擬合要容易最佳化的多

2)比如把 5 映射到 5.1
  如果普通網路,則是 F′(5)=5.1 F'(5)=5.1
  引入殘差後為 H(5)=5.1 H(5)=5.1, H(5)=F(5)+5 H(5)=F(5)+5,那麼 F(5)=0.1 F(5) = 0.1
  可以看到,普通網路輸入輸出的“梯度”僅為2%,而殘差網路的映射 F F增加了100%

3)這篇文章從另一個角度理解殘差:將其看做一個投票系統

      
                       圖6. 殘差網路可以分解為多鐘路徑組合的網路

如圖6所示,殘差網路其實是很多並行子網路的組合。因此雖然表面上看 ResNet 可以做到很深,但這個組合裡大部分網路路徑其實都幾種在中間的路徑長度上。

圖7通過各個路徑長度上包含的網路數乘以每個路徑的梯度值,統計了 ResNet 真正起作用的路徑

                    
                     圖7. 真正起作用的路徑長度不到20層

因此,“ResNet 只是表面上看起來很深,事實上網路卻很淺”。“ResNet 沒有真的解決深度網路的梯度渙散問題,其實質就是一個多人投票系統”。 代碼實現

作者在 github 上放出了 caffe 下的網路模型,並且介紹了第三方在其他平台的實現

【1】He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 770-778.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.