1. 程式人生 > >深度學習: ResNet (殘差) 網路

深度學習: ResNet (殘差) 網路

Introduction

添加了一些直達通道,相當於加入了約束。使得某些原本就應為identity mapping的module,直接獲得identity mapping的能力。

起因

2015年之前,在層數不多的深度網路模型中,人們通過 設定 合理的權重初始化改進啟用函式 等等一系列手段,有效緩解了梯度消失,使得深度網路訓練變得可行。

於是煉丹師們覺得,簡單地累加網路層,訓練誤差(低誤差意味著更強大的表達能力)在模型收斂後maybe會進一步降低。結果不僅沒有,誤差反而更大了(下圖為20層和56層的常規網路在CIFAR-10資料集上的 訓練錯誤率[左圖]測試錯誤率[右圖]):
這裡寫圖片描述

研究發現,原來 如果繼續加大網路的層數,梯度消失這貨就會又跑出來作祟了。原來那些對應措施已經不夠用了,是時候開始鳥槍換炮了。

於是 ResNet (殘差) 網路 在2015年便應運而生:
這裡寫圖片描述

殘差模組

殘差網路是由下面這種 殘差模組 壘疊而成:
這裡寫圖片描述

殘差模組 又分為 常規殘差模組[左圖]瓶頸殘差模組 (bottleneck residual block)[右圖]
這裡寫圖片描述

瓶頸殘差模組 中的1×1卷積能夠起到升降維的作用,從而令3×3卷積可以在較低維度的輸入上進行。在非常深的網路中,該設計可大幅減少計算量。

殘差網路

由於 殘差模組 的引入,有效緩解了梯度消失的影響,使得網路模型層數可以大大增加。

下圖為 ResNet-34網路VGG-19網路 的深度對比:
這裡寫圖片描述

下圖為 ResNet-152網路VGG-19網路 的深度對比。深度差距就更誇張了:
這裡寫圖片描述

隨著層數的加深,模型的表達能力自然跟著水漲船高:
這裡寫圖片描述

ResNet橫掃當年 ILSVRC 和 COCO 等競賽一系列子任務的第一名,成為網路結構的主流,並影響至今。

Version

ResNet自身也有多個版本。基本上是層數越深,誤差越小,模型表達能力越強:
這裡寫圖片描述