日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

什么是梯度下降法?

發布時間:2023/11/28 生活经验 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 什么是梯度下降法? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

20220114

y=θx
θ取一個初始值
x,y是樣本對
θ = θ + -梯度
θ不斷改變知道左右兩邊相差小于誤差

梯度下降從來都是擬合負梯度,GBDT平方損失只是恰好等于殘差
https://mp.weixin.qq.com/s/F4YHEpfa280cpR4tgL0Maw
AI面試題之GBDT梯度提升樹

張戎?數學 話題的優秀回答者564 人贊同了該回答

梯度下降法簡單來說就是一種尋找目標函數最小化的方法。

張戎:深度學習中的優化算法

在深度學習中,經常有人會拿下面這幅圖來比較各種優化算法的性質,包括傳統的 SGD,Momentum SGD,AdaGrad,RMSProp 和 Adam 等。不過光看圖可能無法理解其中的精妙之處,本文將會從數學的基礎知識出發,初步介紹深度學習中的一些優化算法,最后進行一些簡單的案例分析。

數學基礎知識回顧

一元函數的導數與 Taylor 級數

在微積分中,函數 在點 上的導數定義為: 它在幾何上指的就是函數 在 上的切線方向。

通常來說,為了計算某個函數 的最大值或者最小值,通常都會計算它的導數 ,然后求解方程 就可以得到函數的臨界點,進一步判斷這些臨界點是否是最大值或者最小值。但是臨界點并不一定是全局最大值或者全局最小值,甚至不是局部的最大值或者局部最小值。

例如:函數 ,它的導數是 ,因此 是它的臨界點。但 則不是這個函數的局部最大值或者局部最小值點,因為 且 。

從 Taylor 級數的角度來看, 在 附近的 Taylor 級數是

對于臨界點 而言,它滿足條件 。當 時,可以得到 是 的局部最小值;當 時,可以得到 是 的局部最大值。而對于上面的例子 而言,臨界點 的二階導數則是 ,因此使用上面的方法則無法判斷臨界點 是否是局部極值。


多元函數的梯度和 Taylor 級數

對于多元函數 而言,同樣可以計算它們的“導數”,也就是偏導數和梯度,i.e. 它的梯度可以定義為:

而多元函數 在點 上的 Taylor 級數是:

其中 表示 Hessian 矩陣。如果 是臨界點,并且 Hessian 矩陣是正定矩陣的時候, 在 處達到局部極小值。


梯度下降法

從數學上的角度來看,梯度的方向是函數增長速度最快的方向,那么梯度的反方向就是函數減少最快的方向。那么,如果想計算一個函數的最小值,就可以使用梯度下降法的思想來做。假設希望求解目標函數 的最小值,可以從一個初始點 開始,基于學習率 構建一個迭代過程:當 時,

其中 ,一旦達到收斂條件的話,迭代就結束。從梯度下降法的迭代公式來看,下一個點的選擇與當前點的位置和它的梯度相關。反之,如果要計算函數 的最大值,沿著梯度的反方向前進即可,也就是說:

其中 。整體來看,無論是計算函數的最大值或者最小值,都需要構建一個迭代關系 ,那就是:

也就是說對于所有的 ,都滿足迭代關系 。所以,在以上的兩個方法中,我們可以寫出函數 的表達式為:


深度學習中的優化算法

在本文中,假設 是每個樣本的損失函數, 表示一個關于輸入 和參數 的函數,并且 表示 所對應的目標值。


案例分析

案例1:

針對這個函數 而言,從數學上我們可以輕易地得到最小值點就是 。不過在這里我們可以驗證隨機梯度下降法的效果。首先計算函數 的梯度為:

其次,給定一個隨機的初始點 ,通過梯度可以得到迭代公式為:

其中 表示學習率, 表示迭代次數。因此,可以計算出具體的公式為:

于是可以得到:

意思就是說,使用隨機梯度下降法我們可以得到函數 的最小值是 。


案例2:

不過,隨機梯度下降法也有著自身的局限性。針對很多高維非凸函數而言,鞍點的數量其實遠遠大于局部極小值(極大值)的數量。因此,如何快速的逃離鞍點就是深度學習中大家所研究的問題之一。而比較簡單的鞍點就是馬鞍面函數 中的 點。而函數 在 上并沒有最小值,因為 。 同時,函數 的偏導數是:

而 在點 上則滿足以下幾個性質:

也就是說, 這一點的 Hessian 矩陣并不是正定矩陣。


隨機梯度下降法:如果初始點是 ,那么隨機梯度下降法(SGD)就可以寫成:對于所有的 ,有

其中 是學習率。


使用動量的隨機梯度下降法:如果初始點是 ,初始速度是 ,學習率是 ,動量參數是 ,那么使用動量的隨機梯度下降法就可以寫成: ,


AdaGrad 算法:如果初始點是 ,學習率是 , 是小常數,那么 AdaGrad 算法就可以寫成: ,

其中 是學習率, 是一個小常數。


Case 1:

當 時,如果使用隨機梯度下降法,就可以得到 ,

因此, 。 通過隨機梯度下降法(SGD)在初始值為 的前提下并不能計算出函數 的最小值,而是會停止在 鞍點這個地方,最終無法逃離鞍點。

同理,如果使用基于動量的 SGD 算法,就要看初始速度的設置了,如果初始的速度為 ,那么最終都會收斂到 這個點上。不過,如果 ,那么就可以在一定次數的迭代之后逃離 。

根據同樣的分析思路,在本文中所寫的 AdaGrad,RMSProp,Adam 算法中,如果初始點是 并且算法參數都是默認的話,使用這些方法同樣無法逃離鞍點 ,也就是說最終都會收斂到 上。


Case 2:

在這種情況下,可以考慮在 的基礎上給縱坐標加上一個微小的擾動。不妨假設初始點為 。下面計算各個算法在這個初始值下的收斂效果。在實際的應用中,需要迭代的次數越少越好。于是,通過計算 的值,就可以進一步判斷哪個算法(SGD,Momentum SGD,AdaGrad,RMSProp,Adam)更加容易逃離鞍點。


隨機梯度下降法:通常情況下, 可以設置為 。從隨機梯度下降法的公式來看,就可以得到如下迭代公式:

其實, ,i.e. 使用梯度下降法同樣可以找到函數 的最小值。但是,如果 ,則 需要滿足條件:

換言之,需要迭代 次左右才能夠使得 。


AdaGrad 算法:通常來說,在 AdaGrad 算法中,算法的參數默認值是 和 。由于初始值 ,所以計算可以得到:

最后通過寫程序就可以證明,在 AdaGrad 的默認參數下,只需要 次左右的迭代就可以實現 。


RMSProp 算法:

在這種情況下,為了簡單起見,可以令衰減速率 ,那么同樣可以寫出迭代公式為: ,有

在 RMSProp 里面,一般來說小常數 , 。通過直接計算可以知道,在這種情況和參數設置下,在迭代了 輪左右的時候,就會出現 的情況。

整體來說,在初始值為 的情況下,無論是 SGD,Momentum SGD,AdaGrad 算法,還是 RMSProp 算法,都會逃離鞍點 。只不過 AdaGrad 和 RMSProp 算法的逃離速度比 SGD 快了許多。

發布于 2019-02-24?贊同 564??22 條評論?分享?收藏?喜歡收起? ![在這里插入圖片描述](https://img-blog.csdnimg.cn/20200221112404144.jpg)

總結

以上是生活随笔為你收集整理的什么是梯度下降法?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。