1. 程式人生 > >神經網路與感知機 ---西瓜書

神經網路與感知機 ---西瓜書

感知機是SVM和神經網路的基礎。

神經元


f()函式理想中為階躍函式,但實際中應用sigmoid函式


感知機與神經元

感知機(Perceptron)由兩層神經元組成(輸入層、輸出層),輸入層接收外界輸入訊號後傳遞給輸出層,輸出層是M-P神經元,亦稱“閾值邏輯單元”(threshold logic unit)。

輸入層只接受輸入而沒有權重以及閾值,輸出層的神經元有閾值,兩層間連線有權重。

把閾值當做是第n+1個權重,第n+1個輸入是-1,那麼就可以把閾值放進權重裡了。那麼只需要做權重的學習。

根據錯誤程度進行調整。

這樣兩層神經元只能處理線性問題,而非線性問題則需要多層網路。


輸入輸出層之間的叫做隱層。

誤差逆傳播演算法

權重的學習用感知機那一套不行了,所以用了更強大的BP演算法。


所有的引數如上圖所示。

有兩種BP演算法,一種標準BP演算法,每次更新只針對單個樣本,更新頻繁;另一種是累積BP演算法,用累積誤差最小化來進行更新,讀取整個訓練集之後才會進行一次更新。很多情況下先用累積BP,下降到一定程度,下降緩慢,再使用標準BP往往會有很好的效果。

詳細講一下標準BP演算法。


     




同理可以得到其他三個引數的更新



另一種累積誤差BP演算法。

累積誤差:


只需要一個包含足夠多神經元的隱層,多層前饋網路就能以任意精度逼近任意複雜度的連續函式。

表示能力太強大,容易過擬合,有如下兩個解決方案:


區域性極小與全域性最小

這個就跟高數中講的一樣,使用梯度下降法,找到的是區域性極小值,如何跳出區域性極小來找到全域性最小?