ResNet:Deep Residual Learning for Image Recognition


背景

There exists a solution by construction to the deeper model: the added layers are constructed as identity mappings, and the other layers are copied from the learned shallower model. The existence of this constructed solution indicates that a deeper model should produce no higher training error than its shallower counterpart.

CNN可以提取到不同層級的特徵(low/mid/high level),且網絡層數越高,提取到的特徵語義信息越豐富。然而研究者發現,當網絡不斷加深時,網絡的training error與test error均增大。這並不是因爲過擬合,因爲過擬合的話應該是training error減小,test error增大,而且這種現象還會隨着深度加深而變差。這並不符合邏輯,因爲可以把深層網絡看做一個淺層網絡+由增加的層組成的恆等變換,深層網絡的訓練誤差至少也能達到與淺層網絡一樣的訓練誤差纔對。而深層網絡顯然沒有把這種恆等變換學習到。因此出現了ResNet,它的存在本質上就是學習到這個恆等變換。

ResNet

當一個深層網絡後面的那些層是恆等變換,那麼深層網絡就退化爲了一個淺層網絡。現在要解決的就是學習恆等變換函數了。多層的神經網絡理論上可以擬合任意函數,若直接讓一些層去擬合一個潛在的恆等變換函數H(x) = x比較困難,這可能就是深層網絡難以訓練的原因。但是,如果把網絡設計爲H(x) = F(x) + x,如下圖。我們可以轉換爲學習一個殘差函數F(x) = H(x) - x. 只要F(x)=0,就構成了一個恆等映射H(x) = x. 而且,學習F(x)=0的映射比學習一個F(x)=x的映射更容易。
這樣,既學習了恆等變換,又降低了訓練難度。

ResNet

Identity Mapping(恆等變換)

集合S的一個變換η,如果把S的每個元素a對應到它自身,即η(a)=a,對於任意的a∈S,則稱η是S的恆等變換或單位變換,記作ε。 —— [ 百度百科 ]

ResNet爲什麼有效?

殘差的思想是去掉相同的主體部分,從而突出微小的變化。 —— [ 來自一知乎答主 ]

比如把5映射到5.1,那麼引入殘差前是F’(5)=5.1,引入殘差後是H(5)=5.1, H(5)=F(5)+5, F(5)=0.1。這裏的F’和F都表示網絡參數映射,引入殘差後的映射對輸出的變化更敏感。比如原來是從5.1到5.2,映射F’的輸出增加了1/51=2%,而對於殘差結構從5.1到5.2,映射F是從0.1到0.2,增加了100%。明顯後者輸出變化對權重的調整作用更大,所以效果更好。—— [ 來自一知乎答主 ]

因此ResNet有效解決了深層網絡的梯度消失問題。

前向傳播


這裏寫圖片描述

這裏寫圖片描述

這裏寫圖片描述

反向傳播

這裏寫圖片描述
這裏寫圖片描述

如果shortcut mapping——h(x)不是恆等變換呢?

實驗結果顯示,只有在shortcut mapping爲恆等變換時纔可以得到最小的誤差。
這裏寫圖片描述

設計規則

這裏寫圖片描述

1.對於輸出feature map大小相同的層,有相同數量的filters,即channel數相同;
2. 當feature map大小減半時(池化),filters數量翻倍。(64——>128)
對於殘差網絡,維度相等的shortcut連接爲實線,反之爲虛線。維度不相等時,同等映射有兩種可選方案:

1.直接通過zero padding 來增加維度(channel)。這種方法並不增加參數。
2.乘以W矩陣投影到新的空間。實現是用1x1卷積實現的,直接改變1x1卷積的filters數目。這種會增加參數。

實驗結果

相比簡單疊加層構造的深度網絡,深度殘差網絡更容易優化,而且,training_error與test_error均有所下降。
實驗發現,如下結構的Resnet可以獲得較好的效果,同時,最好將f和h均選擇爲恆等變換。

這裏寫圖片描述

這裏寫圖片描述

參考網址:
http://www.jianshu.com/p/e58437f39f65
http://icml.cc/2016/tutorials/icml2016_tutorial_deep_residual_networks_kaiminghe.pdf

發佈了43 篇原創文章 · 獲贊 96 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章