ResNet殘差網絡學習小結

目錄

背景介紹

網絡介紹

殘差網絡起作用的原因

殘差網絡的矩陣維度

殘差網絡的圖像識別

背景介紹

殘差網絡是由何愷明大神提出的一種卷積神經網絡,作者通過152層的殘差網絡獲得2015年ImageNet圖像分類和物體識別的冠軍。

因爲CNN能夠提取low/mid/high-level的特徵,網絡的層數越多,意味着能夠提取到不同level的特徵越豐富。越深的網絡提取的特徵越抽象,越具有實際信息,所以深層網絡一般都比淺層網絡的效果好。比如VGG網絡就是在AlexNet網絡的基礎上通過增加網絡深度而大幅提高了網絡的性能。

對於原來的神經網絡,如果只是簡單地增加深度,則容易出現梯度爆炸或者梯度消失的問題,這個問題的解決方法是使用正則層(Batch Normalization)。

但是對於較深層的神經網絡會出現另外一個問題:退化問題。隨着網絡層數增加,訓練集的準確率出現下降。推測退化問題可能是深層的網絡並不好訓練,分類器很難利用深層網絡擬合同等函數。

網絡介紹

殘差網絡的核心是利用跳躍連接(skip connection),它可以從某一層網絡層獲取激活,然後迅速反饋給另外一層,甚至是神經網絡的更深層。

 ResNet是由殘差塊(residual block)構建的網絡。

 

                                                 

上圖是傳統的神經網絡,下圖多了一條紫色道路,可以直接傳到更深層的網絡。

                                                

                                            

殘差網絡起作用的原因

                                            

當然如果只學習恆等函數並不能提高神經網絡的效果,不過如果這兩個隱藏層單元學習到一些有用的東西,那麼就比學習恆等函數效果更好。而對於不含有殘差塊的深度神經網絡,當網絡深度不斷加深的時候,就算只是學習恆等函數的參數都變得十分困難,所以會出現退化問題,導致很多層最後的表現甚至出現更糟的情況。

換言之,普通深度神經網絡如果深度太深,根據梯度下降算法,離輸出層越遠的隱含層的乘積項會越多(通常會越乘越小),導致這些層的神經元訓練會越緩慢(如果計算機精度不夠的話,可能還會變0)。而殘差網絡是在普通神經網絡基礎上,把兩層或多層的神經元組成一個residual block,將輸入block和從最後一層的輸出相加再通過輸出函數送進下一個block。這樣的好處是,在梯度下降的計算上,偏導數變成了1+原來的乘積項,就不會因爲越乘越小,而出現遠離最終輸出的那層隱含層調參緩慢或甚至無法調參的情況。

殘差網絡的矩陣維度

                                  

Ws矩陣可以是一個包含已學習到的參數的矩陣,也可以是一個填充了許多0的固定矩陣。

殘差網絡的圖像識別

                                       

ResNet就是比普通的VGG多了殘差塊,通過跳躍連接。

 

參考資料:吳恩達老師的深度學習課程和部分網友的總結

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章