機器學習 梯度下降

2021-09-02 23:31:49 字數 2075 閱讀 6752

**梯度下降法

如果讀者對方向導數和梯度的定義不太了解,請先閱讀上篇文章《方向導數與梯度》

前些時間接觸了機器學習,發現梯度下降法是機器學習裡比較基礎又比較重要的乙個求最小值的演算法。梯度下降演算法過程如下:

1)隨機初始值

2)迭代

在這裡,簡單談一下自己對梯度下降法的理解。

首先,要明確梯度是乙個向量,是乙個n元函式f關於n個變數的偏導數,比如三元函式f的梯度為(fx,fy,fz),二元函式f的梯度為(fx,fy),一元函式f的梯度為fx

。然後要明白梯度的方向是函式f增長最快的方向,梯度的反方向是f降低最快的方向

我們以一元函式為例,介紹一下梯度下降法。

設f(x) = (x-1)2+1/2,

上圖給出了函式f的影象和初始值x0,我們希望求得函式f的最小值,因為沿負梯度方向移動一小步後,f值降低,故只需x0沿著負梯度方向移動一小步即可。

而f在點x0的導數大於0,從而f在點x0的梯度方向為正,即梯度方向為f』(x0),故由梯度下降法可知,下乙個迭代值

上述證實了我們對分析(藍色傾斜字型)的驗證。

同樣,如果處置選在了最小值的左邊,即如圖所示:

由於f』(x0)<0,所以梯度方向為負,負梯度方向為正,故需將x0沿負梯度方向移動一小步,即向右移動一小步,這樣使得f值更小一些。或用梯度下降法迭代公式

對於二元函式,我們也可以通過例項驗證梯度下降法的合理性:

在每次得到乙個點(xk,yk)時,我們需要計算(fx(xk),fy(yk)),這個方向表示梯度f增長最快的方向,-(fx(xk),fy(yk))表示梯度下降最快的方向,故只需將(xk,yk)沿著-(fx(xk),fy(yk))這個方向移動一小步,就可以減少f的值,直至收斂到最小值,如上圖所示。

談幾點梯度下降法需要注意的地方,也是自己對梯度下降法的理解:

1)梯度下降不一定可以收斂到最小值。

梯度下降法是收斂到區域性最小值,不一定可以收斂到全域性最小值。

比如:

我們初始值選擇了如圖的x0,由於f在點x0的導數大於0,梯度方向向右,負梯度方向向左,從而x0向左移動,逐漸收斂到了區域性最小值,而不能收斂到全域性最小值。

2)學習率的大小要適中。

學習率太小,每次移動步長太小,收斂太慢,這個比較容易理解。

學習率太大,每次移動步長大,可能導致不收斂,這裡用乙個圖來表示一下:

由於距離最小值點越遠,導數越大,從而導致步長越來越大,不會收斂。

3)不一定選擇負梯度方向,只要是值下降的方向即可。

在每一次迭代選擇方向時,我們只要選擇與梯度方向夾角小於90度的向量的反方向就可,不一定要選擇負梯度方向。但由於,滿足這樣條件的向量不太容易求出,我們就選擇了與梯度方向0度的向量的反方向(負梯度方向),而且這個方向函式值減少的更快,更快的收斂,故是個不錯的選擇。

4)求最大值的梯度上公升法。

f的梯度方向是f的值增長最快的方向。我們每次沿負梯度方向移動一小步可以逐步收斂到區域性最大值,因此我們每次沿梯度方向也可以得到函式f的區域性最大值。迭代公式為:

這裡梯度方向,與梯度下降法的含義不同。

機器學習 梯度下降

參照 機器學習 這本書的第4.4.3節。一.解決目標及情景假設 當給定一些資料,輸入x向量已知,輸出y也已知,設計乙個線性函式y h x 去擬合這些資料。既然是線性函式,在此不妨設為h x w0 x0 w1 x1。此時我們遇到的問題就是如何確定w0和w1這兩個引數,即w w0,w1 這個向量。既然是...

機器學習 梯度下降

1.引數要同時更新 2.初始化不同,獲得的最小值也不同,即得到的引數也不同,演算法收斂到不同的區域性最優解。凸函式只有全域性最優解,無論如何初始化,不必擔心陷入區域性最優解 3.越接近最小值時,收斂的速度最逐漸減慢,在學習率不變的情況下,越接近最小值 最優解 偏導數的絕對值會越來越小,所以演算法收斂...

機器學習 梯度下降

作者 renu khandelwal 編譯 vk medium 什麼是梯度下降?梯度下降法是一種減少成本函式的迭代機器學習優化演算法,使我們的模型能夠做出準確的 成本函式 c 或損失函式度量模型的實際輸出和 輸出之間的差異。成本函式是乙個凸函式。為什麼我們需要梯度下降?在神經網路中,我們的目標是訓練...