機器學習(九)梯度下降演算法

2021-08-20 07:58:42 字數 1168 閱讀 9586

梯度:是乙個向量,其方向上的方向導數最大,其大小正好是此最大方向導數。

關於梯度的更多介紹請看:如何直觀形象的理解方向導數與梯度以及它們之間的關係?

乙個標量函式φ的梯度記為:

在三維直角座標系中表示為:

梯度下降法(英語:gradient descent)是乙個一階最優化演算法,通常也稱為最速下降法。 要使用梯度下降法找到乙個函式的區域性極小值,必須向函式上當前點對應梯度(或者是近似梯度)的反方向的規定步長距離點進行迭代搜尋。如果相反地向梯度正方向迭代進行搜尋,則會接近函式的區域性極大值點;這個過程則被稱為梯度上公升法。

梯度下降法基於以下觀察的:如果實值函式f(x)在a處可微且有定義,那麼函式f(x)在a點沿著梯度相反的方向-▽f(a)下降最快。

因而,假設

對於γ>0為乙個夠小數值時成立,那麼f(a)≥f(b)。

考慮到這一點,我們可以從函式f的區域性極小值的初始估計x

0出發,考慮到如下序列x

0,x1,x

2,....使得:

因此可以得到

如果順利的話,序列(x

n)收斂到期望的極值。注意每次迭代的γ可以改變。

下面的這張展示了這一過程,這裡假設f定義在平面上,並且函式影象是乙個碗形。藍色的曲線是等高線,即函式f為常數的集合構成的曲線。紅色的箭頭指向該點梯度的反方向。(一點處的梯度方向與通過該點的等高線垂直)。沿著梯度下降方向,將最終到達碗底,即函式f值最小的點。

梯度下降法處理一些複雜的非線性函式會出現問題,例如rosenbrock函式

其最小值在(x,y)=(1,1)處,數值為f(x,y)=0。優化過程是之字形的向極小值點靠近,速度非常緩慢。

參考:

機器學習演算法(四) 梯度下降法

在對模型優化時,希望通過梯度下降法使得模型的損失函式降低。目前主要的梯度下降法有sgd momentum adagrad rmsprop adam幾種,接下來將詳細討論這幾種方法以及他們的優缺點。隨機選取乙個樣本的損失來近似整體樣本的平均損失,sgd在進行引數更新時的計算方式為 t t 1 gt t...

機器學習(三) 梯度下降法

本部落格大部分參考了這篇博文 在微積分裡面,對多元函式的引數求 偏導數,把求得的各個引數的偏導數以向量的形式寫出來,就是梯度。比如函式f x,y 分別對x,y求偏導數,求得的梯度向量就是 f x f y 簡稱gr adf x,y 或者 f x,y 如果是3個引數的向量梯度,就是 f x f y,f ...

機器學習系列3 梯度下降

梯度下降 gradient descent 是乙個用來求代價函式最小值的演算法。梯度下降演算法的思想就是首先先從一組引數值 0,1 開始,不斷地去嘗試各種 0,1 直到使得代價函式 j 0,1 最小為止。以下圖代價函式為例,從不同起始點開始,到達的區域性最優位置不同,也就是區域性最優解不同。那麼如何...