1. 程式人生 > >機器學習——神經網路累積BP演算法

機器學習——神經網路累積BP演算法

在上篇的部落格介紹的“標準BP演算法”每次僅針對一個訓練樣例更新連線權和閾值,也就是說,BP演算法中的更新規則是基於單個的這裡寫圖片描述 推導而得,如果類似的推匯出基於累積誤差最小化的更新規則,就得到了累積誤差逆傳播演算法。累積BP演算法與標準BP演算法都很常用(標準BP演算法和累積BP演算法的區別類似於隨機梯度下降(Stochastic gradient descent,簡稱 SGD)於標準梯度下降之間的區別)。一般來說,標準BP演算法每次更新只針對單個樣例,引數更新得非常頻繁,而且對不同樣例進行更新的效果可能出現“抵消”現象。因此,為了達到同樣的累積誤差極小點,標準BP演算法往往需要更多次數的迭代。累積BP演算法直接針對累積誤差最小化,它在讀取整個訓練集D一遍之後才對引數進行更新,其引數更新的頻率低的多。但在很多工中,累積誤差下降到一程度之後,進一步下降會非常緩慢,這時標準BP往往會更快獲得較好的理解,尤其是訓練集D非常大時更明顯。

正是由於其強大的表示能力,BP神經網路經常遭遇過擬合,其訓練誤差持續降低,但測試誤差卻可能上升。
通常有兩種策略來緩解BP網路的過擬合。第一種策略是“早停”(early stopping):將資料分成訓練集合驗證集,訓練集用來計算梯度、更新連線權和閾值,驗證集用來估計誤差,若訓練集誤差降低但驗證集誤差升高,則停止訓練,同時返回具有最小驗證集誤差的連線權和閾值。第二種策略是“正則化”(regularization),其基本思想是在誤差目標函式中增加一個用於描述網路複雜度的部分,例如連線權和閾值的平方和。仍令這裡寫圖片描述 表示第k個訓練樣例上的誤差,這裡寫圖片描述 表示連線權和閾值,則誤差目標函式(5.16)改變為
這裡寫圖片描述


其中,這裡寫圖片描述 用於對經驗誤差與網路複雜度這兩項進行折中,常通過交叉驗證法來估計。

參考:
《機器學習》 周志華 著