1. 程式人生 > >Coursera機器學習基石筆記week9

Coursera機器學習基石筆記week9

Linear Regression

線性迴歸的預測函式取值在整個實數空間,這跟線性分類不同。 h ( x ) = w T

X h(x)=w^TX

在一維或者多維空間裡,線性迴歸的目標是找到一條直線(對應一維)、一個平面(對應二維)或者更高維的超平面,使樣本集中的點更接近它,也就是殘留誤差Residuals最小化。如下圖所示:
在這裡插入圖片描述
一般最常用的錯誤測量方式是基於最小二乘法(這裡是線性的),其目標是計算誤差的最小平方和對應的權重w,即上節課介紹的squared error:
在這裡插入圖片描述

Linear Regression Algorithm

首先,運用矩陣轉換的思想,將EinEin計算轉換為矩陣的形式。
在這裡插入圖片描述


對於此類線性迴歸問題, E i n ( w ) E_{in}(w)
一般是個凸函式。凸函式的話,我們只要找到一階導數等於零的位置,就找到了最優解。那麼,我們將 E w E_w 對每個 w i w_i ,i=0,1,⋯,d求偏導,偏導為零的 w i w_i ,即為最優化的權重值分佈。
在這裡插入圖片描述
那麼如何求導呢?
在這裡插入圖片描述
讓倒數為0,即可計算出w:
在這裡插入圖片描述
對於可逆的矩陣 X T X X^TX 來說,我們就可以使用上述偽逆矩陣進行計算了,但是針對於奇異(不可逆)矩陣來說,逆矩陣 ( X T X ) 1 (X^TX)^{-1} 就不一定存在了。但是一般來說,如果樣本數量N遠大於樣本維度d+1的話,是能保證矩陣的逆是存在的。如果不可逆,大部分計算軟體也可以處理這個問題,計算出一個逆矩陣。所以,一般的偽逆矩陣都是可解的。

Generalization Issue

在這裡插入圖片描述
有兩種觀點:1、這不屬於機器學習範疇。因為這種closed-form解的形式跟一般的機器學習演算法不一樣,而且在計算最小化誤差的過程中沒有用到迭代。2、這屬於機器學習範疇。因為從結果上看,EinEin和EoutEout都實現了最小化,而且實際上在計算逆矩陣的過程中,也用到了迭代。
在這裡插入圖片描述
那麼 E i n ( w L I N ) = 1 N ( I X X + ) y 2 = 1 N ( I H ) y 2 E_in(w_{LIN})=\frac{1}{N}||(I-XX^+)y||^2=\frac{1}{N}||(I-H)y||^2
在這裡插入圖片描述

  • 粉色區域是X分別乘以不同的w來生成一個新的空間,那麼我們ŷ也是由w乘以X產生的,因此ŷ要在這個空間內。

  • 我們要做的就是讓y與ŷ最小,也就是垂直於這個空間的時候。

  • H就是把y對映為ŷ,Hy=ŷ

  • I-H就是通過(I−H)y=y−ŷ,使y轉換為y−ŷ

接下來,先探究一下H的性質:

H a t   M a t r i x   H = X ( X T X ) 1 X T Hat \ Matrix\ H=X(X^TX)^{-1}X^T

  • 對稱性(symetric),即H= H T H^T :

    H T = ( X ( X T X ) 1 X T ) T H^T=(X(X^TX)^{-1}X^T)^T

    = X ( ( X T X ) 1 ) T X T =X((X^TX)^{-1})^TX^T

    = X ( X T X ) 1 X T =X(X^TX)^{-1}X^T

    = H =H

  • 冪等性(idempotent),即 H 2 = H H^2=H

    H 2 = ( X ( X T X ) 1 X T ) ( X ( X T X ) 1 X T ) H^2=(X(X^TX)^{-1}X^T)(X(X^TX)^{-1}X^T)

    = X ( X T X ) 1 ( X T X ) ( X T X ) 1 X T =X(X^TX)^{-1}(X^TX)(X^TX)^{-1}X^T

    = X ( X T X ) 1 X T =X(X^TX)^{-1}X^T

    = H =H

首先複習一下跡運算。

  • 如果A是m * n,B是n * m的話,那麼trace(AB)=trace(BA)

  • 多個矩陣相乘得到的方陣的跡,和將這些矩陣中的最後一個挪到最前面之後相乘的跡是相同的。當然,我們需要考慮挪動之後矩陣乘積依然定義良好:

    ​ Tr(ABC)=Tr(CAB)=Tr(BCA)

  • 如果C和D都是m * m的,那麼trace(C+D)=trace©+trace(D)

  • 如果 α \alpha 是一個標量的話,那麼 t r a c e ( α C ) = α t r a c e ( C ) trace(\alpha C)=\alpha trace(C) , t r a c e ( α ) = α trace(\alpha)=\alpha

  • 在這裡插入圖片描述

這裡給出trace(I-H)=N-(d+1),那麼為什麼呢?一個矩陣的trace(跡)等於其對角元素的和。

t r a c e ( I H ) = t r a c e ( I ) t r a c e ( H ) trace(I-H)=trace(I)-trace(H)