1. 程式人生 > >機器學習筆記2:線性迴歸

機器學習筆記2:線性迴歸

機器學習筆記2:線性迴歸

Andrew Ng機器學習課程學習筆記2


線性迴歸

引數說明:
  θi:parameters,引數
  x:input,輸入
  y:output,輸出
  h:hypothesis,假設
  m:資料數量
迴歸方程:
  一元線性的迴歸方程的一般格式如下,用於反應輸出與輸入之間的關係。
h θ (

x ) = θ 0 + θ 1
x h_θ(x) = θ_0 + θ_1x
cost function:
  代價函式,就是hθ(x)與源資料的誤差的平方的平均數,用來反應hθ(x)的準確度。
J ( θ
1 , θ 2 ) = 1 2 m i = 1 m ( h θ ( x ( i ) ) y ( i ) ) 2 J(θ_1,θ_2) = \dfrac{1}{2m} \sum_{i=1}^{m}(h_θ(x^{(i)})-y^{(i)})^{2}

目標:
  目標就是讓代價函式最小。
m i n i m i z e θ 1 , θ 2 J ( θ 1 , θ 2 ) \begin{array}{c} minimize\\ θ_1,θ_2 \end{array}J(θ_1,θ_2)
Gradient descent
  梯度下降法,最小化代價函式的一種方法。該法是從某組引數θ12開始,不斷地改變θ12的值,以使代價函式最小(或區域性最小)。而這個改變的方法是在原來的引數基礎上,減去一個數,這個數就是損失函式的導數再乘以一個速率α。
  具體的實現如下:
  repeat until convergence{
   θ j : = θ j α J ( θ 1 , θ 2 ) θ j f o r ( j = 0 a n d j = 1 ) θ_j:=θ_j-α\dfrac{∂J(θ_1,θ_2)}{∂θ_j}\quad for(j = 0\quad and\quad j = 1)
  }
  α是學習速率,若值過高,會無法收斂,找不到最小值;若過低,則收斂特別慢,需選擇合適的值。
  而且,該方法的結果跟θ12的初值有很大關係,θ12處值不同可以會得到不同的結果。
注意,要同時更新每個θj,不可以分時更新。換句話說,算出θ0的值後,不能馬上把這個值賦給θ0,而是應該用舊的θ0的值,算出θ1之後,再同時更新這兩個值。

多變數的線性迴歸
  上文所都是關於單一變數的情況,現在將器擴充套件為多變數的情況(即多個輸入,多個x)。
  n:變數引數的個數
  xj(i):變數j的第i個input,輸入
  x0:值為1,把這個當成第0個變數,實際不存在,是為了寫成向量的方便,使輸入矩陣x與引數矩陣θ列數一致
  多變數的梯度下降法,與單變數的一樣,也是最小化代價函式的一種方法。該法是從某組引數θ12…θj開始,不斷地改變θ12…θj的值,以使代價函式最小(或區域性最小)。
  具體的實現如下:
  repeat until convergence{
   θ j : = θ j α J ( θ 1 , θ 2 , . . . , θ j ) θ j f o r ( j = 0 , 1 , . . , j ) θ_j:=θ_j-α\dfrac{∂J(θ_1,θ_2,...,θ_j)}{∂θ_j} for(j = 0,1,..,j)
  }
  用這個計算式的時候,還是得注意要同時改變各個引數的值。此外,使用前需要將多餘的變數(比如高度線性相關的變數)刪掉,還需歸一化各個變數,這個歸一化不需要特別嚴格,只需要讓各個輸入量的量級一樣即可。