論文筆記——Deep Residual Learning for Image Recognition


論文地址:Deep Residual Learning for Image Recognition

ResNet——MSRA何凱明團隊的Residual Networks,在2015年ImageNet上大放異彩,在ImageNet的classification、detection、localization以及COCO的detection和segmentation上均斬獲了第一名的成績,而且Deep Residual Learning for Image Recognition也獲得了CVPR2016的best paper,實在是實至名歸。就讓我們來觀摩大神的這篇上乘之作。

ResNet最根本的動機就是所謂的“退化”問題,即當模型的層次加深時,錯誤率卻提高了,如下圖:

但是模型的深度加深,學習能力增強,因此更深的模型不應當產生比它更淺的模型更高的錯誤率。而這個“退化”問題產生的原因歸結於優化難題,當模型變復雜時,SGD的優化變得更加困難,導致了模型達不到好的學習效果。

針對這個問題,作者提出了一個Residual的結構:

即增加一個identity mapping(恆等映射),將原始所需要學的函數H(x)轉換成F(x)+x,而作者認為這兩種表達的效果相同,但是優化的難度卻並不相同,作者假設F(x)的優化 會比H(x)簡單的多。這一想法也是源於圖像處理中的殘差向量編碼,通過一個reformulation,將一個問題分解成多個尺度直接的殘差問題,能夠很好的起到優化訓練的效果。
這個Residual block通過shortcut connection實現,通過shortcut將這個block的輸入和輸出進行一個element-wise的加疊,這個簡單的加法並不會給網絡增加額外的參數和計算量,同時卻可以大大增加模型的訓練速度、提高訓練效果,並且當模型的層數加深時,這個簡單的結構能夠很好的解決退化問題。
接下來,作者就設計實驗來證明自己的觀點。
首先構建了一個18層和一個34層的plain網絡,即將所有層進行簡單的鋪疊,然后構建了一個18層和一個34層的residual網絡,僅僅是在plain上插入了shortcut,而且這兩個網絡的參數量、計算量相同,並且和之前有很好效果的VGG-19相比,計算量要小很多。(36億FLOPs VS 196億FLOPs,FLOPs即每秒浮點運算次數。)這也是作者反復強調的地方,也是這個模型最大的優勢所在。

模型構建好后進行實驗,在plain上觀測到明顯的退化現象,而且ResNet上不僅沒有退化,34層網絡的效果反而比18層的更好,而且不僅如此,ResNet的收斂速度比plain的要快得多。

對於shortcut的方式,作者提出了三個選項:
A. 使用恆等映射,如果residual block的輸入輸出維度不一致,對增加的維度用0來填充;
B. 在block輸入輸出維度一致時使用恆等映射,不一致時使用線性投影以保證維度一致;
C. 對於所有的block均使用線性投影。
對這三個選項都進行了實驗,發現雖然C的效果好於B的效果好於A的效果,但是差距很小,因此線性投影並不是必需的,而使用0填充時,可以保證模型的復雜度最低,這對於更深的網絡是更加有利的。
進一步實驗,作者又提出了deeper的residual block:

這相當於對於相同數量的層又減少了參數量,因此可以拓展成更深的模型。於是作者提出了50、101、152層的ResNet,而且不僅沒有出現退化問題,錯誤率也大大降低,同時計算復雜度也保持在很低的程度。
這個時候ResNet的錯誤率已經把其他網絡落下幾條街了,但是似乎還並不滿足,於是又搭建了更加變態的1202層的網絡,對於這么深的網絡,優化依然並不困難,但是出現了過擬合的問題,這是很正常的,作者也說了以后會對這個1202層的模型進行進一步的改進。(想想就可怕。)

在文章的附錄部分,作者又針對ResNet在其他幾個任務的應用進行了解釋,畢竟獲得了第一名的成績,也證明了ResNet強大的泛化能力,感興趣的同學可以好好研究這篇論文,是非常有學習價值的。

轉至:http://blog.csdn.net/wspba/article/details/56019373


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM