深度殘差網路和Highway網路_深度學習

來源:互聯網
上載者:User

今天講的這兩種網路結構都是最新被業界針對影像處理問題提出的最新的結構,主要解決就是超深層的網路在訓練最佳化中遇到的問題。說實話這兩種模型就本身來說數學公式都不複雜,但是確實在實戰中取得了非常好的效果(深度殘差網路協助微軟的團隊以絕對優勢獲得了2015 Image Cup的冠軍),這也從側面說明了深度學習是一門以實踐為主導的學科,在這個領域裡實踐才是檢驗真理的唯一標準。(很多新的結構都是因為在實踐中取得了不錯的效果,然後被一些大牛通過一些高大上概念進行封裝,最後再以一種很牛逼的姿態傳遞到我們的面前,令我們膜拜)。

首先來說一下深度殘差網路,下面是深度殘差網路的架構圖
(來自論文《Deep Residual Learning for Image Recognition》)

之所以說起名“殘差”網路,是因為假設網路要學習的假說是H(x),那麼由於圖中identity x之間跨過了2層,那麼其實相當於擬合的是F(x)=H(x)-x,這就是殘差概念的來源,這是論文裡的說法。其實我感覺作者在提出這個結構的時候,打破了傳統的神經網路n-1層的輸出只能給n層作為輸入的慣例,使某一層的輸出可以直接跨過幾層作為後面某一層的輸入。乍一看這樣的結構沒啥的,貌似沒有什麼特別厲害的地方,其實不然

上圖就是其構造深度殘差網路的構思來源圖,一個是56層的網路一個是20層的網路,從原理上來說其實56層網路的解空間是包括了20層網路的解空間的,換而言之也就是說,56層網路取得的效能應該大於等於20層網路的效能的。但是從訓練的迭代過程來看,56層的網路無論從訓練誤差來看還是測試誤差來看,誤差都大於20層的網路(這也說明了為什麼這不是過擬合現象,因為56層網路本身的訓練誤差都沒有降下去)。導致這個原因就是雖然56層網路的解空間包含了20層網路的解空間,但是我們在訓練網路用的是隨機梯度下降策略,往往解到的不是全域最優解,而是局部的最優解,顯而易見56層網路的解空間更加的複雜,所以導致使用隨機梯度下降演算法無法解到最優解。
其實在構造這個網路的時候,我們完全可以換一個思路,如果20層的網路可以取得非常好的結果了,我在構造56層網路的時候前20層從20層網路中copy過來,後面的36層只做inentity map至少效果不會差於20層的網路。於是乎深度殘差的網路就提出了,這個思想其實不複雜,說白了打破了每一層網路輸入只能來自於上一層網路輸出的規律,可以讓一些網路的輸出直接跳過幾層到達後面的輸入。這樣的網路確實也取得了非常好的效果。另外要注意的是,在真正訓練的時候,有幾點trick要注意:1、注意層與層之間使用batch-normalization技術,否則由於網路過深會導致梯度消失的問題,導致網路訓練無法收斂;2、論文裡說了,為了保持每一層網路的參數差不多,每當經過了pooling層輸入的維度減少了一般,那麼filter的個數就要增加一倍。

說完了深度殘差網路,我們再來說說Highway網路。這篇網路來源於論文《Highway Networks》
所謂Highway網路,無非就是輸入某一層網路的資料一部分經過非線性變換,另一部分直接從該網路跨過去不做任何轉換,就想走在高速公路上一樣,而多少的資料需要非線性變換,多少的資料可以直接跨過去,是由一個權值矩陣和輸入資料共同決定的。下面是Highway網路的構造公式:
y=H(x,WH)⨀T(x,WT)+x⨀C(x,WC)
y 向量由兩項組成。 T 叫做transform gate , C 叫做carry gate。 C 和 T 的啟用函數都是 sigmoid 函數。
T算出來的是一個向量 (a1,a2,……an) ,其中每個數字都是(0,1)之間的浮點數,代表y中由x變化後的內容所佔的比例;
C算出來的也是一個向量 (a1,a2,……an) ,其中每個數字也都是(0,1)之間的浮點數,代表y中由x本身內容所佔的比例;
(為了簡便起見,有時候令 C=1−T , 1 代表了維度和 T 一樣長的向量)從公式中我們需要注意的是,由於是點乘,當 C(x,WC) 取了 1−T(x,WT) 之後那麼 x,y,H(x,WH),T(x,WT) 必須是同樣的維度。如果我們想更改x的維度從A變成B的話,一種方法是採用zero-padding和下採樣的方法,或者是引入一個維度為A*B的變換矩陣,使每次都乘上這個矩陣。

主要解決的是多層深度神經網路的訓練收斂問題,即使層數很多也可以使用簡單的方法比方說 backpropogation來進行訓練,保證合理的迭代範圍內收斂,而傳統的網路是很難保證收斂的。如下圖所示:

當網路很深的時候,使用了Highway的網路更容易收斂。

原文裡說道:
A highway layer can smoothly vary its behavior between that of a plain layer and that of a layer which simply passes its inputs through.
也就是說Highway也就是讓輸入資料的一部分變換,另一部分直接通過,相當於整體上來講在這兩者的效果中選了一個均衡。

從廣義的角度來說,Highway更像是一種思想,它不但可以用在全串連網路中,也可以用在卷積神經網路中,原文裡說:“Convolutional highway layers are constructed similar to fully connected layers. Weight-sharing and local receptive fields are utilized for both H and T transforms. We use zero-padding to ensure that the block state and transform gate feature maps are the same size as the input.”。

其實深度殘差網路和Highway網路這兩種網路結構都能夠讓一部分的資料可以跳過某些變換層,而直接到後面的層中去,只不過Highway網路需要一個權值來控制每次直接通過的資料量,而深度殘差網路就直接讓一部分資料通到了後面。從大量的實驗中,我感覺這兩種網路只有在很深的情境中才能發揮出“威力”,如果本身網路層數較淺,勉強使用這兩種結構是很難得到好的結果的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.