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

wuliytTaotao發表於2018-09-05

  現在提到“神經網路”和“深度神經網路”,會覺得兩者沒有什麼區別,神經網路還能不是“深度”(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

相關文章