導航:首頁 > 源碼編譯 > 梯度演算法步長

梯度演算法步長

發布時間:2022-10-29 09:03:42

① 梯度下降法原理和步驟

一、梯度法思想
梯度法思想的三要素:出發點、下降方向、下降步長。
機器學習中常用的權重更新表達式為
:,這里的λ就是學習率,本文從這個式子出發來把機器學習中的各種「梯度」下降法闡釋清楚。
機器學習目標函數,一般都是凸函數,什麼叫凸函數?限於篇幅,我們不做很深的展開,在這兒我們做一個形象的比喻,凸函數求解問題,可以把目標損失函數想像成一口鍋,來找到這個鍋的鍋底。非常直觀的想法就是,我們沿著初始某個點的函數的梯度方嚮往下走(即梯度下降)。在這兒,我們再作個形象的類比,如果把這個走法類比為力,那麼完整的三要素就是步長(走多少)、方向、出發點,這樣形象的比喻,讓我們對梯度問題的解決豁然開朗,出發點很重要,是初始化時重點要考慮的,而方向、步長就是關鍵。事實上不同梯度的不同就在於這兩點的不同!
梯度方向是

,步長設為常數Δ,這時就會發現,如果用在梯度較大的時候,離最優解比較遠,W的更新比較快;然而到了梯度較小的時候,也就是較靠近最優解的時候,W的更新竟然也保持著跟原來一樣的速率,這樣會導致W很容易更新過度反而遠離了最優解,進而出現在最優解附近來回震盪。所以,既然在遠離最優解的時候梯度大,在靠近最優解的時候梯度小,我們讓步長隨著這個律動,於是我我們就用λ|W|來代替Δ,最後得到了我們熟悉的式子:

所以說這時的λ是隨著坡度的陡緩而變化的,別看它是個常數。
二、全量梯度下降法(Batch gradient descent)
全量梯度下降法每次學習都使用整個訓練集,因此每次更新都會朝著正確的方向進行,最後能夠保證收斂於極值點,凸函數收斂於全局極值點,非凸函數可能會收斂於局部極值點,缺陷就是學習時間太長,消耗大量內存。
第二、隨機梯度下降法(Stochastic Gradient Descent)
SGD一輪迭代只用一條隨機選取的數據,盡管SGD的迭代次數比BGD大很多,但一次學習時間非常快。
SGD的缺點在於每次更新可能並不會按照正確的方向進行,參數更新具有高方差,從而導致損失函數劇烈波動。不過,如果目標函數有盆地區域,SGD會使優化的方向從當前的局部極小值點跳到另一個更好的局部極小值點,這樣對於非凸函數,可能最終收斂於一個較好的局部極值點,甚至全局極值點。
缺點是,出現損失函數波動,並且無法判斷是否收斂。

② 什麼是梯度法為什麼在接近目標函數的極值點時,梯度法的收斂速度會變慢

梯度下降法是一個最優化演算法,通常也稱為最速下降法。最速下降法是求解無約束優化問題最簡單和最古老的方法之一,雖然現在已經不具有實用性,但是許多有效演算法都是以它為基礎進行改進和修正而得到的。最速下降法是用負梯度方向為搜索方向的,最速下降法越接近目標值,步長越小,前進越慢。

③ 梯度的計算公式是什麼

梯度的計算公式:gra=aₓ(∂u/∂x)+aᵧ(∂u/∂y)+az(∂u/∂z)

梯度的本意是一個向量(矢量),表示某一函數在該點處的方向導數沿著該方向取得最大值,即函數在該點處沿著該方向(此梯度的方向)變化最快,變化率最大(為該梯度的模)。

(3)梯度演算法步長擴展閱讀:

在向量微積分中,標量場的梯度是一個向量場。標量場中某一點上的梯度指向標量場增長最快的方向,梯度的長度是這個最大的變化率。更嚴格的說,從歐幾里得空間Rn到R的函數的梯度是在Rn某一點最佳的線性近似。在這個意義上,梯度是雅可比矩陣的特殊情況。

在單變數的實值函數的情況,梯度只是導數,或者,對於一個線性函數,也就是線的斜率。

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

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


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

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

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

⑤ 梯度下降法是什麼

梯度下降法(英語:Gradient descent)是一個一階最優化演算法,通常也稱為最陡下降法,但是不該與近似積分的最陡下降法(英語:Method of steepest descent)混淆。

要使用梯度下降法找到一個函數的局部極小值,必須向函數上當前點對應梯度(或者是近似梯度)的反方向的規定步長距離點進行迭代搜索。

如果相反地向梯度正方向迭代進行搜索,則會接近函數的局部極大值點;這個過程則被稱為梯度上升法。

梯度下降演算法使用當前位置的梯度迭代計算下一個點,然後對其進行縮放(按學習率)並從當前位置減去獲得的值(邁出一步)。它減去該值,因為我們想要最小化函數(最大化它會增加)。

缺點

梯度下降法的缺點包括:

1、靠近局部極小值時速度減慢。

2、直線搜索可能會產生一些問題。

3、可能會「之字型」地下降。

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

自適應濾波器的收斂速度在很大程度上取決於步長因子.當步長參數較大時,濾波器收斂到穩態需要迭代次數較少,但濾波效果比步長較小時差,而且均方誤差的穩態值隨著步長的變大而增大;但是當步長參數較小時,收斂速度則會降低,因此只有選擇合適的步長參數,才能使該濾波器的性能穩定.

⑦ 機器學習中隨機梯度下降法的步長參數

梯度下降法是一個一階最優化演算法,通常也稱為最速下降法。 要使用梯度下降法找到一個函數的局部極小值,必須向函數上當前點對應梯度(或者是近似梯度)的反方向的規定步長距離點進行迭代搜索。如果相反地向梯度正方向迭代進行搜索,則會接近函數的局部極大值點;這個過程則被稱為梯度上升法。梯度下降法的優化思想是用當前位置負梯度方向作為搜索方向,因為該方向為當前位置的最快下降方向,所以也被稱為是」最速下降法「。最速下降法越接近目標值,步長越小(cost函數是凸函數,比如x^2梯度就是越來越小),前進越慢。梯度下降法的搜索迭代示意圖如下左圖所示:圖片示例了這一過程,這里假設F定義在平面上,並且函數圖像是一個碗形。藍色的曲線是等高線(水平集),即函數F為常數的集合構成的曲線。紅色的箭頭指向該點梯度的反方向。(一點處的梯度方向與通過該點的等高線垂直)。沿著梯度下降方向,將最終到達碗底,即函數F值最小的點。

梯度下降法實現簡單,當目標函數是凸函數時,梯度下降法的解是全局解。一般情況下,其解不保證是全局最優解,梯度下降法的速度也未必是最快的。對於上面的linear regression問題,最優化問題對theta的分布是unimodal,即從圖形上面看只有一個peak,所以梯度下降最終求得的是全局最優解。然而對於multimodal的問題,因為存在多個peak值,很有可能梯度下降的最終結果是局部最優。

⑧ 梯度下降的求解過程

顧名思義,梯度下降法的計算過程就是沿梯度下降的方向求解極小值(也可以沿梯度上升方向求解極大值)。
其迭代公式為 ,其中 代表梯度負方向, 表示梯度方向上的搜索步長。梯度方向我們可以通過對函數求導得到,步長的確定比較麻煩,太大了的話可能會發散,太小收斂速度又太慢。一般確定步長的方法是由線性搜索演算法來確定,即把下一個點的坐標ak+1看做是的函數,然後求滿足f(ak+1)的最小值的 即可。
因為一般情況下,梯度向量為0的話說明是到了一個極值點,此時梯度的幅值也為0.而採用梯度下降演算法進行最優化求解時,演算法迭代的終止條件是梯度向量的幅值接近0即可,可以設置個非常小的常數閾值。

⑨ 梯度法<sup>[1,6]</sup>

設地球物理數據和模型參數之間滿足以下非線性關系:

d=f(m) (8.1)

其中:f表示非線性運算元;d、m都是列向量。

建立如下目標函數:

φ(m)=[d-f(m)]2=min (8.2)

目標函數在模型mi處的梯度為

地球物理反演教程

梯度法的模型修改量是目標函數的負梯度:

mi+1=mi+Δmi=mi-λgi(8.4)

其中:λ為步長因子,是一個數,用來控制修改量的大小;g、m都為列向量。

下面推導λ的計算公式。

將式(8.2)目標函數φ(m)按泰勒公式展開,並略去高次項得

地球物理反演教程

將式(8.4)中的Δmi=-λgi帶入式(8.5)得

地球物理反演教程

設經過修改模型後,目標函數φ(mi+1)為零,有

