code

2017年2月2日 星期四

Machine Learning筆記6 - Least Squares for Linear Regression

2D input example

某2D x input形成的data set如下:

這些data經過linear regression找到的regression function形成一個hyper plane(注意,這也是一個assumption,我們根據此假設才使用linear regression),某個training data座標(x1,x2,y)如果落在此plane上(x1,x2, y'),則prediction error =  |y-y'|,或者常用squared error = (y-y')^2。

回憶regression function通式如下:


Objective Function

least squares 顧名思義就是所有的dataset的squared error的和形成的function,稱為total error,我們要將之最小化,這樣就可以找出一組(w0,w1,...,wd)是此linear function的free variables:



Vector form

上面的objective function寫成vector form會比較清楚,且容易計算。首先我們將xi寫成一個vector,xi0 = 1,因為每個xij都要被wi權重,當然也包括w0:

所有的samples x1 ~ xn 可以把每個xi row vector合併成一個matrix X:

所以X是一個 n by d+1 dimension matrix。

我們要求的w也可以寫成一個d+1 by 1 column vector:


這邊有個假設: d < n,原因後述。

所以我們把objective function改寫成vector form:

注意w是column vector, xi^T是row vector(反過來也沒差啦,其實就是dot product)。


Objective Optimization

要找某個function的minimum,當然就是gradient = 0的地方會有optima:


要對vector w做微分,以下是計算結果,(我也不會算?!):



 Matrix Form

首先我們將training data中的yi寫成n by 1 column vector:


X*w得出一個 n by 1 column vector,每個element就是每個xi dot w形成的y',所以squared sum of error可以從vector form改寫成以下:


等號右邊的vector length squared,又可以寫成兩個vector dot product:

有了上式,找gradient = 0時的w簡單多了:



Solution一定存在嗎?

這答案取決於inverse((X^T)*X)是否存在? 並不是每一個matrix都invertible。見linear algebra筆記在此

一個matrix要能invertible,其必須是一個full rank matrix,也就是X的# independent rows >= d+1,也就是data points數目至少要大於未知數的dimension d,否則將有無限多組w解。

所以我們要 越多training data越好:



Prediction

我們找到了 least square w,所以一個linear prediction function Ynew可以被定義出來:




沒有留言:

張貼留言