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越好:
沒有留言:
張貼留言