1. 程式人生 > >吳恩達《機器學習》一元變數的線性迴歸

吳恩達《機器學習》一元變數的線性迴歸

  一元變數的線性迴歸是指通過單輸入變數預測單輸出結果,通過學習梯度下降演算法改善假設函式。輸入變數通過假設函式求得輸出值。
這裡寫圖片描述
  樣本集是指樣本的輸入和輸出值的集合,學習演算法這裡使用的是梯度下降演算法,假設函式是指假設出來的輸入和輸出之間的關係。x是指已知的輸入變數,y是指所求的輸出變數。

1假設函式

  一元線性迴歸的假設函式的一般形式是hθx=θ0+θ1x,一般情況下,hθx可以簡寫為hx
  但假設函式的初始化是由樣本集猜想而來,並不知道初始化的假設函式是否準確。而且假設函式中引數θ0θ1的值會影響梯度下降的結果,因為梯度下降演算法有可能收斂紮起區域性的最小值。而函式區域性最小值,而不一定是全域性最小值。

2 成本函式

  成本函式是用來衡量假設函式的準確性的函式。成本函式的值越小,說明假設函式越準確。而我們的目標就是要提高假設函式的精度,故成本函式又稱為目標函式。
Jθ0θ1=1/2mm1(hθ(xi)yi)2
  其中hθ(xi)xi根據假設函式計算的預測值,yi是樣本的實際值。m是樣本的個數,成本函式亦被稱之為平均均方誤差,除以2是為了方便後面梯度下降演算法的計算。

3 梯度下降演算法

  成本函式是來衡量假設函式的準確性,那提高假設函式的準確性則要靠梯度下降演算法。改變假設函式,其實是改變θ0θ1的值,通過改變θ的值,從而使成本函式Jθ0θ1最小。所以這裡的自變數是θ

0θ1,因變數是Jθ0θ1
  實際上這是一個求極小值的過程,實際上若是目標函式是可以求導的情況下,引數較少的情況下,個人覺得是可以通過對每個自變數求偏導數,通過讓偏導數為零來求得目標函式最小化時的自變數。
  但在不可求導或是引數太多以至於求值很困難的情況下,使用梯度下降演算法。該演算法目的是找出梯度下降的方向,是自變數沿著梯度逐步減小,最終收斂到區域性最小值。

repeat until convergence:
θjθjα/(θj)J(θ0θ1)
θjθjα1/mm1((hθ(xi)yi)xij)
for j = 0 and j = 1
注意:θ0θ1的值是同步改變的

  /(θj)J(θ0θ1)是自變數的偏導數,即自變數在該點的斜率,α是學習速度,為正。表明以多大的幅度來收斂,若幅度太小,收斂步數增加,若幅度太大有可能越過收斂點導致收斂困難。α/(θj)J(θ0θ1)即為斜率乘以幅度得出下降的高度,一般情況下α不變,但是偏導數會隨著收斂而逐步變小,故下降的高度會隨著迭代次數而減小,而這也是該演算法的優點之一。