解決的問題:
由於梯度消失,深層網絡很難訓練。因為梯度反向傳播到前面的層,重復相乘可能使梯度無窮小。結果就是,隨着網絡的層數更深,其性能趨於飽和,甚至迅速下降。
核心思想:
引入一個恆等快捷鍵(也稱之為跳躍連接線),直接跳過一個或者多個層。如圖一
圖一
當有這條跳躍連接線時,網絡層次很深導致梯度消失時,f(x)=0,y=g(x)=relu(x)=x
1. 在網絡上堆疊這樣的結構,就算梯度消失,我什么也學不到,我至少把原來的樣子恆等映射了過去,相當於在淺層網絡上堆疊了“復制層”,這樣至少不會比淺層網絡差。
2. 萬一我不小心學到了什么,那就賺大了,由於我經常恆等映射,所以我學習到東西的概率很大。
關於為什么殘差結構(即多了一條跳躍連接線后)為什么一定程度緩解了梯度消散的數學推導:
相加是尺寸一樣時才可以相加,尺寸一樣時如上述,當尺寸不一樣時,
而所謂Resnet-18,Resnet-50,等,不過是層數不一罷了,如下圖,慣用的是Resnet-50與101
一些注釋:
每個卷積模塊的第一層,卷積,要做下采樣,使分辨率降低,即高和寬減半,同時會讓深度隨之增加,用3*3的卷積核,步幅為2即可完成下采樣,1*1的卷積核步幅為2進行下采樣的話會因為跳過造成數據損失。