基於梯度下降法的置信域法和阻尼法

2021-09-29 11:48:24 字數 2453 閱讀 5140

在神經網路中,訓練函式是重要組成部分,也是較為複雜的概念。對於什麼問題,什麼樣的資料模型,該用什麼樣的訓練函式對訓練後的結果起著至關重要的作用。常用的訓練函式有:1.梯度下降法;2.有動量的梯度下降法;3.擬牛頓法;4.列文伯格-馬奎特演算法。

對於非線性的優化這些方法都是通過迭代來進行的,從初始起點x0逐漸逼近滿足條件的點x*。大多數的訓練函式都需要滿足以下的下降條件:

我們假設函式f在定義域內是可微的並且是平滑的,那麼我們通過泰勒展開式可以得到:

這裡h是下降的步長,||h||指的是向量h的2範數,即

其中g是梯度,

h是海塞矩陣,

通過泰勒展開式我們發現當||h||很小時,o(||h||^3)是 ||h||^3的高階無窮小,此時泰勒展開式又可以寫成如下形式:

函式l(h)只是當h很小的時候對於f(x+h)的近似。對於h的確定先來介紹兩種方法,一種是基於置信域,另一種是基於阻尼方法。

在置信域中,我們假設存在乙個正數△,然後構建乙個以x為圓心,△為半徑的圓域,於是我們將||h||限定在整個圓域內,關於h的確定方法如下所示:

基於阻尼方法的h確定法如下:

阻尼係數μ≥0。而

是用來懲罰較大的步長h。然而下降法演算法的核心就在於h的確定以及如何更新步長h,使得變數x能夠快速準確地逼近最優解。在基於上述兩種方法和下降條件的限制,有如下偽**:

如果f(x+h)≥f(x),**什麼都不會做,除非已經逼近最優解。那麼現在問題來了,我們該如何確定△或者μ呢?這裡介紹兩種方法,一種是馬奎特在2023年提出的,另一種是尼爾森在2023年提出的方法。

首先我們引入增益比的概念,用增益比來確定什麼情況下給△或者μ如何進行更新操作。

如果分子為負數,那麼顯然不滿足下降條件,此時步長h並不是下降趨勢,言外之意就是h過大了我們應該想辦法減小h。在置信域中,我們通過圓域的半徑長度△來限定步長h,下面的更新方法被廣泛採用:

所以,如果ρ<1/4,我們決定縮小圓域的半徑△,減小步長h;如果ρ>3/4,我們決定擴大圓域的半徑△,增大步長h。然而置信域演算法對於0.25-0.75之間的微小變化值並不怎麼敏感。這就造成ρ在0.25的右鄰域和0.75的左鄰域突然變化時,會產生突變,產生振盪,從而減緩收斂速度。基於阻尼方法,馬奎特提出了如下的演算法模型:

μ是阻尼係數,當ρ<1/4時,我們通過增大阻尼係數來減小步長h;當ρ>3/4時,我們通過減小阻尼係數來增大步長h。但是通過上面的演算法模型我們可以看出,馬奎特演算法模型依然存在第一種方法的弊端,即在0.25-0.75之間,μ值並不連續,這很可能會產生振盪減緩收斂速度。然而,尼爾森提出的演算法模型勝過馬奎特的演算法模型。

上圖中,虛線代表馬奎特演算法模型,實線代表尼爾森演算法模型。

對於v和μ我們分別將其初始化為2和1,從上面的圖中我們可以看出,尼爾森演算法模型在ρ的整個定義域內都是連續的,這就很好地彌補了馬奎特演算法模型的缺點。

這裡簡單討論一下基於阻尼法的步長h的求法。

通過上文我們已知

將數學公式轉換成數學語言,即求函式l(h)+1/2μhth取得最小值時h的取值。由高等數學的知識我們可以通過對函式求一階導數來實現問題的求解。首先,我們令

所以h就是下列函式的解:

這裡對h的求導用到了矩陣分析的相關概念和公式,這裡不再展開講解。

由於我們再對f(x+h)求一階導數,帶入到ψu』的表示式中,得到,

由於我們要求l(h)取得最小值時所對應的h,所以這裡海塞矩陣h=f』』(x)是正定的對陣矩陣,從而h+μi也是正定的對陣矩陣,這裡i是單位矩陣。對於海塞矩陣h=f』』(x)為什麼是正定矩陣,這裡給出簡單的證明:

f(x+h)的泰勒展開式如下:

我們假設h是正定的,故存在變數δ>0使得下式成立:

從上式我們可以看出,||h||非常小,以至於f(x+h)的泰勒展開式等式右邊第三項完全取決於第二項。所以,當h正定的時候,求解得到的h一定是l(h)取得最小值時所對應的點。我們將g=f』(x),h=f』』(x)帶入下式,

得到關於h的方程:

求解以上方程得到步長h。

當μ值較大時,我們又可以得到關於h的近似解:

梯度下降法和隨機梯度下降法的區別

梯度下降和隨機梯度下降之間的關鍵區別 1 標準梯度下降是在權值更新前對所有樣例彙總誤差,而隨機梯度下降的權值是通過考查某個訓練樣例來更新的。2 在標準梯度下降中,權值更新的每一步對多個樣例求和,需要更多的計算。3 標準梯度下降,由於使用真正的梯度,標準梯度下降對於每一次權值更新經常使用比隨機梯度下降...

梯度下降法和隨機梯度下降法的區別

這幾天在看 統計學習方法 這本書,發現 梯度下降法 在 感知機 等機器學習演算法中有很重要的應用,所以就特別查了些資料。一.介紹 梯度下降法 gradient descent 是求解無約束最優化問題的一種常用方法,有實現簡單的優點。梯度下降法是迭代演算法,每一步需要求解目標函式的梯度向量。二.應用場...

牛頓法和梯度下降法的區別

解析 牛頓法 newton s method 牛頓法是一種在實數域和複數域上近似求解方程的方法。方法使用函式f x 的泰勒級數的前面幾項來尋找方程f x 0的根。牛頓法最大的特點就在於它的收斂速度很快。具體步驟 首先,選擇乙個接近函式 f x 零點的 x0,計算相應的 f x0 和切線斜率f x0 ...