1. 跳躍連接(Skip Connection)的基本概念
跳躍連接是一種在深度神經網絡中廣泛應用的技術,它允許信息在網絡中跨層直接傳遞。在傳統的神經網絡里,每一層的輸出僅僅是前一層輸出經過特定變換后的結果。而在具備跳躍連接的網絡中,某一層的輸出不僅能夠包含前一層的變換結果,還可以直接包含更早層的輸出。
在殘差網絡(ResNet)里,跳躍連接的核心結構為殘差塊。假設輸入為?,經過一系列非線性變換(像卷積、激活函數等)后得到?
,殘差塊的輸出?
?由以下公式給出:
?
2. 從反向傳播角度看梯度穩定
在神經網絡的訓練過程中,反向傳播算法用于計算損失函數關于網絡參數的梯度,以此來更新參數。梯度消失和梯度爆炸是深度神經網絡訓練時常見的問題。當網絡層數極深時,梯度在反向傳播過程中會不斷地進行連乘操作,要是梯度值小于 1,經過多層連乘后就會趨近于 0,這便是梯度消失;要是梯度值大于 1,經過多層連乘后就會變得非常大,這就是梯度爆炸。
現在,我們從反向傳播的角度來分析跳躍連接對梯度的影響。假設損失函數為???,對輸出?
?求梯度可得:
由于?,所以
那么
3. “梯度上加 1 的常數項” 對梯度穩定的作用
- 避免梯度消失:在沒有跳躍連接的情況下,梯度
僅僅是
。要是
的值非常小,經過多層反向傳播后,梯度就會趨近于 0。然而,在有跳躍連接時,多了一個常數項
。即便?
趨近于 0,梯度
至少還有
這一部分,不會完全消失。
- 平滑梯度更新:在反向傳播過程中,梯度的波動可能會很大,這會使訓練過程變得不穩定。跳躍連接添加的常數項能夠在一定程度上平滑梯度的更新。因為這個常數項的存在,梯度不會因為
的微小變化而產生劇烈的波動,進而讓訓練過程更加穩定。
4. 直觀示例
我們可以把神經網絡的每一層想象成一個信息處理的階段。在傳統網絡中,信息必須一層一層地傳遞,要是某一層的處理出現問題(例如梯度消失),后續層就很難接收到有效的信息。而跳躍連接就像是一條 “捷徑”,信息能夠直接跳過某些層。從梯度的角度來看,跳躍連接提供了另一條梯度傳播的路徑,使得梯度不會因為某一層的變換而完全丟失或者變得不穩定。
綜上所述,跳躍連接通過在梯度計算中引入常數項 1,有效地避免了梯度消失問題,平滑了梯度更新,從而增強了深度神經網絡訓練過程中梯度的穩定性。
5.殘差連接(Residual Connection)
跳躍連接(Skip Connection)和殘差連接(Residual Connection)在很多情況下被視為等同概念,但嚴格來說,二者既有聯系又有區別,下面為你詳細分析:
聯系
在大多數深度學習的討論場景中,跳躍連接和殘差連接可以互換使用,它們核心思想一致。殘差連接是跳躍連接在殘差網絡(ResNet)里的具體應用形式。二者都旨在解決深度神經網絡訓練過程中梯度消失和梯度爆炸的問題,通過讓網絡中的信息跨層直接傳遞,來保留更多原始特征,增強網絡的學習能力。
在數學形式上,它們也具有相似性。以常見的殘差塊為例,假設輸入為,經過一系列非線性變換(如卷積、激活函數等)后得到
,殘差塊的輸出
可以表示為:
這里的直接跨越了
這部分網絡層,這既是殘差連接的體現,也符合跳躍連接的定義。
區別
- 概念范疇:跳躍連接是一個更寬泛的概念,它描述的是信息可以跨越網絡中的某些層進行傳遞的這種連接方式。只要存在信息不按照常規的逐層傳遞,而是跳過部分層的情況,都可以稱為跳躍連接。而殘差連接是一種特定類型的跳躍連接,它在跳躍連接的基礎上,強調了殘差學習的思想,即學習輸入
與期望輸出之間的殘差?
。
- 應用場景和目的側重:跳躍連接的應用場景更為廣泛,它可以應用于各種類型的神經網絡架構中,目的是為了促進信息的流動、緩解梯度問題等。例如,在 U-Net 網絡中也使用了跳躍連接,主要是為了在解碼器部分恢復圖像的細節信息,將編碼器部分的特征圖直接傳遞到解碼器對應層。而殘差連接主要應用于以 ResNet 為代表的殘差網絡中,側重于通過殘差學習讓網絡更容易學習到輸入與輸出之間的映射關系,從而可以訓練更深層次的網絡。
綜上所述,雖然跳躍連接和殘差連接在很多情況下含義相近,但殘差連接是跳躍連接的一種具體且有特定目的的應用形式。