1. 程式人生 > >梯度下降演算法原理介紹

梯度下降演算法原理介紹

  梯度下降法

  1、梯度:

  在微積分裡面,對多元函式引數求偏導數,把求的各引數的偏導數以向量的形式寫出來,就是梯度。

  梯度向量從幾何意義上講,就是函式變化增加最快的地方,沿著梯度向量的方向更容易找到函式的最大值,沿著向量相反的方向,梯度減小最快,更容易找到函式最小值。

  2、梯度下降與梯度上升可以互相轉化。求損失函式f(θ)的最小值,用梯度下降法迭代,亦可反過來求損失函式 -f(θ)的最大值,用梯度上升法。

  3、梯度下降演算法解析

  (1)直觀解釋

  eg.在一座大山的某一位置,要下山,走一步算一步,每走一步就計算當前位置的梯度,沿著當前梯度的負方向走一步(也就是當前最陡的位置),然後再次計算當前位置,這樣一步一步往下走,一直走到覺得已經到了山腳。有可能我們只是到了一個區域性山峰底部。所以梯度下降不一定能找到全域性最優解,有可能是一個區域性最優解。當損失函式是凸函式的時候,梯度下降法所求的解就是全域性最優解。

  (2)相關概念

  (i)步長:梯度下降迭代過程中每一步沿負方向前進的長度。

  (ii)特徵:樣本輸入部分,樣本(x0,y0),其樣本特徵為x,輸出為y。

  (Iii) 假設函式:在監督學習中,用假設函式擬合輸入樣本,記為hθ(x)。比如對於樣本(xi,yi)。(i=1,2,...n),可以採用擬合函式如下:hθ(x) =θ0+θ1x。

  (iv)損失函式:度量擬合程度,評估模型擬合好壞。損失函式極小化,意味著擬合程度最好,對應的模型引數為最優引數。線性迴歸中,損失函式通常為樣本輸出和假設函式的差取平方。

  

  (3)演算法:

  (i)代數法

  (ii) 矩陣法

  (4)演算法調優

  (i)步長選擇。

  步長太大,會導致迭代過快,錯過最優解;

  步長太小,迭代速度太慢,耗時間太長。

  (ii)初始值選擇。

  有可能求的是區域性最優解,所以要多次使用不同初始值進行運算,選擇損失函式最小化的初始值。

  (iii)將特徵資料歸一化。