殘差網路(Residual Networks, ResNet)。ResNet 是卷積神經網路的一種變體,通過引入「殘差塊」(residual blocks),解決了深層網路中的訓練困難和梯度消失問題,並在許多計算機視覺任務中取得了突破性的成果。

為什麼需要殘差網路?

隨著神經網路的層數不斷增加,深層網路在理論上應該能夠學習更複雜的特徵。但當網路變得非常複雜時,會面臨兩個主要問題:

  1. 梯度消失(Vanishing Gradient Problem):在深層網路中,反向傳播過程中梯度可能變得極小,導致前面的層無法有效更新參數,這使得網路無法學習到有用的表示。
  2. 退化問題(Degradation Problem):隨著網路深度增加,準確率反而下降,並非單純的「越深越好」。即使我們在淺層網路的基礎上疊加更多層,也無法改善結果,這是因為更深的網路可能難以訓練。

為了解決這些問題,殘差網路(ResNet) 引入了一種「殘差學習」機制。


殘差學習的數學表達

ResNet 的核心思想是:與其讓每一層直接學習輸入到輸出的映射,我們讓每一層學習殘差,即輸入和輸出的差異。數學上,可以將每一層的學習目標表達為:

$$ H(x) = F(x) + x $$

其中:

這個公式表明,輸出 $H(x)$ 是輸入 $x$ 和殘差 $F(x)$ 的和。這種結構的引入有助於網路學習到更有效的表示,並緩解了梯度消失問題。


殘差塊結構

在 ResNet 中,殘差塊(Residual Block) 是其基本單位。殘差塊的設計原理非常簡單:它包括一個「快捷連接」(skip connection),即將層的輸入直接傳遞到輸出,而不是經過所有的權重層。

一個典型的殘差塊可以表達為:

$$ y = \text{ReLU}(F(x, \{W_i\}) + x) $$