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標準梯度下降。(即使到局部最小,梯度依然不爲0,還可以繼續搜索)
    此外還有遺傳算法,也可以更好地逼近全局最小。值得說明的是上述方法仍是啓發式的,理論上缺乏保證。

5.5 其他常見神經網絡

5.5.1RBF網絡(徑向基函數網絡)

是一種單隱層前饋神經網絡,以徑向基函數作爲隱層神經元的激活函數。徑向基函數:
ρ ( x , c i ) = e β i x c i 2 \rho(\bf x,\bf c_i)=e^{-\beta_i||\bf x-\bf c_i||^2}
即輸出層實值表示爲 φ ( x ) = i = 1 q w i ρ ( x , c i ) \varphi(\bf x)=\sum_{i=1}^qw_i\rho(\bf x,\bf c_i) ,其中q爲隱層神經元個數, c i c_i w i w_i 分別是第i個隱層神經元所對應的中心和權重。

5.5.2ART網絡(自適應諧振理論網絡)

Winner-take-all! Unsupervised learning!
該網絡由比較層,識別層,識別閾值和重置模塊構成。比較層接受輸入樣本並傳遞給識別層,識別層神經元之間相互競爭(比較向量與神經元代表模式類的代表向量之間的距離,小距離獲勝),以產生獲勝神經元。
ART網絡較好的緩解了可塑性-穩定性窘境,可進行增量學習或在線學習。

5.5.3 SOM網絡(自組織映射網絡)

5.5.4 級聯相關網絡

5.5.5 Elman網絡

5.5.6 Boltzmann機

5.6 深度學習

典型的深度學習就是很深層的神經網絡,但注意,多隱層神經網絡往往難以用標準BP算法進行訓練,因爲在多隱層逆傳播時往往會「發散」,而不能收斂。 無監督逐層訓練:每次訓練一層隱結點,這稱爲預訓練,在預訓練全部完成後在對整個網絡進行微調訓練。 權共享,是CNN裏面運動到的一個重要的方法。