ResNet残差网络——Deep Residual Learning for image recongnition
作者簡介——何凱明
2003 年廣東省理科高考狀元(2000后的業界翹楚的狀元郎),2016年前在微軟亞洲研究院,2016后在Facebbok AI 研究院。
知名論文:
motivation
研究人員開始意識到在深度神經網絡里面,深度depth是影響網絡性能最重要的一個元素。但是簡單的在淺層網絡堆疊新的神經層的做法會有問題:
為了解決上述問題,一個na?ve的想法是:在淺層網絡的基礎上再加一層網絡,只不過這層網絡很特殊:它是一個恒等映射,相當于就是把原淺層網絡的輸出原模原樣的在本層輸出。因為它是一個恒等映射層,所以他的訓練誤差啥的不會比淺層網絡更差。
但是這種na?ve 的方法是指望網絡自己把這新加的一層學成一個恒等映射。這是相當困難的。
方法
為了解決超深的神經網絡的degradation的問題,何凱明在那個na?ve 的思想的基礎上,提出顯式指定新加這一層就是個近似恒等映射 而不是去指望網絡自己會擬合成一個恒等映射的思想。他把這個叫做殘差學習。
換句話說:原來na?ve 的想法是讓新的一層學習得到一個函數 F ( x ) F(x) F(x),只不過我們想讓 F ( x ) = H ( x ) F(x)=H(x) F(x)=H(x),其中 H ( x ) = x + ? H(x)=x+\epsilon H(x)=x+? 是個近似恒等映射。
現在何凱明變化一個思路,讓這個新的層學習到的函數為: F ( x ) = H ( x ) ? x F(x)=H(x)-x F(x)=H(x)?x, H ( x ) H(x) H(x) 是我們想要學習的目標函數,而 F ( x ) F(x) F(x)是網絡擬合的結果。當 F ( x ) F(x) F(x)趨于零的時候, H ( x ) ? x ≈ 0 H(x)-x \approx 0 H(x)?x≈0,那么我們就可以得到一個近似的恒等映射了。
Figure2 圖顯示了殘差網絡的核心結構。 x x x是原來淺層網絡的輸入,后面兩層是
新加的網絡。這個網絡學的一個函數 F ( x ) F(x) F(x)然后在輸出的地方讓 F ( x ) F(x) F(x)逐元素與 x x x相加。這么做的好處:與na?ve 方法相比 F ( x ) F(x) F(x)更容易趨于0。
實驗結果
resnet與plain-net
plainnet指的是那種直接不斷堆疊網絡層的深度網絡,沒有使用殘差的那種網絡。
Resnet在網絡深度加深的時候,不會出現degradation的問題。
當網絡不是很深的時候,例如網絡為18層,resnet和普通的網絡泛化能力類似。但是resnet在訓練前期會更快收斂。然而最終他們收斂使用的時間是差不多的。
不同加和方法的影響
如Figure 2所示,resnet有一個 F ( x ) + x F(x)+x F(x)+x的操作,當 F ( x ) F(x) F(x)與 x x x的維度相同的時候
可以直接逐元素加。但如果 F ( x ) F(x) F(x)與 x x x維度不同時,有兩種策略
Table3 第二部分:
- A:使用填充方法加和
- B:在F(x)與X維度不同時,使用線性變換的方法加和。
- C:不管F(x),x維度是否相同,加和前都讓x線性變換到與F(x)同維度。
結果顯示差別不大,還是使用A方式比較好,不會增大計算量。
ImageNet 2015測試結果
分析:
其他任務
作者又拿著ResNet去CIFAR-10上跑了。為的是驗證殘差網絡是通用的,而不僅僅只適用于ImageNet這一個數據集。
實驗結果很好,resNet 32層就吊打其他最好模型了。
ResNet達到1202層后,出現了過擬合。因為他的測試誤差比restNet 110 更大。
ResNet的優點
啟發
總結
以上是生活随笔為你收集整理的ResNet残差网络——Deep Residual Learning for image recongnition的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: opencv学习日记——娜扎小姐姐与猫咪
- 下一篇: LayUi的使用