【論文閱讀】Deep Residual Learning for Image Recognition 【ResNet】

          

一、論文來自於凱明大哥的團隊,這也是近幾年來大多數計算機視覺任務,網絡baseline的基礎

二、核心思想

      1、如何個去構建更深層的網絡,因爲之前的一些工作證明了,網絡層次的加深有助於提高模型的性能。但是隨着層級的加深,讓網絡的訓練變得更加困難。主要表現在“梯度消失”、“退化問題”。

       *針對梯度消失問題:主要會阻礙網絡的收斂,這個問題的解決辦法,主要是通過“normalized initialization” 以及“intermediate normalization layer” 的應用,讓幾十層的網絡能夠得以訓練。

       *本文主要針對的是“degeneration” 問題,這個問題主要表現爲:隨着網絡層數的上升,accuracy 反而收到了飽和,反而開始退化。這個並不是由於“overfitting”導致的;對於一個已經比較合適的模型去增加更多的層,反而會增加訓練的error,這個觀點作者在本文有數據證明,同時“Convolutional neural networks at constrained time cost”以及“Highway networks”這兩篇文章對這個都有一定說明。

三、思想內容昇華

      從剛纔的“退化問題”,可以展開思考:如果存在一個比較深的模型,他的一部分參數來自於“一個已經比較好的model”,剩下的那些層只作爲“identity mapping”,這樣的化,理論上training error不會上升(至少不會比 那個淺層的模型多)。

    但是實驗表明:目前的solver並不能夠讓模型找到這樣的一個解決方案,也就是沒辦法讓一些層通過學習,自己感知到前面那些層已經夠深了,自己只需要作爲“恆等映射”就行了。作者也提到,也有可能是(or unable to do so in feasible time)。

    我們總不能,每次對於一個不同的任務,都去通過先訓練一個小模型,然後慢慢加層訓練,去找到一個合適的深度!!!這樣就太麻煩了!!!我們需要的是一個比較深,但是自己能夠避免“degeneration”!!!的模型,這樣模型能夠自適應到不同的任務中去,不需要人爲的去做過多的探索!

四、解決方案

                                        

      殘差網絡模塊!

      1、如何理解上圖,這個模型,簡單的看法“淺層特徵 融合 高級特徵”。其實這樣理解就太過淺顯了。

      **通過“退化問題”,我們知道,網絡要學習的是一個“underlying mapping”,這個mapping不能是直接的一堆 conv-bn-relu,這種方式解決的。我們把 underlying mapping 記爲“H(x)”,那麼網絡模塊部分就可以表現爲F(x)=H(x)-x,那麼這個整個 residual block的功能函數就是“F(x)+x”。

       通過這種方式,組合了“nonlinear mapping” 和“identity mapping”,去尋找最優 mapping,如果 直接“identity mapping”就可以讓模型達到最優,那麼F(x)直接表現爲全0就行,讓這個residual mapping 去學習到全0 比讓這個residual mapping學習出一個“identity mapping ”要簡單很多。

     通過這個方式,讓網絡層數可以不斷加深,但是訓練難度並不會大大增加,同時“identity mapping” 不會帶來額外的參數!同時不會影響,整個求導過程!

     而且這是個通用的方法,不光是對於視覺任務,也可以對應於別的任務!

    2、殘差模塊還有另一種版本

                                                   

      這個公示的意思是,在identity mapping這一支,應用上了卷積,這個模塊主要是用在“輸出channel 數 與 輸入channel數不同”的時候,用conv 1*1,當然是planB;planA是可以直接padding zero channel且不會增加額外的參數。下圖中的虛線就是代表了這個操作,實線代表了第一種殘差模塊!

                                                          

    3、作者在設計網絡的時候,遵循着兩條簡單的準則:i、如果feature map的size不下降,那麼channel數量不變 ii、如果feature map的size 被降了一半,那麼channel就會增加一倍。下采樣用的是conv的stride=2。以及最後接的global average pooling layer 。

五、思想來源

   1、Residual Representations

       VLAD和Fisher Vector

   2、Shortcut Connections.

      在MLPs中就有着應用了。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章