1. 程式人生 > >《白話深度學習與Tensorflow》學習筆記(4)Deep Residual Networks

《白話深度學習與Tensorflow》學習筆記(4)Deep Residual Networks

深度殘差網路:主要應用於計算機視覺——影象分類、語義分割(semantic segmentation)、目標檢測(object detection),其主要是使用CNN進行改造。何愷明老師有一篇文獻《Deep Residual Networks——Deep learning Gets Way Deeper》。

普通CNN網路的問題(plain network):一層的網路資料只能來源於前一層,網路越深,學習到的東西就越多,收斂速度越慢,時間越長,但是由於網路深度

加深而產生學習率變低,準確率無法提升(出現了網路退化)。

其本質是由於資訊丟失而產生了過擬合的問題。對於CNN而言,每層經過卷積,都會產生有失真壓縮的情況(降取樣 down sampling),就是在向量通過網路的過程中經過濾波處理,產生的效果是讓輸入向量輸出後具有更小的尺寸,卷積和池化都可以作為降取樣的工具。

在深度殘差網路中,引入了短路設計,將前若干層的資料輸出直接跳過多層(一般為2層)而引入到後面的資料層的輸入部分。就是前面層的較為清晰的向量資料會和後面有失真壓縮過的資料共同作為後面資料的輸入。示意圖如下:

;


殘差網路結構元

這樣就引入了更豐富的參考資訊或者豐富的特徵維度。

Residual network是一種力求簡潔的設計方式,單純加深網路,而且絕不在隱藏層中設計全連線層,也不使用Dropout機制。

ImageNet Classification 達到152層。

正向傳遞:

短路層引入後產生平滑的正向傳遞過程:


也就是後面任何一層XL向量的內容會有一部分由前面的某一層xl線性貢獻。

殘差反向傳遞:

定義殘差E(Loss):


用鏈式求導對殘差過程進行求解:


這一項:


使得:



的過程是一個線性疊加的過程,而非連乘,可以減少梯度消失的現象。

拓撲解釋:

短接項相當於把所有的一個一個網路短接了過去,這些短接過去的部分其實又形成了新的拓撲結構。如下圖所示:


相當於多個不同的網路模型做了並聯融合。

Keras這種框架包含了不同的shortcut,一種帶有卷積項,一種不帶。

網路發生類似並聯的情況是會提高網路本身學習的容納能力!