[線性回歸] 梯度下降

在有了預測函數和測量它與數據匹配度的方法之后,我們需要評估預測函數中的參數。所以就有了梯度下降算法。
想象我們用預測函數產生的θ0和θ1來畫預測函數(事實上,我們用參數評估函數來描繪代價函數)。我們并不是在描繪x和y本身,而是預測函數的參數范圍和已選擇的特定參數集的代價值。(其實就是用一組參數(θ0, θ1)作為x和y,代價評估值作為z。)
圖中的點使用該組θ參數得到的代價函數的值。

我們要求解的最小代價值,其實就是圖中的最低點(深藍色), 當然包括局部最低點和全局最低點。(就是一小范圍內的最低點和所有最低點中的最低點)。
這么做的方法就是對代價函數求導(取函數正切值)。正切值的斜率就是該點的導數,這也是在圖中移動的方向。(把圖想象成一座山峰,尋找最低點就是在尋找下山的路)每次都朝著最陡峭的方向移動,每步的大小取決于參數α,叫做學習速率。
舉例而言,圖中每個星星的距離代表著每一個由α決定大小的步子。α越小,每個星星之間的距離越?。沪猎酱螅總€星星之間的距離越大。而這個步子的方向則取決于J(θ0,θ1)的偏導。每個下山路徑都會的由于起點不同而導致有不同的終點。如上圖就有兩個終止于不同地方的兩個不同的起點。

梯度下降算法

  repeat until convergence:
       公式
  where
      j=0,1 represents the feature index number.

公式: ** θj:=θj?α(?/?θj)J(θ01) **

'j'的每次迭代,都需要同步更新(θ0,θ1,...θn)參數。在計算前更新某個θ參數會導致產生錯誤算法。


同步更新 θ 參數集

單參數梯度下降

公式: ** θ1:=θ1?α(d/dθ1)J(θ1) **

不管(d/dθ1)J(θ1) 的符號是正是負。如下圖所示,當斜率為負時,θ1的值增加;當斜率為正的時候,θ1的值減少。

梯度下降算法應該在合適的時候收斂,無法收斂或者收斂時間過長都意味著步幅是錯誤的(α錯誤)

Paste_Image.png

α的值是固定的,梯度下降是如何收斂的?
事實上,當我們接近凸函數的底部的時候,d/d接近0的時候。在最小值的時候,導數為0。所以:** θ1:=θ1?α?0**

線性回歸的梯度下降

在線性回歸中,梯度下降會有一個新的形式。把實際的代價函數和預測函數替換修改,就會得到下述等式。

m 是訓練集的大小,θ0是同步改變的常量, X1,X2是訓練集的數據。
因為h(θ)=θ01Xj,所以對J(θ01)= Σ(hθ(xi)-yi)偏導, 得到上述兩條公式。
舉例說明θ1:

這樣做的意義是從一個猜測開始,重復地應用梯度下降等式,我們的預測函數(Hypothesis)會變得越來越準確。所以這就是基于最初的代價函數J的簡單梯度下降函數。
這個方法在每一步都會遍歷整個訓練集,所以叫做“批”梯度下降算法。
注意,**梯度下降總體上容易受到局部最小值的影響,但是我們這里的線性回歸只有一個全局,沒有其它的局部,所以這個最小值就是最優解。因此梯度下降對于全局最小值來說總是收斂的(假設學習速率α沒有太大)。


梯度下降最小化二元方程

橢圓顯示的二次方程的輪廓圖。軌跡是梯度下降的步驟。它初始化在(48,30)。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容