论文笔记:ResNet v2
生活随笔
收集整理的這篇文章主要介紹了
论文笔记:ResNet v2
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ResNet v2
1、四個問題
- 進一步提高ResNet的性能。
- 解釋為何Identity mapping(恒等映射)的效果會比較好。
- 提出了一個新的殘差單元結構。
- 從理論和實驗上分析了identity mapping的有效性。
- 使用1001層的ResNet,在CIFAR-10數據集上錯誤率為4.62%,在CIFAR-100數據集上錯誤率為22.71%。都是目前最好的結果。
- ImageNet 2012數據集上,top-1錯誤率為20.1%,top-5錯誤率為4.8%,超過Inception v3,也是最優結果。
- ResNet模型可以有極深的深度,更強大的學習能力,同時也會帶來更多的參數,更大的計算量,如何對其進行壓縮,降低計算成本也是個需要考慮的問題。
2、論文概述
2.1、簡介
- 上式是原始殘差單元,公式參數說明:
- xlx_lxl?和xl+1x_{l+1}xl+1?分別是第lll層網絡的輸入和輸出。
- FFF表示殘差函數。
- h(xl)=xlh(x_l) = x_lh(xl?)=xl?表示恒等映射(identity mapping)。
- fff表示ReLU函數。
- 后面默認認為h(xl)=xlh(x_l) = x_lh(xl?)=xl?,f(yl)=ylf(y_l) = y_lf(yl?)=yl?。
- 原始殘差單元結構如a圖所示,改進的殘差單元結構如b圖所示。
- 為了理解跳躍連接(skip connection)的作用,作者實驗了各種不同的h(x)h(x)h(x)(identity mapping),即圖中的灰色線部分。最終的實驗結果表明,保持一個clean information path有助于提升效果。
- 提出了預激活(pre-activation)和后激活(post-activation)。
- 預激活:bn -> relu -> conv
- 后激活:conv -> bn -> relu
- 在新的殘差結構中改進如下:
- 將激活函數放到旁路,從shortcut中移除,保證clean information path。
- 旁路中的結構從 conv-bn-relu(后激活) 轉換為 bn-relu-conv(預激活)。
2.2、關于深度殘差網絡結構的分析
- 原始殘差單元的數學表示,符號意義不做贅述。
- 假設h(xl)=xlh(x_l) = x_lh(xl?)=xl?(恒等映射),f(yl)=ylf(y_l) = y_lf(yl?)=yl?(激活函數也是一個恒等映射)。
- 循環套用xl+2=xl+1+F(xl+1,Wl+1)=xl+F(xl,Wl)+F(xl+1,Wl+1)x_{l+2} = x_{l+1} + F(x_{l+1}, W_{l+1}) = x_l + F(x_l, W_l) + F(x_{l+1}, W_{l+1})xl+2?=xl+1?+F(xl+1?,Wl+1?)=xl?+F(xl?,Wl?)+F(xl+1?,Wl+1?),可以得到下式:
- 按照鏈式法則求導:
- 公式說明:
- ?\epsilon?是loss函數值。
- 根據鏈式求導法則,可以求出梯度,如上式所示。
- 梯度???xl\frac{\partial \epsilon}{\partial x_l}?xl????可以拆分成兩部分:對于第LLL層的梯度,???xL\frac{\partial \epsilon}{\partial x_L}?xL????;以及每一層卷積層所擬合的殘差函數對應的梯度,???xL??xl∑i=lL?1F(xi,Wi)\frac{\partial \epsilon}{\partial x_L} \frac{\partial}{\partial x_l} \sum_{i=l}^{L-1}F(x_i, W_i)?xL?????xl???∑i=lL?1?F(xi?,Wi?)。
- 對于普通的沒有shortcut連接的網絡來說,只存在???xL??xl∑i=lL?1F(xi,Wi)\frac{\partial \epsilon}{\partial x_L} \frac{\partial}{\partial x_l} \sum_{i=l}^{L-1}F(x_i, W_i)?xL?????xl???∑i=lL?1?F(xi?,Wi?)這一項,而對于ResNet來說,則額外引入了???xL\frac{\partial \epsilon}{\partial x_L}?xL????。???xL\frac{\partial \epsilon}{\partial x_L}?xL????的存在確保了較深層網絡的梯度可以傳遞到較淺層網絡去。
- 其實另外還有一點,引入了shortcut還減少了梯度消散的可能性。因為除非???xL??xl∑i=lL?1F(xi,Wi)\frac{\partial \epsilon}{\partial x_L} \frac{\partial}{\partial x_l} \sum_{i=l}^{L-1}F(x_i, W_i)?xL?????xl???∑i=lL?1?F(xi?,Wi?)總是等于-1,梯度才會為0,然而殘差函數不太可能全部為-1。
- 作者還給出了一個反例,說明為何要選擇恒等映射。這里就直接貼圖了,細節請參考論文。
- 大致意思是:如果這個λi>1\lambda_i > 1λi?>1,隨著梯度傳播會以指數級數增長;如果λi<1\lambda_i < 1λi?<1,隨著梯度傳播會以指數級數衰減。只有在λi=1\lambda_i = 1λi?=1,即恒等映射(identity mapping)的情況下,梯度才可以較好的保持,避免梯度消失和梯度爆炸。
2.3、實驗
2.3.1、驗證恒等映射的有效性
- 作者使用下面的這些結構分別進行了實驗,最后發現恒等映射的結果最好,實驗結果見table1。
2.3.2、驗證預激活的有效性
- 預激活結構和后激活對比實驗,從實驗結果可以看出預激活的效果是最好的。
2.3.3、在一些benchmark數據集上的效果
- CIFAR-10和CIFAR-100
- imagenet 2012
3、參考資料
總結
以上是生活随笔為你收集整理的论文笔记:ResNet v2的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 论文笔记:FCN
- 下一篇: 论文笔记:ZFNet