聲明:文章目的只是方便自己之后回顧,無意侵權,若有不合適請留言,會盡快刪除。
1. 舉例講解殘差單元為什么有效。
來自知乎鏈接 :【模型解讀】resnet中的殘差連接,你確定真的看懂了?
首先大家已經形成了一個通識,在一定程度上,網絡越深表達能力越強,性能越好。
不過,好是好了,隨着網絡深度的增加,帶來了許多問題,梯度消散,梯度爆炸;在resnet出來之前大家沒想辦法去解決嗎?當然不是。更好的優化方法,更好的初始化策略,BN層,Relu等各種激活函數,都被用過了,但是仍然不夠,改善問題的能力有限,直到殘差連接被廣泛使用。
在反向傳播過程中,一旦其中某一個導數很小,多次連乘后梯度可能越來越小,這就是常說的梯度消散,對於深層網絡,傳到淺層幾乎就沒了。但是如果使用了殘差,每一個導數就加上了一個恆等項1,dh/dx=d(f+x)/dx=1+df/dx。此時就算原來的導數df/dx很小,這時候誤差仍然能夠有效的反向傳播,這就是核心思想。
我們舉個例子直觀理解一下:
假如有一個網絡,輸入x=1,非殘差網絡為G,殘差網絡為H,其中H=F(x)+x
有這樣的一個輸入輸出關系:
在t時刻:
非殘差網絡G(1)=1.1,
殘差網絡H(1)=1.1, H(1)=F(1)+1, F(1)=0.1
在t+1時刻:
非殘差網絡G’(1)=1.2,
殘差網絡H’(1)=1.2, H’(1)=F’(1)+1, F’(1)=0.2
這時候我們看看:
非殘差網絡G的梯度 = (1.2-1.1)/1.1
而殘差網絡F的梯度 = (0.2-0.1)/0.1
因為兩者各自是對G的參數和F的參數進行更新,可以看出這一點變化對F的影響遠遠大於G,說明引入殘差后的映射對輸出的變化更敏感,輸出是什么?不就是反應了與真值的誤差嗎?
所以,這么一想想,殘差就應該是有效的,各方實驗結果也證明了。
2. 解釋了什么叫做神經網絡的退化
知乎鏈接 :殘差網絡解決了什么,為什么有效?
神經網絡的退化:在神經網絡可以收斂的前提下,隨着網絡深度增加,網絡的表現先是逐漸增加至飽和,然后迅速下降。