梯度下降法的步長到底怎麼確定?

時間 2021-05-06 12:03:20

1樓:小小何先生

最速下降法是最早的求解多元函式極值的數值方法。它直觀、簡單。它的缺點是,收斂速度較慢、實用性差。

在點處,沿什麼方向尋找下乙個迭代點呢?顯然應該沿下降方向。乙個非常直觀的想法就是沿最速下降方向,即負梯度方向:。

沿方向進行直線搜尋,由此確定下乙個點的位置,我們將稱為步長因子,滿足以下等式:

簡單合記為:

為了書寫方便,以後記。

到這裡,我們已經大概知道最速下降法是怎麼工作的,那這個步長因子到底怎麼求呢?,我們考慮特殊情況,假設我們的目標函式是正定二次函式:

目標函式對的一階梯度:

這裡引入乙個定理,之後的求解就是依據這個定理的等式進行求解:

定理:設目標函式具有一階連續偏導數,若,則。

依據定理,我們可以得到。由此有:

由此,可求解出:

最速下降法的迭代點在向極小點靠近的過程中,走的是曲折的路線:後一次搜尋方向與前一次搜尋方向總是相互垂直的,稱它為鋸齒現象。除極特殊的目標函式(如等值面為球面的函式)和極特殊的初始點外,這種現象一般都要發生。

由於鋸齒現象,在接近極小點的地方,每次迭代進行的距離變得越來越小,因而收斂速度不快,這正是最速下降法的缺點所在

2樓:半步指玄

梯度下降法屬於無約束最優化問題的一種簡單且有效的方法,本質上屬於下降迭代演算法。

迭代法的思想是:為了求函式f(x)的最優解,首先給定乙個初始值 ,然後按照某種規則,找出比 更好解 ,再按照這樣的規則找到更好的解 ......以此類推,可以得到乙個解的序列。

若這個解的序列有極限 ,即 ,則稱它收斂於 。

一般情況,迭代很難得到精確值,如果能夠得到滿足精度的近似值,迭代也可以停止。

對於極小化問題,假定迭代到某乙個點 ,從該點任何方向移動,都不能使目標函式值f(x)下降,則該點為區域性極小點,迭代停止。若存在從該點向某乙個方向 移動,得到下乙個點 ,並且使f( )),則在射線上選定新點: 。

其中 為搜尋方向, 為步長。

搜尋方向:根據泰勒展開公式可以分析得到,當其值等於其負梯度方向時,在某一範圍內下降速度最快,即: 。

對於梯度下降法的最佳步長,根據泰勒公式展開,不僅僅與梯度有關,還與海賽矩陣H有關係,可以參見公式: 。

但是因為海瑟矩陣計算比較麻煩,在求最佳步長的時候,有時候可以用代入法。對於已知的值 ,我們可以求出 ,將得到的用 表示的帶入到f(x)當中得到 ,然後對其求導等於0,即: ,則可以求出 。

3樓:莫西

調參的時候要保持步長不變嗎?我的步長開始選的10^(-5)太小了約束條件不滿足變化規律,現在調到10還是不對,不知道怎麼辦了

4樓:

1)一般的凸的、連續可導的情況下,我喜歡採用

Goldstein-Armijo rule 的方法來尋找步長。這類似於乙個line-search,只是line search尋找的是

(1)我們只找乙個能讓函式值下降到一階近似一定比例的情況即可. 這類方法對有約束的凸問題都適用。

2)一般的凸的、連續可導的情況下,還有一種很好的方法叫bb-rule,這種方法也非常快,缺點是不能保證函式單調下降,我試過與1)一起使用效果還不錯。

還有一些其它尋找梯度的經典方法,比如steepset descent。

對於凸的,一階可導的,梯度Lipschitz-continuous問題,如eta li所說。要看梯度的Lipschitz constant是多少,假設為L,我們需要步長<=1/L才能保證函式收斂。(但是我們可以用1)中所述方法來尋找乙個不那麼保守的步長來減小迭代步數)

如果strongly convex constant 和Lipschitz constant都能確定的特殊條件下,我比較建議用一階方法(梯度下降這類的)先讓函式收斂到牛頓法的鄰域之內,在用LBFGS這類方法,然後就能很快收斂了。

5樓:

1. full gradient 一般會用 Line search https://

en.wikipedia.org/wiki/Backtracking_line_search2.

sgd 一般用自適應的learning rate,比如 ADAGRAD,AdaDelta, ADAM 等。其中 AdaDelta, Adam 是包含了二階資訊。

6樓:li Eta

梯度下降法的搜尋方向顧名思義就是梯度方向,也就是當前點所在地形最陡峭的下降方向(你這個圖裡面只有左右兩個方向)。

步長的選擇要看函式的性質,一般可導函式,只要步長足夠小,則保證每次函式值都不會增加,此外:

1. 如果函式可導,且函式的梯度滿足李普希茲連續(常數為L),若以小於 的步長迭代,則能保證每次迭代的函式值都不增,則保證最終會收斂到梯度為0的點。也可以採用Line search確定步長,Line search的本質目的其實也是為了保證函式值下降(或稱作不增)。

2. 如果函式還是凸的,則最終會走到最優點。

梯度提公升樹採用的是梯度下降法嗎?

雜言 是的,巨集觀來看是這樣的。GBDT的過程有點像神經網路的梯度下降到達最值,只要把神經網路的負梯度更新引數視為函式 基分類器 完成即可。另外,我覺得其實名字很迷惑,我當時還覺得明明是梯度下降的思想,為什麼要用梯度提公升樹這個名字?我感覺梯度提公升樹,應該是指使用梯度的提公升樹,所以梯度提公升樹準...

梯度下降法是萬能的模型訓練演算法嗎?

螃蟹貓 梯度下降是最優化最基本的方法。機器學習把問題抽象為最優化問題。因此你覺得梯度下降成了機器學習的萬能方法。然而,就像梯度下降的缺點一樣,你這個 覺得 很可能是個區域性最優。 田star 並不是。如果有梯度的資訊,有限記憶體BFGS是更好的辦法!而且所謂的學習率,如果不是凸問題就不能設定為常數,...

R語言中有哪些最優化的包?有隨機梯度下降法的包麼?

R有乙個 sgd package sgd Stochastic gradient descent Description Run stochastic gradient descent in order to optimize the induced loss function given a mo...