編輯 | 言有三
1 殘差連接
想必做深度學習的都知道skip connect,也就是殘差連接,那什麼是skip connect呢?如下圖
上面是來自於resnet【1】的skip block的示意圖。我們可以使用一個非線性變化函數來描述一個網絡的輸入輸出,即輸入為X,輸出為F(x),F通常包括了卷積,激活等操作。
當我們強行將一個輸入添加到函數的輸出的時候,雖然我們仍然可以用G(x)來描述輸入輸出的關係,但是這個G(x)卻可以明確的拆分為F(x)和X的線性疊加。
這就是skip connect的思想,將輸出表述為輸入和輸入的一個非線性變換的線性疊加,沒用新的公式,沒有新的理論,只是換了一種新的表達。
它解決了深層網絡的訓練問題,作者的原論文中達到了上千層。
殘差連接是何的首創嗎?當然不是,傳統的神經網絡中早就有這個概念,文【2】中則明確提出了殘差的結構,這是來自於LSTM的控制門的思想。
y = H(x,WH)T(x,WT) + X(1- T(x,WT))
可以看出,當T(x,WT) = 0,y=x,當T(x,WT) = 1,y= H(x,WH) 。關於LSTM相關的知識,大家可以去其他地方補。
在該文章中,研究者沒有使用特殊的初始化方法等,也能夠訓練上千層的網絡。但為什麼這篇文章沒有resnet火呢?原因自然有很多了,何的文章做了更多的實驗論證,簡化了上面的式子,得了cvpr best paper,以及何的名氣更大等等因素。
總之,為我們所知道的就是下面的式子
y = H(x,WH) + X,此所謂殘差連接,skip connection。
2 為什麼要skip connect
那為什麼要這麼做呢?首先大家已經形成了一個通識,在一定程度上,網絡越深表達能力越強,性能越好。
不過,好是好了,隨著網絡深度的增加,帶來了許多問題,梯度消散,梯度爆炸;在resnet出來之前大家沒想辦法去解決嗎?當然不是。更好的優化方法,更好的初始化策略,BN層,Relu等各種激活函數,都被用過了,但是仍然不夠,改善問題的能力有限,直到殘差連接被廣泛使用。
大家都知道深度學習依靠誤差的鏈式反向傳播來進行參數更新,假如我們有這樣一個函數:
其中的f,g,k大家可以自行腦補為卷積,激活,分類器。
cost對f的導數為:
它有隱患,一旦其中某一個導數很小,多次連乘後梯度可能越來越小,這就是常說的梯度消散,對於深層網絡,傳到淺層幾乎就沒了。但是如果使用了殘差,每一個導數就加上了一個恆等項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,說明引入殘差後的映射對輸出的變化更敏感,輸出是什麼?不就是反應了與真值的誤差嗎?
所以,這麼一想想,殘差就應該是有效的,各方實驗結果也證明了。
3 skip connect就只是這樣嗎
上面我們解釋了skip connect改善了反向傳播過程中的梯度消散問題,因此可以使得訓練深層網絡變得容易,但研究者們表示NoNoNo,沒這麼簡單。
如今在國內的研究人員,大公司,產品,都醉心於將深度學習用於網絡直播和短視頻,把整個環境搞的浮躁不堪的情況下,國外有很多的大拿都在潛心研究深度學習理論基礎,水平高低之分,可見一斑。文【3】的研究直接表明訓練深度神經網絡失敗的原因並不是梯度消失,而是權重矩陣的退化,所以這是直接從源頭上挖了根?
當然,resnet有改善梯度消失的作用,文中也做了實驗對比如上:但不僅僅不如此,下圖是一個採用殘差連接(藍色曲線)和隨機稠密的正交連接矩陣的比對,看得出來殘差連接並不有效。
結合上面的實驗,作者們認為神經網絡的退化才是難以訓練深層網絡根本原因所在,而不是梯度消散。雖然梯度範數大,但是如果網絡的可用自由度對這些範數的貢獻非常不均衡,也就是每個層中只有少量的隱藏單元對不同的輸入改變它們的激活值,而大部分隱藏單元對不同的輸入都是相同的反應,此時整個權重矩陣的秩不高。並且隨著網絡層數的增加,連乘後使得整個秩變的更低。
這也是我們常說的網絡退化問題,雖然是一個很高維的矩陣,但是大部分維度卻沒有信息,表達能力沒有看起來那麼強大。
殘差連接正是強制打破了網絡的對稱性。
第1種(圖a),輸入權重矩陣(灰色部分)完全退化為0,則輸出W已經失去鑑別能力,此時加上殘差連接(藍色部分),網絡又恢復了表達能力。第2種(圖b),輸入對稱的權重矩陣,那輸出W一樣不具備這兩部分的鑑別能力,添加殘差連接(藍色部分)可打破對稱性。第3種(圖c)是圖b的變種,不再說明。
總的來說一句話,打破了網絡的對稱性,提升了網絡的表徵能力,關於對稱性引發的特徵退化問題,大家還可以去參考更多的資料【4】。
對於skip連接的有效性的研究【5-6】,始終並未停止,至於究竟能到什麼地步,大家還是多多關注吧學術研究,也可以多關注我們呀!
參考文獻
【1】He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 770-778.
【2】Srivastava R K, Greff K, Schmidhuber J. Highway networks[J]. arXiv preprint arXiv:1505.00387, 2015.
【3】Orhan A E, Pitkow X. Skip connections eliminate singularities[J]. arXiv preprint arXiv:1701.09175, 2017.
【4】Shang W, Sohn K, Almeida D, et al. Understanding and Improving Convolutional Neural Networks via Concatenated Rectified Linear Units[J]. 2016:2217-2225.
【5】Greff K, Srivastava R K, Schmidhuber J. Highway and Residual Networks learn Unrolled Iterative Estimation[J]. 2017.
【6】Jastrzebski S, Arpit D, Ballas N, et al. Residual connections encourage iterative inference[J]. arXiv preprint arXiv:1710.04773, 2017.
更多模型解讀,請移步有三AI知識星球
「知識星球」網絡結構1000變上線,下半年更新500+網絡模型解讀