跳躍連接 是什麼?
Skip Connections:跳躍連接 的完整解釋
直接連接網路中相隔若干層的神經元,允許梯度和信息跳過中間層流通,改善深層網路的梯度流動和訓練穩定性。
核心概念
跳躍連接(Skip Connections)是現代深度學習架構的基石。傳統深層網路面臨的根本問題是梯度消失:反向傳播時,梯度通過許多層的乘法,若激活函數導數小於 1,梯度會指數衰減,導致早期層幾乎得不到更新,網路無法有效訓練。
跳躍連接巧妙地解決了這一問題。通過在網路中加入直接路徑,梯度可以沿著這些路徑快速回傳,避免衰減。同時,跳躍連接改變了網路的學習目標:不再學習完整的輸入到輸出映射,而是學習殘差(輸出與輸入的差異),這通常更容易學習。
跳躍連接的理論解釋是:網路無需從零開始學習每一層的映射,而是在輸入基礎上學習小的修正。這使網路能並行學習多個尺度的特徵,從粗到細逐漸精化。
運作原理
跳躍連接的基本形式是恆等映射:
y = F(x) + x
其中 x 是輸入,F(x) 是網路層的輸出(包括卷積、批規範化、激活等),y 是最終輸出。網路 F 學習的是殘差 F(x),而非完整映射 y。
跳躍連接可跨越不同數量的層。最簡單的形式跨 2-3 層(如 ResNet 中的基本塊);複雜的形式可跨許多層(稠密連接)或跨越網路的不同部分(U-Net)。
當輸入和輸出維度不同時(如通道數或空間大小不同),跳躍連接需要投影層來匹配維度,可用 1×1 卷積或線性變換實現。
跳躍連接的優勢體現在幾個方面。首先,梯度流動:梯度沿著跳躍路徑直接傳回,避免消失。其次,特徵複用:後層可直接使用早期層的特徵,無需重新學習相同的表示。再次,訓練穩定性:殘差學習目標更平緩,優化景觀更光滑。最後,模型表達能力:組合主分支和跳躍分支可表達更複雜的非線性函數。
實際應用
跳躍連接已成為主流架構的標配。ResNet 系列(152 層、1001 層)通過跳躍連接成為了深度學習的標準。U-Net 在醫療影像分割中使用跳躍連接連接編碼器和解碼器,大幅提升分割精度。Transformer 中多頭注意力也可視為一種跳躍連接。
DenseNet 進一步推廣了跳躍連接,使每層與所有後續層連接,實現最大化的特徵複用。ResNeXt、EfficientNet、Vision Transformer 等現代架構都包含跳躍連接。
在實踐中,跳躍連接使深度網路訓練成為可能。沒有跳躍連接,1000 層的網路無法有效訓練;有了跳躍連接,訓練變得平穩。
常見誤區
許多人認為跳躍連接只對極深的網路(100+ 層)有用,但實際上即使中等深度的網路(50 層)也從跳躍連接中獲益。跳躍連接的優勢不只是解決梯度消失,還包括特徵複用和學習目標改善。
另一個誤區是認為所有跳躍連接設計都等價。實際上,跳躍距離、跳躍方式(加法、連接、其他融合)、跳躍連接的稠密程度都有影響。跳躍距離過短可能冗餘,過長可能信息不足;跳躍距離的最優值取決於網路深度和任務。
此外,跳躍連接不是靈丹妙藥。它提升了深層網路的可訓練性,但無法彌補極差的超參數選擇或數據質量問題。此外,在某些特殊架構(如 AutoEncoder)中,跳躍連接可能干擾學習,需要謹慎使用。
與相關技術的比較
- 與批規範化:批規範化通過規範化激活改善梯度流,跳躍連接通過提供直接路徑,兩者常組合使用
- 與注意力機制:注意力允許自適應地加權不同位置的信息,跳躍連接提供固定的信息路徑
- 與稠密連接:稠密連接是跳躍連接的推廣,每層與所有後續層連接
- 與門控機制:門控可學習地控制信息流,跳躍連接無條件傳輸
- 與循環結構:循環網路的隱藏狀態傳遞類似於跳躍連接,允許信息跨時間步傳遞