1. 程式人生 > 實用技巧 >神經網路加深和加寬的影響

神經網路加深和加寬的影響


前言

深度學習之所以被稱為"深度",是相對支援向量機(supportvector machine, SVM)、提升方法(boosting)、最大熵方法等"淺層學習"方法而言的,深度學習所學得的模型中,非線性操作的層級數更多。

淺層學習依靠人工經驗抽取樣本特徵,網路模型學習後獲得的是沒有層次結構的單層特徵;而深度學習通過對原始訊號進行逐層特徵變換,將樣本在原空間的特徵表示變換到新的特徵空間,自動地學習得到層次化的特徵表示,從而更有利於分類或特徵的視覺化。深度學習理論的另外一個理論動機是:如果一個函式可用k層結構以簡潔的形式表達,那麼用k-1層的結構表達則可能需要指數級數量的引數(相對於輸入訊號),且泛化能力不足。


提示:以下是本篇文章正文內容,下面案例可供參考

一、加深

加深網路的優點

  1. 更好的擬合特徵:深度學習網路結構的主要模組是卷積,池化,啟用,這是一個標準的非線性變換模組。更深的模型,意味著更好的非線性表達能力,可以學習更加複雜的變換,從而可以擬合更加複雜的特徵輸入。
  2. 網路更深,每一層要做的事情也更加簡單第一層學習到了邊緣,第二層學習到了簡單的形狀,第三層開始學習到了目標的形狀,更深的網路層能學習到更加複雜的表達。如果只有一層,那就意味著要學習的變換非常的複雜,這很難做到。

加深的問題:

  1. 加深帶來的優化問題:ResNet為什麼這麼成功,就是因為它使得深層神經網路的訓練成為可行。雖然好的初始化,BN層等技術也有助於更深層網路的訓練,但是很少能突破30層。深層網路帶來的梯度不穩定,網路退化
    的問題始終都是存在的,可以緩解,沒法消除。這就有可能出現網路加深,效能反而開始下降。
  2. 網路加深帶來的飽和,再深也沒有了。
  3. 模型加深還可能出現的一些問題是導致某些淺層的學習能力下降,限制了深層網路的學習,這也是跳層連線等結構能夠發揮作用的很重要的因素。

二、加寬

加深網路的優點:

網路更深帶來的一個非常大的好處,就是逐層的抽象,不斷精煉提取知識,寬度就起到了另外一個作用,那就是讓每一層學習到更加豐富的特徵,比如不同方向,不同頻率的紋理特徵。太窄的網路,每一層能捕獲的模式有限,此時網路再深都不可能提取到足夠的資訊往下層傳遞。

寬度問題:

就算一個網路越寬越好,我們也希望效率越高越好,因為寬度帶來的計算量是成平方數增長的。我們知道對於一個模型來說,淺層的特徵非常重要,因此網路淺層的寬度是一個非常敏感的係數。

Mobilenet研究了網路的寬度對效能的影響,通過一個乘因子來對每一層的寬度進行縮放,它們試驗了1, 0.75, 0.5和0.25共4個值。