1. 程式人生 > >【機器學習】【Deep Residual Learning】

【機器學習】【Deep Residual Learning】

Deep Residual Learning

深度神經網路在訓練過程中容易產生梯度消失,梯度爆炸的問題。在Batch Normalization中,我們將輸入資料由啟用函式的收斂區調整到梯度較大的區域,在一定程度上能緩解這種問題。但是,當網路層數急劇增加,BP演算法中導數累乘還是容易出現這種問題。而深度殘差學習網路可以說是根治了這種問題。

為什麼Deep Residual Learning能解決這種問題?BP過程建議親自推導一下,很容易就發現,在求導過程中會出現一個隨著層數增加而累乘導數的現象,我們儘可能控制每個導數的值,使它儘量接近1,這樣累乘結果不會太小,也不會太大。

殘差網路中的一個殘差塊(block):

簡單的神經網路(將其假設為一條鏈):

深度殘差網路

左圖為plain network,表示這個網路很“平”,也就是普通的網路,右邊是一個完整的深度殘差網路。它其實就是由前文所說的小的網路結構組成的,虛線表示要對 xx 的維度進行擴增。作者在兩個網路中都加了 Batch Normalization(具體加在卷積層之後,啟用層之前),我想目的大概是要在之後的實驗中凸顯 residual learning 優於 BN 的效果吧。

下面分析一下 identity mapping 對殘差網路所起的作用,通過這個最簡單的對映來了解 residual learning 不同於一般網路的地方。

首先,給出最通用的網路結構: