一:殘差網路
vgg網路將網路達到了19層的深度,googlenet的深度是22層,一般而言,深度越深,月面臨如下問題:
1:計算量增大
2:過擬合
3:梯度消失和梯度**
4:網路退化
而問題四就得需要殘差網路的思路來解決:
一般而言,網路的深度越深,理想情況下是期望越能獲得更高維度的資料特徵的,理想情況下,越深層的網路是要比淺層的網路要好,起碼不要劣化才對,是否真的是能夠簡單地通過不斷疊加深層網路來獲得效能更優的網路呢?
答案不是的,在實踐中發現,如果僅僅單純的把網路疊起來的深層網路的效果,有時候反而不如合適層數的較淺的網路效果。直觀的表現是,當你再增加網路深度的話,訓練集loss反而會增大,難道不應該是起碼不劣化才對麼?
這時候殘差網路就出現了,它包含了大量的如下所示的殘差塊,重複疊加而成。
這裡將淺層的輸出跳躍式的送到下下面幾層,中間跨了幾層後,和這幾層的運算做累加操作。
這樣做的好處是,即便深層的網路不能很好的訓練,最差也不會劣化到某個淺層網路。從反向傳播的梯度運算上來看,有了這個跳躍,梯度不會下降到很低,避免了出現梯度消失,淺層的網路可以得到引數更新。
說到這裡,有點相似於rnn的思想,將一些已經產生的資料送到了後面的計算層。
上圖是兩個殘差block的示意圖
二,殘差網路的種類
殘差網路有很多版本,有res18,res34,res50等等,後面的數字就是網路層數
比如res18
比如res34
下面給出乙個總結列表
可以照著這個列表,實現出各種的殘差網路,因為存在大量的重複結構,基本的結構樣式都是一致的。
深度殘差網路
深度殘差學習 deep residual learning 的思想 在residual net中 1 identity 為恒等對映,此條路徑一直存在 2 f x 為需要學習的殘差函式 residual function h x x f x 問題的重新表示或預處理會簡化問題的優化 假設我們期望的網路層...
殘差神經網路 殘差網路學習心得
殘差網路介紹 resnets是由殘差塊構建的,首先先解釋一下什麼是殘差塊。這是乙個兩層神經網路在l層進行啟用。計算過程是從a l 開始,首先進行線性啟用 根據這個等式,通過a l 算出z l 1 即a l 乘以權重矩陣再加上偏差因子,然後通過非線性relu啟用得到a l 1 隨後我們再進行線性啟用,...
深度學習理論 殘差神經網路
我們知道,網路層數越深,其表達能力越強,但之前人們並不敢把網路設計的太深,因為會有梯度衰減等各種問題讓網路的效能大幅度下滑,用一些正則化,relu等啟用函式也不能完全避免。但有了殘差網路,人們可以把網路的層數設計的很深,比如幾百層。其基本思想如下 在傳統的平網路 plain network 中,一層...