# ResNet:Deep Residual Learning for Image Recognition Kaiming He , Xiangyu Zhang , Shaoqing Ren , Jian Sun (CVPR 2015) https://arxiv.org/abs/1512.03385 ## 1. 研究目的 ![螢幕擷取畫面 2025-08-27 161111](https://hackmd.io/_uploads/rJgFfS2txg.png) >圖1. CIFAR-10 上 20 層與 56 層「plain」網路的訓練誤差(左)與測試誤差(右)。較深的網路反而有更高的訓練誤差,因此測試誤差也更高。在 ImageNet 上也觀察到類似現象。 傳統神經網路存在退化問題:當神經網路層數大時,深層網路無法學到有用的特徵,輸出趨近於輸入,接近恆等映射。 此時最好的辦法是將恆等映射直接傳入下一層,然模型因權重、偏差、活化函數的組合,反而可能讓輸出偏離輸入,造成訓練更困難、誤差上升。故研究團隊提出殘差學習方法以應對退化問題。 ## 2. 研究方法 ![螢幕擷取畫面 2025-08-27 160249](https://hackmd.io/_uploads/rJmdMS2Keg.png) >圖2. 殘差學習(Residual Learning)的基本構件。 ResNet 最初為分類任務設計。為解決傳統神經網路的退化問題,ResNet 利用殘差結構,使對此次訓練任務幫助不大的層之輸出 = 輸入 + 該層殘差函數,完美將恆等映射傳入下一層,避深層網路中「一定要學到某種轉換」的負擔。 若殘差函數值大:該層需要做較大的特徵轉換。若殘差函數值小或接近 0:該層對任務幫助不大,輸出 = 輸入 + 該層殘差函數,再傳入下一層。 * 殘差函數公式: $F(x)=H(x)−x$ * 參數說明: | 符號 | 名稱 | 定義/角色 | 常見形狀(例:卷積網路) | 訓練與直覺備註 | | ------ | -------- | ---------------------- | ------------------------------ | ------------------------------------------------------------ | | $x$ | 殘差塊輸入 | 該殘差塊接收到的特徵張量 | $B \times C \times H \times W$ | 作為「基準」訊號;經由捷徑(skip/identity)直接與殘差相加。 | | $H(x)$ | 目標(理想)映射 | 希望網路把 $x$ 轉成的輸出 | 與 $x$ 同形狀 | 以殘差形式實作為 $H(x)=x+F(x)$。 | | $F(x)$ | 殘差函數/修正量 | 在「保持 $x$ 不變」基礎上需要學到的補償 | 與 $x$ 同形狀 | 由可學參數的分支產生(如 Conv–BN–ReLU…)。若最佳解接近恆等映射,令 $F(x)\approx 0$ 即可。 | ## 3. 實驗結果 ![螢幕擷取畫面 2025-08-27 162221](https://hackmd.io/_uploads/S1N7br2tel.png) >圖3. 各種模型集成的錯誤率 (%)。Top-5 錯誤率是在 ImageNet 測試集上,由官方測試伺服器回報的結果。 在 ImageNet 2015 上,ResNet-152 達到 3.57% Top-5 error,當時刷新紀錄。在 CIFAR-10、COCO 上,也大幅超越 VGG、GoogLeNet 等前一代模型。 ## 4. 結論 * ResNet 證明了擁有超過 1000 層的神經網路可以透過殘差結構成功訓練,而不會像傳統神經網路遭遇退化問題。 * ResNet 最初用於分類任務,但隨著技術發展,也在 Faster R-CNN、Mask R-CNN、GAN 等應用中成為核心基礎技術。