AI中的BP演算法簡要整理

2021-09-12 08:09:01 字數 2449 閱讀 4634

η為學習率,後面乘以的項為loss function j(θ;x;y)的梯度,負學習率乘以梯度得到引數的增量δθ,更新引數θ = θ + δθ。

值得注意的是和大家所熟悉的sgd演算法不同,bgd為最原始的bp演算法,一次輸入整個資料集(dataset)計算梯度。

pros:

cons:公式同bgd,區別在於,sgd的梯度計算一次只用到了資料集的一部分(minibatch),用小部分資料集的梯度來近似整個資料集的梯度。

pros:

cons:剛說到sgd當資料稀疏時,容易遇到minibatch梯度不能有效近似真實梯度的情況。所以容易在模型訓練過程中遇到梯度方向不穩定,」反覆橫跳「的現象:

因此,為了防止這樣的情況,sgdm對sgd進行了一些改進:

設定了乙個引數動量vt來記錄之前t-1步迭代中梯度的加權和,然後把原來的公式:

中的θ增量δθ換成了- γ × v(t-1) - η × gardient。

也就是說每次的增量不單單包括學習率乘梯度,是動量和學習率梯度積的加權和,讓增量δθ擁有了「慣性」,不僅僅取決於當前的梯度大小方向,也考慮之前的梯度的大小方向。

當當前梯度方向與動量方向相同,那麼能夠加速向該方向迭代,反之,抑制當前梯度方向對模型迭代的影響。

棕色線是當前兩步迭代的學習率*梯度;紅色線是歷史累計動量。藍色線是不加動量,兩步迭代的結果;綠色線是加了動量之後的結果。可以看到動量對於梯度「橫跳」的抑制效果。

兩種方法放一起是因為本質上做的優化都屬於同一種方法:修改learning rate。

模型訓練中,尤其到了接近收斂的關鍵時刻,大家都希望loss function能盡快收斂,此時我們不希望這時有個過大的gradient直接導致模型引數偏離optimum,比較適合「小碎步」慢慢向optimum接近。

因此,如果我們能控制learning rate,在快要收斂的時候減小learning rate就好了。

η是全域性學習速率,實時學習速率等於η除以梯度的累計平方和的開方。這樣可以保證學習速率是逐漸下降的。

pros:

cons:

4.3 rmsprop

接上文,adagrad會導致在深度網路中,學習率到後期幾乎為0,模型無法正常迭代的情況。rmsprop對adagrad做出了小小的改進:

γ是衰減係數,因此gt並不會隨t單調下降,之前的gt對當前學習率的影響會逐漸下降,同時gt是增加還是減小取決於被γ衰減的多還是被(1-γ)gt * gt增加的多。

adam目前是cnn中較為主流的optimizor。它採用了之前用到的對sgd的大部分優化演算法。

pros:

cons:7.1 amsgrad

amsgrad對於adam的優化在於,限制了vt的最大值,因此學習速率有了下限:

7.2 adabound

基本演算法與adam一致,區別在於對學習速率同時設上限和下限,同時上下限為動態邊界, ηl下邊界,ηu是上邊界。

開始訓練時,上限無窮大,下限為0,使模型自由迭代,快速降低loss function,隨著迭代步數t的增加,上下限開始發揮作用並逐漸縮小學習速率的取值範圍。

最後,t趨於無窮時,上下限都趨於同乙個值,此時,學習速率可以視為恆定值。

sgdm可以視作lower bound=upper bound =α* 的特例;adam可以視作lower bound = 0, upper bound = ∞ 的特例。

adabound可以視作是adam隨t逐漸向sgdm的平滑過渡。

SAR成像中的BP演算法

思考 為什麼該演算法有效呢?三 四 參考文獻 bp的全稱是backprojection,即後向投影。它是受cat computer aided tomography 的啟發而誕生的,是一種經典的時域成像演算法。參考文獻5最早提出了該演算法。其顯著特徵是精確度高,計算量大。另外對雷達航跡沒有特殊要求 ...

BP演算法的推導

bp演算法步驟 1 正向傳播 輸入樣本 輸入層 各隱層 處理 輸出層 注1 若輸出層實際輸出與期望輸出 教師訊號 不符,則轉入2 誤差反向傳播過程 2 誤差反向傳播 輸出誤差 某種形式 隱層 逐層 輸入層 其主要目的是通過將輸出誤差反傳,將誤差分攤給各層所有單元,從而獲得各層單元的誤差訊號,進而修正...

BP演算法的理解

目標 通過計算輸出層和期望值之間的誤差 損失函式 來調整網路引數,從而達到誤差最小。bp演算法的本質 就是通過梯度下降法來優化網路引數。梯度下降法的本質 通過迭代的形式,計算目標函式的最小值對應的引數。目標函式在深度學習和機器學習中就是對應的誤差函式 梯度下降法的形式 泰勒公式 泰勒公式一階導數的形...