第五章 神經網絡
此係列文章旨在提煉周志華《機器學習》的核心要點,不斷完善中…
5.1 神經元模型
- 基本概念
神經元(neuron)模型是神經網絡最基本的成分
閾值(threshold),亦稱bias - M-P神經元模型
- 圖解
- 激活函數(activation function)
- 理想中的激活函數:階躍函數
將輸入映射爲輸出值"0"或"1" - 典型的激活函數:Sigmoid函數(擠壓函數 squashing function)
將可能在激活範圍內變化的輸入值擠壓到(0,1)輸出值範圍內
- 理想中的激活函數:階躍函數
5.2 感知機與多層網絡
-
感知機(Perceptron):由兩層神經元組成
輸入層:接收信號後傳遞給輸出層
輸出層:M-P神經元(閾值邏輯神經元)
感知機能容易地實現邏輯與、或、非運算兩個輸入神經元的感知機網絡結構示意圖:
-
啞結點(dummy node)
- 統一權重和閾值的學習爲權重的學習(把閾值看作固定值-1,0的啞結點所對應的連接權重)
- 感知機學習規則
對訓練樣例(x,y),當前感知機的輸出
感知機權重調整規則:
- 學習率(learning rate)
過大:容易振盪
過小:收斂速度過慢
-
單層功能神經元網絡
- 對線性可分(linearly separable)問題的學習過程一定會收斂(converge)
- 對線性不可分的問題的學習過程難以收斂,將會發生振盪(fluctuation)
-
多層功能神經元網絡
- 隱含層(hidden layer)
與輸出神經元都是擁有激活函數的功能神經元 - 多層前饋神經網絡(multi-layer feedforwaard neural networks)
- 隱含層(hidden layer)
5.3 誤差逆傳播算法
-
誤差逆傳播算法(BP: error BackPropagation)
- 圖解
需要確定的參數:(d+r+1)*q+r
策略:梯度下降(gradient descent) - 算法過程
- 圖解
-
積累誤差逆傳播算法(accumlated error backpropagation) 對比
- 標準BP算法
每次更新只針對單個樣例
參數更新得非常頻繁
對不同樣例進行更新的效果可能出現“抵消”現象
往往需進行更多次數的迭代
在訓練集非常大時標準BP往往更快獲得較好的解 - 積累BP算法
直接針對累積誤差最小化
參數更新的評率低得多
在讀取整個訓練集D一遍後纔對參數進行更新
- 標準BP算法
-
試錯法(trial-byerror)
證明:只需兩個包含足夠多神經元的隱層,多層前饋網絡就能以任意精度逼近任意複雜度的連續函數
解決如何設置隱層神經元的個數問題 -
過擬合防止策略
- 早停(early stopping)
訓練集:計算梯度、更新連接權和閾值
驗證集:估計誤差
若訓練集誤差降低但驗證集誤差升高,則停止 - 正則化(regularization)
基本思想:在誤差目標函數中增加一個用於描述網絡複雜度的部分(如連接權與閾值的平方和)
加入正則項的誤差目標函數(BP算法最小化訓練集D積累誤差):
- 早停(early stopping)
5.4 全局最小與局部最小
- 最爲廣泛的參數尋優方法:基於梯度的搜索
負梯度方向:函數值下降最快的方向
梯度下降法:沿着負梯度方向搜索最優解
若誤差函數在當前點的梯度爲零,則已達到局部極小,更新量降爲零,參數的迭代更新在此停止 - 試圖跳出局部極小策略
以多組不同參數值初始化多個神經網絡
模擬退火(simulated annealing)
隨機梯度下降(stochasitc gradient descent)
遺傳算法(genetic algorithms)