1. 程式人生 > >《機器學習》--周志華 (第五章學習筆記)

《機器學習》--周志華 (第五章學習筆記)

神經網路

神經元模型

​ 神經網路是由具有適應性的簡單單元組成的廣泛並行互連的網路,它的組織能夠模擬生物神經系統對真實世界物體所作出的互動反應

​ 神經網路中最基本的成分是神經元模型,即“簡單單元”,在生物神經網路中,每個神經元與其他神經元相連,當它“興奮”時,就會向相連的神經元傳送化學物質,從而改變這些神經元內的電位;如果某神經元的電位超過一個“閾值”,那麼它就會被啟用,即“興奮” 起來,向其他神經元傳送化學物質。

  • 啟用函式

    理想啟用函式是階躍函式,0 表示抑制神經元而1表示啟用神經元

    階躍函式具有不連續、不光滑等不好的性質,常用的是Sigmoid函式

    Sigmoid函式可能在較大範圍內變化的輸入值擠壓到(0,1)輸出值範圍內,因此有時也稱為”擠壓函式”

    ​ 把這樣許多個神經元按一定的層次結構連線起來,就得到了神經網路。

感知機與多層網路

  • 感知機有兩層神經元組成

    感知機只有輸出層神經元進行啟用函式處理,即只擁有一層功能神經元。

    要解決非線性可分問題,需要考慮使用多層功能神經元

  • 多層前饋網路結構

    多層網路:包含隱層的網路

    前饋網路:神經元之間不存在同層連線也不存在跨層連線

    隱層和輸出層神經元亦稱“功能單元”

    多層前饋網路有強大的表示能力

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

    設定隱層神經元數,通常用“試錯法”

誤差逆傳播演算法

  • BP神經網路

    ​ 它是迄今為止最成功的神經網路學習演算法,顯示任務中使用神經網路時,大多在使用BP演算法進行訓練

    ​ BP演算法不僅可用於多層前饋神經網路,還可用於其他型別的神經網路

    輸入:d維特徵向量

    輸出:l個輸出值

    隱層:假定使用q個隱層神經元

    假定功能單元均使用Sigmoid函式

    • 主要特點

    訊號是前向傳播的,而誤差是反向傳播的。

    • 主要過程

    • 訊號的前向傳播,從輸入層經過隱含層,最後到達輸出層

    • 誤差的反向傳播,從輸出層到隱含層,最後到輸入層,依次調節隱含層到輸出層的權重和偏置,輸入層到隱含層的權重和偏置

    • 流程

    • 網路的初始化

      g(x)=11+ex

    • 隱含層的輸出

      Hj=g(ni=1ωijxi+aj)

    • 輸出層的輸出

      Ok=lj=1Hjωjk+bk

    • 誤差的計算

      取誤差公式為

      E=12mk=1(YkOk)2

      其中Yk為期望輸出,我們計YkOk=ek,則E可以表示為

      E=12mk=1e2k

    • 權值的更新

  • 標準BP演算法 與 累計BP演算法

    • 標準BP演算法
    • 每次針對單個訓練樣例更新權值與閾值
    • 引數更新頻繁,不同樣例可以抵消,需要多次迭代
    • 累計BP演算法
    • 其優化目標是最小化整個訓練集上的累計誤差
    • 讀取整個訓練集一遍才對引數進行更新,引數更新頻率較低

    在很多工中,累計誤差下降到一定程度後,進一步下降會非常緩慢,這是標準BP演算法往往會獲得較好的解,尤其當訓練集非常大時效果更明顯。

  • 緩解過擬合

    主要策略

    • 早停

    • 若訓練誤差連續a輪的變化小於b,則停止訓練

    • 使用驗證集:若訓練誤差降低,驗證誤差升高,則停止訓練

    • 正則化

    • 在誤差目標函式找那個增加一項描述網路複雜度

      偏好比較小的連線權和閾值,使網路輸出更“光滑”

全域性最小與區域性極小

神經網路的訓練過程可看作一個引數尋優過程:

​ 在引數空間中,尋找一組最優引數使得誤差最小

特點

  • 存在多個“區域性極小”
  • 只有一個“全域性最小”

其他常見神經網路模型

  • RBF :分類任務中除BP之外最常用

    • 單隱層前饋神經網路

    • 使用徑向基函式作為隱層神經元啟用函式

    • 輸出層是隱層神經元輸出的線性組合

    • 訓練

    • 確定神經元中心,常用的方式包括隨機殘陽、聚類等

    • 利用BP演算法等確定引數

  • ART:”競爭學習”的代表

  • SOM:最常用的聚類方法之一

    • 競爭型的無監督神經網路
    • 將高維資料對映到低維空間,高維空間中相似的樣本點對映到網路輸出層中臨近神經元
    • 每個神經元擁有一個權向量
    • 目標:為每個輸出層神經元找到合適的權向量以保持拓撲結構
    • 訓練
    • 網路接收輸入樣本後,將會確定輸出層的“獲勝”神經元(“勝者通吃”)
    • 獲勝神經元的權向量將向當前輸入樣本移動

  • 級聯相關網路:“構造性”神經網路的代表

    構造性神經網路

    ​ 將網路的結構也當做學習的目標之一,我往在訓練過程中找到適合資料的網路結構

    • 訓練
    • 開始時只有輸入層和輸出層
    • 級聯-新的隱層節點逐漸加入,從而建立起層級結構
    • 相關-最大化新節點的輸出與網路誤差之間的相關性

  • Elman網路:遞迴神經網路的代表

    • 網路可以有環形結構,可讓使一些神經元的輸出反饋回來最為輸入
    • t 時刻網路的輸出狀態: 由 t 時刻的輸入狀態和 t-1時刻的網路狀態共同決定

    Elman網路是最常用的遞迴神經網路之一

    • 結構與前饋神經網路很相似,但隱層神經元的輸出被反饋回來
    • 使用推廣的BP演算法訓練

  • Bolyzmann機:”基於能量的模型”的代表

深度學習

  • 卷積神經網路

    • 每個卷積層包含多個特徵對映,每個特徵對映是一個由多個神經元構成的“平面”,通過一種卷積濾波器提取輸入的一種特徵
    • 取樣層亦稱“匯合層”,其作用是基於區域性相關性原理進行亞取樣,從而在減少資料量的同事保留有用資訊
    • 連線層就是傳統神經網路對隱層與輸出層的全連線

    典型的深度學習模型就是很深層的神經網路