定義:神經網絡是具有自適應性的簡單單元所組成的廣泛並行連接的網絡,它的組織能夠模擬生物神經系統對真實世界物體所做出的交互反應
與機器學習交叉的領域稱爲神經網絡學習
神經網絡最基本的成分爲神經元模型,即上面說的簡單單元。
感知機(Perception)由兩層神經元組成,輸入層接收外界信號傳遞給輸出層,然後輸出層將輸入層傳遞來的帶有權重的信號與閾值進行比較,然後通過激活函數處理產生神經元的輸出。(這樣的輸出層也可稱爲M-P神經元)。但由於感知機只擁有一層功能神經元,所以其學習能力非常有限,若問題本身就是線性可分那還好,感知機學習一定會收斂,若不是的話,感知機學習會發生震盪,甚至無法分類。
所以對於非線性可分問題,引入多層功能神經元,利用輸入層和輸出層之間的隱層增強神經網絡的學習能力。
更一般的,若每層神經元與下一層神經元全互連,且神經元之間不存在同層連接,也不存在跨層連接,這樣的神經網絡結構通常被稱爲多層前饋神經網絡(multi-layer feedforward neutral networks)。(前饋:不是說網絡只向前單向傳播,而是指網絡拓撲結構不存在環或迴路。)
在神經網絡裏,通常輸入層並不做函數處理,隱層和輸出層才包括功能單位元,按照隱層和輸出層的數量和n,稱其爲「n層網絡」,僅就隱層數量k,稱其爲「k隱層網絡」。
小結:實際上,神經網絡的學習過程就是一個不斷調整神經元之間的「連接權」每個神經元的閾值的過程。
一般來說,BP網絡就是指BP算法訓練的多層前饋神經網絡,當然實際上,BP算法還可用於訓練其他類型的神經網絡,如遞歸神經網絡等。
BP算法是基於梯度下降法和感知機規則之上的一種算法,在學習之前,我們先學習一下梯度下降法。
該方法是一種常用的一階優化方法,具體是指在無約束優化問題
,其中
連續可微。若能構造一個序列
滿足:
則不斷執行該過程可收斂到局部極小點,根據泰勒展開式:
那麼爲了滿足
,可選擇:
其中步長
是一個小常數,這就是梯度下降法。
注:步長的選擇往往來自於
自身的一些條件或特點。
若
二階連續可微。可對
二階泰勒展開,這就得到了牛頓法。其迭代輪數小於梯度下降法,但牛頓法涉及到
,所以其每輪迭代都涉及到海森矩陣求逆,在高維中幾乎不可行。那麼在引入擬牛頓法尋找海森矩陣的近似逆矩陣。
BP算法:
綜上:
其中:
注:BP算法的目標是要最小化訓練集D上的累積誤差(
),但上述介紹的標準BP算法每次僅針對一個訓練樣例更新連接權和閾值,類似推導出基於累計誤差最小化的更新規則,就得到了累積誤差逆傳播(Accumulated error backpropagation)。但累積誤差下降到一定程度後下降速度會變很慢,這時候再用回標準BP往往更快。
BP神經網絡的強大,使其常常遭受過擬合的危險,有兩種方法解決這個問題:1)早停:當訓練集誤差降低但驗證集誤差提高時停止學習。2)正則化:在誤差目標函數中增加一個用於描述網絡複雜度的部分,例如,將誤差目標函數改爲
,其中
用於對經驗誤差與網絡複雜度這兩項進行折中。
我們往往用
表示誤差函數的局部最小值或全局最小值。
當我們尋找的參數不只一個局部極小,那麼參數尋優往往就會陷入局部最小,這顯然不是我們希望的,爲此,人們想出方法跳出局部最小:
是一種單隱層前饋神經網絡,以徑向基函數作爲隱層神經元的激活函數。徑向基函數:
即輸出層實值表示爲
,其中q爲隱層神經元個數,
與
分別是第i個隱層神經元所對應的中心和權重。
Winner-take-all! Unsupervised learning!
該網絡由比較層,識別層,識別閾值和重置模塊構成。比較層接受輸入樣本並傳遞給識別層,識別層神經元之間相互競爭(比較向量與神經元代表模式類的代表向量之間的距離,小距離獲勝),以產生獲勝神經元。
ART網絡較好的緩解了可塑性-穩定性窘境,可進行增量學習或在線學習。
典型的深度學習就是很深層的神經網絡,但注意,多隱層神經網絡往往難以用標準BP算法進行訓練,因爲在多隱層逆傳播時往往會「發散」,而不能收斂。 無監督逐層訓練:每次訓練一層隱結點,這稱爲預訓練,在預訓練全部完成後在對整個網絡進行微調訓練。 權共享,是CNN裏面運動到的一個重要的方法。