BP演算法和LMBP演算法

計算機女孩絕不認輸發表於2021-01-03

BP演算法

反向傳播演算法(BP演算法)是一種監督學習演算法,常被用來訓練多層感知機。BP演算法由兩個環節(激勵傳播、權重更新)反覆迴圈迭代,直到網路對輸入的響應大到預定的目標範圍為止。
激勵傳播包含:(向前傳播階段)將訓練輸入送入網路以獲得激勵響應啊;(反向傳播階段)將激勵響應同訓練輸入對應的目標輸入求差(t-a),從而獲得隱層和輸出層的響應誤差。
權重更新包括:首先將輸入激勵和響應誤差相乘(sm*(a(m-1))),從而獲得權重的梯度;然後,將這個梯度乘上一個比例(∂*sm*(a(m-1)))並去反後加到權重上。
在這裡插入圖片描述

LMBP演算法

Levenberg-Marquardt演算法是牛頓法的一種變形,用於最小化非線性函式的平方和。也可以看成是最速下降法和高斯牛頓法的結合(通過調節阻尼μ切換),當解距離最優解較遠時,演算法更接近最速下降法,慢卻保證下降;當解接近最優解,演算法接近高斯牛頓法,快速收斂。非常適用於採用均方誤差為效能指標的神經網路的訓練。
核心思想:用雅可比矩陣(易計算)代替Hessian矩陣的計算,使得優化效率得到提升。
LMBP是加速收斂BP演算法的其中一種標準的數值優化方法。
優點:由於需要求解矩陣的逆,所以在每次迭代中需要更多的計算。但是既便如此,在網路引數個數適中的情況下,LMBP演算法依然是最快的神經網路訓練演算法。
缺點:儲存需求大。所需儲存近似Hessian矩陣JTJ(n*n的矩陣,其中n是神經網路中引數(權值與偏置值)的個數)。因此當引數的數量非常大時,LMBP演算法是不實用的。
Levenberg-Marquardt反向傳播演算法迭代總結:
1、將所有的輸入傳入網路,並計算網路對應的輸出及誤差 。計算所有輸入的平方誤差之和F(X)。
2、計算Jacobian矩陣。通過初始化之後,使用回覆關係來計算這些敏感度。增廣個體矩陣到Levenberg-Marquardt敏感度。計算Jacobian矩陣中的元素。
3、求解獲得
4、使用來再次計算平方誤差的和。如果新的平方和小於第1步中計算的結果,將μ除以 ,令 並回到第1步。如果平方和沒有減小,那麼使用 乘以μ,並回到第3步。
當這個梯度的範數小於某一個先前設定值時,或者當平方和減小到某個目標誤差時,此演算法被認為是已經收斂的。

相關文章