解密ResNet:Identity Mappings in Deep Residual Networks論文筆記

論文地址:Identity Mappings in Deep Residual Networks

在上一篇文章中,對MSRA何凱明團隊的ResNet進行了介紹(地址),那篇文章中提到了,1202層的ResNet出現了過擬合的問題,有待進一步改進。第二年,何的團隊就發表了“Identity Mappings in Deep Residual Networks”這篇文章,分析了ResNet成功的關鍵因素——residual block背後的算法,並對residual block以及after-addition activation進行改進,通過一系列的ablation experiments驗證了,在residual block和after-addition activation上都使用identity mapping(恆等映射)時,能對模型訓練產生很好的效果,通過這項改進,也成功的訓練出了具有很好效果的ResNet-1001。

在原始的ResNet中,對於每一個residual building block:
這裏寫圖片描述
可以表現爲以下形式:

yl=h(xl)+F(xl,Wl),xl+1=f(yl),

其中h(xl) 爲一個恆等映射,f(yl) 代表ReLU激活函數。

而本文提出了,如果h(x)和f(y)都是恆等映射,即h(xl)=xlf(yl)=yl ,那麼在訓練的前向和反向傳播階段,信號可以直接從一個單元傳遞到另外一個單元,是訓練變得更加簡單。
即上面的公式可以表達爲:

xl+1=xl+F(xl,Wl)

那麼通過遞歸,可以得到任意深層單元L特徵的表達:
xL=xl+i=lL1F(xi,Wi),

文章分析了這個表達的優良特性:
(1)對於任意深的單元L 的特徵 xL 可以表達爲淺層單元l 的特徵 xl 加上一個形如 L1i=lF 的殘差函數,這表明了任意單元Ll 之間都具有殘差特性。
(2)對於任意深的單元L ,它的特徵 xL=x0+L1i=0F(xi,Wi) ,即爲之前所有殘差函數輸出的總和(加上x0 )。而正好相反的是,“plain network”中的特徵xL 是一系列矩陣向量的乘積,也就是L1i=0Wix0 ,而求和的計算量遠遠小於求積的計算量。

而對於反向傳播,假設損失函數爲E ,根據反向傳播的鏈式法則可以得到:
這裏寫圖片描述
將梯度分成了兩個部分:不通過權重層的傳遞這裏寫圖片描述和通過權重層的傳遞這裏寫圖片描述。其中這裏寫圖片描述保證了信號能夠直接傳回到任意淺層xl ,同時這個公式也保證了不會出現梯度消失的現象,因爲這裏寫圖片描述不可能爲-1。

通過了以上分析,作者設計實驗來進行驗證。

首先,對於恆等跳躍連接h(xl)=xl ,作者設計了constant scaling、exclusive gating、short-only gating、1*1 conv shortcut以及dropout shortcut來替代h(xl)=xl ,如下圖,經過實驗發現,h(xl)=xl 的誤差衰減最快、誤差也最低,而其他形式的都產生了較大的損失和誤差。
這裏寫圖片描述
這裏寫圖片描述

作者認爲,捷徑連接中的操作 (縮放、門控、1× 1 的卷積以及 dropout) 會阻礙信息的傳遞,以致於對優化造成困難。
而且雖然1× 1的卷積捷徑連接引入了更多的參數,本應該比恆等捷徑連接具有更加強大的表達能力。但是它的效果並不好,這表明了這些模型退化問題的原因是優化問題,而不是表達能力的問題。

接下來,對於激活函數,作者設計了以下幾種形式:
這裏寫圖片描述
實際上只是激活函數(ReLU/BN)的位置有所不同,由於作者希望構建一個恆等的f(yl)=yl ,將激活項分爲了預激活(pre-activation)和後激活(post-activation)。實驗發現,將ReLU和BN都放在預激活中,即full pre-activation在ResNet-110和ResNet-164上的效果都最好。
這裏寫圖片描述
甚至在1001層的ResNet上也克服了過擬合的問題:
這裏寫圖片描述
作者認爲這是由兩方面引起的:第一,由於f 也是恆等映射,優化變得更加簡單(與原始ResNet相比)。第二,在預激活中使用BN能夠提高模型的正則化,從而減少了過擬合的影響。

這篇文章爲深層模型的訓練提供了很好的方式和思路,也促進了深層模型的進一步發展,接下來我將會把這篇文章的譯文提供給大家,也歡迎大家的批評指正。

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