機器學習理論 | 周志華西瓜書 第五章:神經網絡

第五章 神經網絡

此係列文章旨在提煉周志華《機器學習》的核心要點,不斷完善中…


5.1 神經元模型

  • 基本概念
    神經元(neuron)模型是神經網絡最基本的成分
    閾值(threshold),亦稱bias
  • M-P神經元模型
    • 圖解在這裏插入圖片描述
    • 激活函數(activation function)
      • 理想中的激活函數:階躍函數
        sgn(x)={1,x00,x<0sgn(x)=\begin{cases}1, x≥0\\0, x<0\end{cases}
        將輸入映射爲輸出值"0"或"1"
      • 典型的激活函數:Sigmoid函數(擠壓函數 squashing function)
        sigmoid(x)=11+exsigmoid(x)=\frac{1}{1+e^{-x}}
        將可能在激活範圍內變化的輸入值擠壓到(0,1)輸出值範圍內
        在這裏插入圖片描述

5.2 感知機與多層網絡

  • 感知機(Perceptron):由兩層神經元組成
    輸入層:接收信號後傳遞給輸出層
    輸出層:M-P神經元(閾值邏輯神經元)
    感知機能容易地實現邏輯與、或、非運算

    兩個輸入神經元的感知機網絡結構示意圖:在這裏插入圖片描述

  • 啞結點(dummy node)

    • 統一權重和閾值的學習爲權重的學習(把閾值看作固定值-1,0的啞結點所對應的連接權重)
    • 感知機學習規則
      對訓練樣例(x,y),當前感知機的輸出
      感知機權重調整規則:
      {wiwi+ΔwiΔwi=η(yy^)xi\begin{cases}w_i\leftarrow w_i+\Delta w_i\\ \Delta w_i=\eta (y-\hat{y})x_i\end{cases}
    • 學習率(learning rate)
      過大:容易振盪
      過小:收斂速度過慢
  • 單層功能神經元網絡

    • 對線性可分(linearly separable)問題的學習過程一定會收斂(converge)
    • 對線性不可分的問題的學習過程難以收斂,將會發生振盪(fluctuation)
      在這裏插入圖片描述
  • 多層功能神經元網絡

    • 隱含層(hidden layer)
      與輸出神經元都是擁有激活函數的功能神經元在這裏插入圖片描述
    • 多層前饋神經網絡(multi-layer feedforwaard neural networks)
      單隱層前饋網絡雙隱層前饋網絡

5.3 誤差逆傳播算法

  • 誤差逆傳播算法(BP: error BackPropagation)

    • 圖解
      需要確定的參數:(d+r+1)*q+r
      {{d×qq×l{ql\begin{cases} 權值\begin{cases}輸入層到隱層:d×q\\ 隱層到輸出層:q×l\end{cases}\\ 閾值\begin{cases}q個隱層神經元\\l個輸出層神經元\end{cases}\\ \end{cases}
      策略:梯度下降(gradient descent)
    • 算法過程
      在這裏插入圖片描述
  • 積累誤差逆傳播算法(accumlated error backpropagation) 對比

    • 標準BP算法
      每次更新只針對單個樣例
      參數更新得非常頻繁
      對不同樣例進行更新的效果可能出現“抵消”現象
      往往需進行更多次數的迭代
      在訓練集非常大時標準BP往往更快獲得較好的解
    • 積累BP算法
      直接針對累積誤差最小化
      參數更新的評率低得多
      在讀取整個訓練集D一遍後纔對參數進行更新
  • 試錯法(trial-byerror)
    證明:只需兩個包含足夠多神經元的隱層,多層前饋網絡就能以任意精度逼近任意複雜度的連續函數
    解決如何設置隱層神經元的個數問題

  • 過擬合防止策略

    • 早停(early stopping)
      訓練集:計算梯度、更新連接權和閾值
      驗證集:估計誤差
      若訓練集誤差降低但驗證集誤差升高,則停止
    • 正則化(regularization)
      基本思想:在誤差目標函數中增加一個用於描述網絡複雜度的部分(如連接權與閾值的平方和)
      加入正則項的誤差目標函數(BP算法最小化訓練集D積累誤差):
      E=1mk=1mEk()E=λ1mk=1mEk+(1λ)iwi2E=\frac1 m \sum_{k=1}^mE_k\Rightarrow(正則化)\Rightarrow E=\lambda \frac1 m\sum_{k=1}^mE_k+(1-\lambda )\sum_iw_i^2

5.4 全局最小與局部最小

  • 最爲廣泛的參數尋優方法:基於梯度的搜索
    負梯度方向:函數值下降最快的方向
    梯度下降法:沿着負梯度方向搜索最優解
    若誤差函數在當前點的梯度爲零,則已達到局部極小,更新量降爲零,參數的迭代更新在此停止
  • 試圖跳出局部極小策略
    以多組不同參數值初始化多個神經網絡
    模擬退火(simulated annealing)
    隨機梯度下降(stochasitc gradient descent)
    遺傳算法(genetic algorithms)

5.5 其他常見神經網絡

5.6 深度學習

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章