1. 程式人生 > >Chapter5 Neural Network

Chapter5 Neural Network

第五章 神經網路


5.1 神經元模型

定義:神經網路是具有自適應性的簡單單元所組成的廣泛並行連線的網路,它的組織能夠模擬生物神經系統對真實世界物體所做出的互動反應
與機器學習交叉的領域稱為神經網路學習
神經網路最基本的成分為神經元模型,即上面說的簡單單元。

5.2 感知機與多層網路

感知機(Perception)由兩層神經元組成,輸入層接收外界訊號傳遞給輸出層,然後輸出層將輸入層傳遞來的帶有權重的訊號與閾值進行比較,然後通過啟用函式處理產生神經元的輸出。(這樣的輸出層也可稱為M-P神經元)。但由於感知機只擁有一層功能神經元,所以其學習能力非常有限,若問題本身就是線性可分那還好,感知機學習一定會收斂,若不是的話,感知機學習會發生震盪,甚至無法分類。
所以對於非線性可分問題,引入多層功能神經元

,利用輸入層和輸出層之間的隱層增強神經網路的學習能力。

更一般的,若每層神經元與下一層神經元全互連,且神經元之間不存在同層連線,也不存在跨層連線,這樣的神經網路結構通常被稱為多層前饋神經網路(multi-layer feedforward neutral networks)。(前饋:不是說網路只向前單向傳播,而是指網路拓撲結構不存在環或迴路。
在神經網路裡,通常輸入層並不做函式處理,隱層和輸出層才包括功能單位元,按照隱層和輸出層的數量和n,稱其為“n層網路”,僅就隱層數量k,稱其為“k隱層網路”。

小結:實際上,神經網路的學習過程就是一個不斷調整神經元之間的“連線權”每個神經元的閾值的過程。

5.3 誤差逆傳播演算法(BackPropagation,BP)

一般來說,BP網路就是指BP演算法訓練的多層前饋神經網路,當然實際上,BP演算法還可用於訓練其他型別的神經網路,如遞迴神經網路等。
BP演算法是基於梯度下降法和感知機規則之上的一種演算法,在學習之前,我們先學習一下梯度下降法。

5.3.1梯度下降法(Gradient descent)

該方法是一種常用的一階優化方法,具體是指在無約束優化問題 m i n

x f ( x t ) min_xf(x^t) ,其中 f ( x ) f(x) 連續可微。若能構造一個序列 x 0 , x 1 , x 2 , . . . x^0,x^1,x^2,... 滿足:
f ( x t + 1 ) < f ( x t ) ,   t = 0 , 1 , 2 , . . . f(x^{t+1})<f(x^t),\ t=0,1,2,...
則不斷執行該過程可收斂到區域性極小點,根據泰勒展開式:
f ( x + x ) f ( x ) + x T f ( x ) f(x+△x)\approx f(x)+△x^T\nabla f(x)
那麼為了滿足 f ( x + x ) < f ( x ) f(x+△x)<f(x) ,可選擇:
x = γ f ( x ) △x=-\gamma\nabla f(x)
其中步長 γ \gamma 是一個小常數,這就是梯度下降法。
:步長的選擇往往來自於 f ( x ) f(x) 自身的一些條件或特點。
f ( x ) f(x) 二階連續可微。可對 f ( x ) f(x) 二階泰勒展開,這就得到了牛頓法。其迭代輪數小於梯度下降法,但牛頓法涉及到 2 f ( x ) \nabla ^2f(x) ,所以其每輪迭代都涉及到海森矩陣求逆,在高維中幾乎不可行。那麼在引入擬牛頓法尋找海森矩陣的近似逆矩陣。
BP演算法
BP演算法
綜上:
w h j = η g j b h θ j = η g j v i h = η e h x i γ h = η e h \triangle w_{hj}=\eta g_jb_h\\ 類似得到:\triangle\theta_j=\eta g_j\\ \triangle v_{ih}=\eta e_hx_i\\ \triangle \gamma_h=-\eta e_h
其中:
e h = E k b h b h α h = b h ( 1 b h ) j = 1 l w h j g j η ( 0 , 1 ) ( 0.1 ) e_h=-\frac{\partial E_k}{\partial b_h}\frac{\partial b_h}{\partial \alpha_h}\\ =b_h(1-b_h)\sum_{j=1}^lw_{hj}g_j\\ \eta\in(0,1)(通常設定為0.1)

:BP演算法的目標是要最小化訓練集D上的累積誤差( E = 1 m k = 1 m E k E=\frac{1}{m}\sum_{k=1}^mE_k ),但上述介紹的標準BP演算法每次僅針對一個訓練樣例更新連線權和閾值,類似推匯出基於累計誤差最小化的更新規則,就得到了累積誤差逆傳播(Accumulated error backpropagation)。但累積誤差下降到一定程度後下降速度會變很慢,這時候再用回標準BP往往更快。
BP神經網路的強大,使其常常遭受過擬合的危險,有兩種方法解決這個問題:1)早停:當訓練集誤差降低但驗證集誤差提高時停止學習。2)正則化:在誤差目標函式中增加一個用於描述網路複雜度的部分,例如,將誤差目標函式改為 E = λ 1 m k = 1 m E k + ( 1 λ ) i w i 2 E=\lambda\frac{1}{m}\sum_{k=1}^mE_k+(1-\lambda)\sum_iw_i^2 ,其中 λ ( 0 , 1 ) \lambda \in(0,1) 用於對經驗誤差與網路複雜度這兩項進行折中。

5.4 全域性最小與區域性最小

我們往往用 E ( w , θ ) E(w^*,\theta^*) 表示誤差函式的區域性最小值或全域性最小值。
當我們尋找的引數不只一個區域性極小,那麼引數尋優往往就會陷入區域性最小,這顯然不是我們希望的,為此,人們想出方法跳出區域性最小:

  • 從多個不同的引數值初始點出發再取誤差最小的神經網路
  • 模擬退火技術:每一步都以一定概率接受比當前解更差的結果
  • 使用隨機梯度下降instead of標準梯度