機器學習:線性回歸

題目:銀行貸款問題,訓練數據是客戶的n維資料和客戶評分,求g

  • 輸出空間:正實數集
  • 假設函數: h(x) = vec w^Tvec x (偏置b併入w0=b,x0=1)

上圖為一維輸入空間的線性回歸和二維輸入空間的線性回歸

回歸使用的錯誤衡量是平方誤差 (h(x_n)-y_n)^2 ,即損失函數有:

E_{in}(h) = frac{1}{N}sum_{n=1}^N(h(x_n)-y_n)^2 \ Rightarrow E_{in}(vec w) = frac{1}{N}sum_{n=1}^N(vec w_n^Tvec x_n-y_n)^2\Rightarrow min (E_{in}(vec w))

所以我們的目的就是求解損失函數的最小值,這裡我們分別用兩種方法求解:隨機梯度下降和矩陣求法。

隨機梯度下降

數學原理及推導見:機器學習數學:梯度下降法

矩陣求法

求解技巧,將損失函數轉換成矩陣運算形式:

E_{in}(vec w) = frac{1}{N}sum_{n=1}^N(vec w_n^Tvec x_n-y_n)^2\ = frac{1}{N}sum_{n=1}^N(vec x_n^Tvec w_n-y_n)^2\ (向量內積符合交換律)

=frac{1}{N}egin{Vmatrix} vec x_1^Tvec w -y_1 \ vec x_2^Tvec w -y_2 \ vec x_n^Tvec w -y_n \ end{Vmatrix}^2\ (平方連加當成向量求模再平方)

=dfrac {1}{N}left| egin{bmatrix} x_{1}^T \x_{2}^T \vdots \x_{n}^Tend{bmatrix}overrightarrow {w}-egin{bmatrix} y_{1} \ y_{2} \ vdots \ y_{n} end{bmatrix}
ight| ^{2}quad (令X = egin{bmatrix} x_{1}^T \x_{2}^T \vdots \x_{n}^Tend{bmatrix}quad vec y=egin{bmatrix} y_{1} \y_{2} \vdots \y_{n}end{bmatrix})

=dfrac {1}{N}left| Xoverrightarrow {w}-overrightarrow {y}
ight| ^2 quad (X:N*(d+1) quad w:(d+1)*Nquad y:N*1)

則轉化為求如下解:

min_{w}E_{in}left( w
ight) =min_{w}dfrac {1}{N}left| Xw-y
ight| ^{2}

當x的維度為一維時,方程的圖像如下:

連續、可微的凹函數

梯度為0的點就是我們要找到的最低點,則我們要找到一個w,使得:

開始之前,複習一下向量運算:向量的平方 = 向量模的平方,即:

  • (a+b)^2 = |a+b|^2;
  • (a-b)^2=|a-b|^2
  • (a+b)^2 = a^2+2ab+b^2=a?a+2a?b+b?b
  • (a-b)^2 = a^2-2ab+b^2=a?a-2a?b+b?b
  • 等號兩邊均為標量

E_{in}left( w
ight) =dfrac {1}{N}left| Xoverrightarrow {w}-overrightarrow {y}
ight| ^{2}\ =dfrac {1}{N}left( left( Xw
ight) left( Xw
ight) -2left( Xw
ight) y+yy
ight) \ =dfrac {1}{N}left( left( Xw
ight) ^{T}left( Xw
ight) -2left( Xw
ight) ^{T}y+y^{T}y
ight) \ =dfrac {1}{N}left( w^{T}X^{T}Xw-2w^{T}X^{T}y+y^{T}y
ight) \ =dfrac {1}{N}left( w^{T}Aw-2w^{T}b+c
ight)

接下來對Ein求導數

對向量求導數比較難理解(寶寶也沒學過),下圖以標量和向量為比較,求梯度

求解:
abla E_{in}left( w
ight) =dfrac {2}{N}left( x^{T}xw-x^{T}y
ight) =0\Rightarrow dfrac {2}{N}left( x^{T}xw-x^{T}y
ight) =0.\ Rightarrow x^{T}xw=x^{T}y\ Rightarrowleft( x^{T}x
ight) ^{-1}left( x^{T}x
ight) omega=left( x^{T}x
ight) ^{-1}x^{T}y\ Rightarrow w =left( x^{T}x
ight)^{-1} x^{T}y

其中, left( x^{T}x
ight)^{-1} x^{T} 叫做矩陣X的偽逆(pseudo-inverse) X^? ,注意此處輸入矩陣X在很少的情況下才是方陣(N=d+1時)。而這種偽逆矩陣的形式和方陣中的逆矩陣具有很多相似的性質,因此才有此名稱。 x^Tx 在大部分的情況下是可逆的,原因是在進行機器學習時,通常滿足 Ngg d+1,即樣本數量N遠遠大於樣本的維度d加1。

總結:求解線性回歸的方法

  • 構建輸入矩陣X與輸出向量y

  • 計算偽逆矩陣 X^? = left( x^{T}x
ight)^{-1} x^{T}

  • 求解w

題圖:2017年11月2日23:49:31

推薦閱讀:

學Python,這10道題你一定得會
機器學習基礎與實踐(二)----數據轉換
機器學習預測地震,信得過嗎?
機器學習基礎與實踐(一)----數據清洗
機器學習篇-評估機器學習的模型

TAG:機器學習 | 線性回歸 |