【人工神經網絡基礎】為什么神經網絡選擇了“深度”?


  現在提到“神經網絡”和“深度神經網絡”,會覺得兩者沒有什么區別,神經網絡還能不是“深度”(deep)的嗎?我們常用的 Logistic regression 就可以認為是一個不含隱含層的輸出層激活函數用 sigmoid(logistic) 的神經網絡,顯然 Logistic regression 就不是 deep 的。不過,現在神經網絡基本都是 deep 的,即包含多個隱含層。Why?

1. universality approximation theorem(通用近似定理)

  任何連續的函數 $f: R^N \to R^M$ 都可以用只有一個隱含層的神經網絡表示。(隱含層神經元足夠多)

圖 1:僅含一個隱含層的神經網絡示意圖

  一個神經網絡可以看成是一個從輸入到輸出的映射,那么既然僅含一個隱含層的神經網絡可以表示任何連續的函數,為什么還要多個隱含層的神經網絡?

2. why deep?

  "Yes, shallow network can represent any function. 

  However, using deep structure is more effective."

  我們可以把僅含一個隱含層的神經網絡結構叫做 shallow 的,把包含多個隱藏層的神經網絡結構叫做 deep 的。

  李宏毅教授在他的機器學習視頻中,提出一種叫做 Modularization(模塊化)的解釋。

圖 2:Modularization

  在多層神經網絡中,第一個隱含層學習到的特征是最簡單的,之后每個隱含層使用前一層得到的特征進行學習,所學到的特征變得越來越復雜。 如圖 3 和 4 所示。

圖 3:不同level的特征-1 

  low level 中每一個特征在 high level 或多或少被使用,這樣對於每一個 high level 特征,只需要訓練一套 low level 特征。是的,low level 特征被共用了,相當於將提取 low level 特征單獨成立了一個模塊,供高層調用。對於每一個 high level 特征,不需要每次都將 low level 特征訓練一遍。這就是 deep 的好處。

圖 4:不同level特征-2

  在比較深度神經網絡和僅含一個隱含層神經網絡的效果時,需要控制兩個網絡的 trainable 參數數量相同,不然沒有可比性。李宏毅教授在他的機器學習視頻中舉例,相同參數數量下,deep 表現更好;這也就意味着,達到相同的效果,deep 的參數會更少。

  不否認,理論上僅含一個隱含層的神經網絡完全可以實現深度神經網絡的效果,但是訓練難度要大於深度神經網絡。

  實際上,在深度神經網絡中,一個隱含層包含的神經元也不少了,比如 AlexNet 和 VGG-16 最后全連接層的 4096 個神經元。在 deep 的同時,fat 也不是說不需要,只是沒有像只用一層隱含層那么極端,每個隱含層神經元的個數也是我們需要調節的超參數之一。

References

李宏毅機器學習 

Universal approximation theorem - Wikipedia


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM