天天看點

深度殘差網絡之讨論-緣何加x可以避免梯度消失?

1.概述

本文檔介紹MobileNet裡使用的深度殘差網絡理論,内容主要來源于Deep Residual Learning for Image Recognition一文。

十裡桃園首發,轉載請注明

  1. Why深度殘差?

理論上來說,增加網絡的寬度和深度可以提高網絡的性能,層數深的網絡往往較之淺的網絡性能好。如深層x層網絡A和淺層y層網絡B,那A的性能至少能與B一樣。假設網絡A的前y層和B網絡相同,那麼後面的x-y層網絡隻需做等價映射,就達到了A網絡一樣的效果。

但基于實驗表明,并非如此,由于網絡層數達到了一定的數目以後,網絡的性能趨于飽和,此時再增加網絡深度,其訓練和測試誤差會因過拟合以外原因性能退化。此問題稱為Degradation問題。

  1. 深層網絡性能退化

3.1.權重訓練與BP神經網絡

在深度神經網絡的權重訓練過程中,賦予初始權重會同樣本送入神經網絡,逐層傳遞至輸出層。若輸出層的實際輸出與期望輸出不同,則輸出誤差進行BP反向傳播至輸入層,在BP的過程中将誤差分攤給各層,以修正各層權重,使得如此反複使得誤差信号減小到最低限度。

3.2.深層網絡的BP梯度消失

記網絡期望輸出為E,則在傳統神經網絡中其輸出層Loss可求:

深度殘差網絡之讨論-緣何加x可以避免梯度消失?

Where : N為目前層數,X前層輸出,W為權重,b為偏置

則其梯度的實體意義等價于loss對前層輸出求偏導:

深度殘差網絡之讨論-緣何加x可以避免梯度消失?

上式為最後N層的反向傳遞梯度,那麼Losso 傳遞到第一層的偏導不難被判斷為是連層N-1次偏導計算所得,Losso本就是極小值,在網絡層數加深的情況下,其傳遞到網絡起始幾層的信号也将越來越弱。

随着信号越來越弱,BP梯度出現梯度消失,進而導緻層數加深反而性能下降的現象出現。

  1. 深度殘差

4.1.恒等映射疊加

梯度消失來源于BP梯度在傳遞的過程中衰減趨近于0,進而無法解析。是以若BP梯度恒大于1,則不會出現梯度消失的問題。為了解決梯度消失問題,深度殘差網絡引入了深度殘差塊,在原來的梯度基礎上做了一個恒等疊加,其圖示如下:

深度殘差網絡之讨論-緣何加x可以避免梯度消失?

圖.1 殘差塊

如上圖,x為前層輸出,疊加在權重函數上。在下一層對x求導時,這一項恒為1,再做BP傳播時,其梯度恒大于1。

這樣出現一個論文作者沒有讨論,而是用實驗結論代替的問題。對于當L-1層:

其導數應為:

深度殘差網絡之讨論-緣何加x可以避免梯度消失?
深度殘差網絡之讨論-緣何加x可以避免梯度消失?

對于L-2層:

深度殘差網絡之讨論-緣何加x可以避免梯度消失?
深度殘差網絡之讨論-緣何加x可以避免梯度消失?

是以即使傳到到第一層,其值也遠遠不為0。而是前面各層的權重對于第一層的偏導之和再與1相加。

4.2.瓶頸殘差子產品

殘差對網絡深度的支援超過100層甚至達到1000層,其運算量成為一個越來越嚴峻的問題。為了降低運算量,伴随着殘差網絡,提供了名為Bottleneck Block瓶頸殘差子產品的解決模式。其圖示如下:

深度殘差網絡之讨論-緣何加x可以避免梯度消失?

圖.2 Bottleneck Block

如圖.2,右側為基本的殘差塊,左側為瓶頸殘差塊,其差異為在Bottleneck Block中,先對其下采樣,卷積之後在上采樣以降低運算量。

在MobileNetV2中依循Bottleneck Block提出反向殘差的思路,與殘差網絡不同的是,其目的是通過反向的殘差塊來提升檢測精度。

繼續閱讀