地球物理反演教程

由上式可推出步長因子λ的計算公式:

地球物理反演教程

給定初始模型mi後,首先計算出梯度gi,然後按式(8.8)計算步長因子,最後按式(8.4)修改模型。如果:

φ(mi+1)<φ(mi) (8.9)

則說明修正量合適,採用新模型繼續迭代。否則減小λ後再計算,一般λ減小一半。

梯度法的計算過程如下:

(1)給定初始模型m0;

(2)進行正演計算;

(3)判斷是否滿足精度要求,是則反演結束,否則進行第(4)步;

(4)按照式(8.4)修改模型,轉第(2)步。

一般反演精度採用實測數據和理論數據的相對均方差來量度。

因為目標函數的梯度就是φ值下降最快的方向,所以梯度法又稱為「最速下降法」。下面用一個簡單的例子來說明梯度法的原理。設有如下一維目標函數:

φ(x)=f(x) (8.10)

從圖8.1可見,x0為目標函數的極小值點。g1為x1處的梯度,g2為x2處的梯度。如果初始模型為x1,模型修改量應該為正值才能使目標函數向最小值前進。從圖上可知g1為負值,負梯度為正,滿足修改方向。同理如果初始模型為x2,模型修改量應該為負值。從圖上可知g2為正值,負梯度為負值,滿足修改量為負值的要求。

圖8.1 一維目標函數示意圖

從這個例子容易看出即使初始模型遠遠偏離極小值點,只要按照負梯度方向修改模型參數,總能使目標函數達到極小值點。但是上圖的極小值點只有一個,容易達到全局極小,如果目標函數具有多個極小值點,那麼初始模型的選擇就很關鍵了,選的不好容易陷入局部極小。此外在極小值點附近梯度法反演收斂的速度將會很慢。因此一般在反演的開始採用梯度法,在反演的後期採用其他收斂速度快的反演方法,如前面所介紹的最小二乘法(或稱為高斯-牛頓法)。

圖8.2 最小二乘法和梯度法修正方向示意圖

最小二乘法和梯度法在極小值點附近的模型修正方向如圖8.2所示[10]。這個圖形將形象的說明為何梯度法在極小值點附近收斂速度慢。

圖8.2是二維的簡單情況,目標函數是個橢圓面。在初始模型m0處梯度法的修正方向是最速下降方向,也就是和等值線的切線垂直的方向,可見它的方向偏離橢圓的中心極小值點。而最小二乘法(高斯-牛頓法)是解橢圓函數最優化問題的精確方法[6],它的修正方向將會指向橢圓的中心極小值點。因此在接近極小值點附近最小二乘法的收斂速度要快於梯度法。

為了克服最速下降法收斂慢的缺點,1964年Fletcher和Reeves提出了無約束極小化的共軛梯度法,它是直接從Hestenes和Stiefel(1952)解線性方程組的共軛梯度法發展而來。共軛梯度法使最速下降方向具有共軛性,提高了演算法的有效性和可靠性[6]

梯度法的關鍵是計算目標函數的梯度,最終還是會歸結為計算觀測數據對模型參數的偏導數。在一維反演時可以用有限差分法進行偏導數的計算,在高維反演時可以採用其他快速計算偏導數的方法,如第9章將要介紹的利用互換定理計算二維直流電測深偏導數矩陣。

閱讀全文

與梯度演算法步長相關的資料

熱點內容
windows拷貝到linux 瀏覽:751
mdr軟體解壓和別人不一樣 瀏覽:884
單片機串列通信有什麼好處 瀏覽:320
游戲開發程序員書籍 瀏覽:843
pdf中圖片修改 瀏覽:269
匯編編譯後 瀏覽:474
php和java整合 瀏覽:830
js中執行php代碼 瀏覽:442
國產單片機廠商 瀏覽:57
蘋果手機怎麼設置不更新app軟體 瀏覽:284
轉行當程序員如何 瀏覽:493
蘋果id怎麼驗證app 瀏覽:864
查看手機命令 瀏覽:953
抖音反編譯地址 瀏覽:227
如何加密軟體oppoa5 瀏覽:234
java從入門到精通明日科技 瀏覽:97
拆解汽車解壓視頻 瀏覽:599
新版百度雲解壓縮 瀏覽:593
android上下拉刷新 瀏覽:880
centos可執行文件反編譯 瀏覽:839