梯度下降(Gradient Descent)

梯度下降法(Gradient Descent):是求解機器學習算法的模型參數(即無約束最優化問題)時,最常用的方法之一。

                                                                梯度下降法是一種迭代算法,每一步需求解目標函數的梯度向量。

什麼叫梯度?在微積分裏面,對多元函數的參數求∂偏導數,把求得的各個參數的偏導數以向量的形式寫出來,就是梯度。

                        比如函數f(x,y), 分別對x,y求偏導數,求得的梯度向量就是(∂f/∂x, ∂f/∂y)T,簡稱grad f(x,y)或者▽f(x,y)。

從幾何意義上講,就是函數變化增加最快的地方。

具體來說,對於函數f(x,y),在點(x0,y0),沿着梯度向量的方向就是(∂f/∂x0, ∂f/∂y0)T的方向是f(x,y)增加最快的地方。

或者說,沿着梯度向量的方向,更加容易找到函數的最大值。反過來說,沿着梯度向量相反的方向,

也就是 -(∂f/∂x0, ∂f/∂y0)T的方向,梯度減少最快,也就是更加容易找到函數的最小值。


梯度下降法與梯度上升法的關係:在機器學習算法中,在最小化損失函數時,可以通過梯度下降法來一步步的迭代求解,得到最小化的損失函數,和模型參數值。  反過來,如果我們需要求解損失函數的最大值,這時就需要用梯度上升法來迭代了。

梯度下降法和梯度上升法是可以互相轉化的。比如我們需要求解損失函數f(θ)的最小值,這時我們需要用梯度下降法來迭代求解。但是實際上,我們可以反過來求解損失函數 -f(θ)的最大值,這時用梯度上升法就可以了。

梯度下降法不一定能夠找到全局的最優解,有可能是一個局部最優解。當然,如果損失函數是凸函數,梯度下降法得到的解就一定是全局最優解。梯度下降法的收斂速度也未必是很快的。

相關概念:

1. 步長(Learning rate):步長決定了在梯度下降迭代的過程中,每一步沿梯度負方向前進的長度。用上面下山的例子,步長就是在當前這一步所在位置沿着最陡峭最易下山的位置走的那一步的長度。

2.特徵(feature):指的是樣本中輸入部分,比如樣本(x0,y0),(x1,y1),則樣本特徵爲x,樣本輸出爲y。

3. 假設函數(hypothesis function):在監督學習中,爲了擬合輸入樣本,而使用的假設函數,記爲hθ(x)。

比如對於樣本(xi,yi)(i=1,2,...n),可以採用擬合函數如下: hθ(x) = θ01x。

4. 損失函數(loss function):爲了評估模型擬合的好壞,通常用損失函數來度量擬合的程度。損失函數極小化,意味着擬合程度最好,對應的模型參數即爲最優參數。

在線性迴歸中,損失函數通常爲樣本輸出和假設函數的差取平方。

    

梯度下降法的代數方式描述:

1. 先決條件: 確認優化模型的假設函數和損失函數。

    

 2. 算法相關參數初始化


3. 算法過程:

      1)確定當前位置的損失函數的梯度,

      2)用步長乘以損失函數的梯度,得到當前位置下降的距離

                  3)確定是否所有的θ,梯度下降的距離都小於ε,如果小於ε
則算法終止,當前所有的θ(i=0,1,...n)即爲最終結果。否則進入步驟4).

      4)更新所有的θ
。更新完畢後繼續轉入步驟1).

       





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章