神經網絡
1 神經元模型
1.1 M-P神經元
M-P神經元模型
“在這個模型中,神經元接收到來自其他n個神經元傳遞過來的輸入信號,這些信號通過帶權值的連接進行傳遞,神經元把接收到的總收入值與閾值進行比較,然后通過激活函數處理來產生輸出。“——《機器學習》周志華
1.2 激活函數
常用Sigmoid函數,把在較大范圍內變化的輸入值擠壓到(0, 1)輸出范圍內。
sigmoid
更多的激活函數請見https://zh-v2.d2l.ai/chapter_multilayer-perceptrons/mlp.html 中4.1.2節。
- 單個M-P神經元:感知機(sgn作激活函數)、對數幾率回歸(sigmoid作激活函數)
- 多個M-P神經元:神經網絡
2 感知機與多層網絡
2.1 感知機
從幾何角度說,給定一個線性可分的數據集T,感知機的學習目標是求得能對數據集T中正負樣本完全正確劃分的超平面。
2.2 感知機算法
感知機由兩層神經元。假設計算
,
是階躍函數,
的值是0或1。
感知機
其中
閾值可以看作一個輸入固定為-1的”啞節點“的權值。
損失函數:
損失函數
若分類全部正確,則損失函數值一定為0。
學習使用隨機梯度下降,則每次更新參數只使用一個誤分類點。若當前輸出為,則新的權值是:
不斷更新,直至對所有樣本點都分類正確。
2.3 多層感知機
但是,單層感知機只能解決線性分類問題,要解決非線性可分問題,需要使用多層感知機。
線性可分
神經網絡是層級結構,每層神經元與下層全互連,不存在同層連接的,稱為多層前饋神經網絡。
分為輸入層、隱藏層、輸出層。
前饋神經網絡
3 反向傳播算法BP
反向傳播是實現梯度下降的一種具體方式。
假設如下網絡(激活函數是Sigmoid):
對隱藏層的每個節點,要算它與
權重更新:
得到
類似可得
其中
e_h
標準BP流程(每次針對一個樣例進行更新):
誤差逆傳播算法
標準BP算法往往需要更多次迭代,才能到達累計誤差最小點。累積BP算法參數更新的頻率小的多,但是在很多任務中,當累計誤差下降到一定程度之后,進一步下降會非常緩慢,這是標準BP往往更快獲得較好的解。
解決過擬合:
- 早停:用訓練集來更新參數,驗證集用來估計誤差。如果訓練集誤差降低了但驗證集誤差升高了,就停止。
- 正則化:損失函數里加與模型規模相關的懲罰項。
參考: