神經網絡模型是個黑盒子
神經網絡給人留下深刻的印象,但是它的表現讓人有些琢磨不透。權重和偏置量能自動地學習得到,但是這并不意味着我們能立刻解釋神經網絡是怎麼樣得出的這些參數。現在仍然沒人說清楚為什麼某某節點的權重參數為什麼取值為某個值,是以,從這個角度講,神經網絡模型是個黑盒子。
對隐含層的感性認識
提起神經網絡,不得不說隐含層,光看名字就給人以神秘感,如何通俗易懂地認識隐含層到底是做什麼的呢?
讓我們從一個問題開始,假如區分以下三張圖檔哪個是人臉,也就是人臉識别,神經網絡模型應該怎麼建立呢?為了簡單起見,輸入層的每個節點代表圖檔的某個像素,個數為像素點的個數,輸出層簡單地定義為一個節點,标示是還是不是。

那麼隐含層怎麼分析呢? 我們先從感性地角度認識這個人臉識别問題,試着将這個問題分解為一些列的子問題,比如,
在上方有頭發嗎?
在左上、右上各有一個眼睛嗎?
在中間有鼻子嗎?
在下方中間位置有嘴巴嗎?
在左、右兩側有耳朵嗎?
...
假如對以上這些問題的回答,都是“yes”,或者大部分都是“yes”,那麼可以判定是人臉,否則不是人臉。但是,這種判斷忽略了某些特殊情況,比如某個人沒有長頭發,某個人的左半邊臉被花叢遮擋了等等,等處在這些環境中時,這種方法的判斷可能會有問題。
承上,将原問題分解為子問題的過程如果用神經網絡來表達的話,可以這樣表示,方框表示為某個子網絡,
以上每個子網絡,還可以進一步分解為更小的問題,比如判斷左上是一個眼睛嗎的問題,可以分解為:
有眼球嗎?
有眼睫毛嗎?
有虹膜嗎?
......
是以,在左上是否有一個眼睛的子網絡,可以進一步分解為如下:
以上,這個子網絡還可以進一步分解,.一層又一層地分解,直到,回答的問題簡單到能在一個單獨的神經元上被回答。
深度神經網絡
總結下這個過程,輸入層是一些列的像素節點,然後剛開始這些層回答了關于輸入像素點的很簡單、很具體的問題,然後經過很多層,建立了更複雜和抽象的概念,這種帶有兩個或多個隐含層的神經網絡,稱為深度神經網絡,deep neural networks,簡稱為 DNN。
訓練神經網絡常用的技術包括,批梯度下降(SGD),反向傳播(BP算法),再後來基于此,提出了很多好的想法,人們現在能訓練的隐含層數已經越來越多,并且結果也表明,對很多現實問題,深層次的網絡比淺層次的網絡效果更好,原因便是深度神經網絡建立了更加複雜的體系結構,這樣得到的結果會更理想。