創作內容

2 GP

Linear Regression

作者:Wr1t3R│2017-04-17 11:15:09│巴幣:4│人氣:630
最近讀到了machine learning的其中一個和統計有關的算法:線性回歸,在此將其與線性代數相關的原理記錄下,避免以後忘記 (絕對不是因為網上教程都太難了花了我五輩子時間才理解)

首先,一開始想做的事情是給一些資料點,找到一條線滿足裡面的所有點,但是事情總不如希望發展,不太可能有完美的一條線吻合資料點,於是我們就希望找到一條線能夠使這條線的"錯誤"最小。
以線性代數的語言來看,Ax=b 即是要解這種線性的問題,但現在的問題是 Ax!=b ,所以問題變成要使 b-Ax 最小,其中的一種方法就是最小平方法,也就是使 ||b-Ax||^2 最小。
現在先假設我們有的 x hat 經過A會映射至p,即 A(x hat) = p ,而誤差 e = b - p ,那麼,直觀上來看最小的e應該要和p正交,即是p應為b投影至C(A)的投影向量。
再令P為正交投影至C(A)的變換矩陣,即 p = Pb ,P會滿足P^2 = P = P^T (原諒我不會上標 P^T是P的轉置矩陣的意思)
因此 P(b - p) = p - p = 0 ,即是說 b - p 向量經過P映射到C(A)會是一個零向量,即代表 b - p 屬於 P的Nullspace,寫為N(P)。
有了上述的條件後,再由以下的兩個條件即可得出答案。
1.C(P) = C(A)
  假設 x 屬於 C(A),那麼Px = x,則 x 屬於C(P),可知C(A)包含於C(P)
  假設 x 屬於C(P),那麼Py = x,則 x 屬於C(A),可知C(P)包含於C(A)
  綜上判斷,C(P) = C(A)
2.利用 P^T = P 以及 1 的結果,N(P) = C(P^T) 的正交補集 = C(P) 的正交捕集 = C(A) 的正交捕集 = N(A^T),即得結果
N(P) = N(A^T)

綜合以上幾點,我們知道b-p屬於N(P),也即是b-p屬於N(A^T),式子即是
A^T(b - p) = 0
將式子中的p拆開移項後得 A^T(b) = A^T(A)(x hat),於是,答案呼之欲出。
但事情還沒結束,大部分的時候,((A^T)(A))^(-1) 是存在的,所以可以安心的丟過去,變成

x hat = ((A^T)(A))^(-1)(A^T)(b)

但有時候(A^T)(A)的反矩陣是不存在的,但我們仍然想要找出x hat,而這牽涉到更深層的線性代數領域:pseudo inverse matrix (中文好像是偽逆矩陣來著),本人還沒有心力去了解它,故在此不做分享。

以上就是以線性代數的觀點來看線性回歸的樣子;在機器學習的領域上面,矩陣A代表很多的input x,而x即為欲求得的權重w,b則為那些input x所對應的值y。

在看了林教授的機器學習基石後,對於線性回歸的原理還不甚了解,於是去閱讀了很多線性代數方面相關的資料,把以前學過的線性代數又拉回來了一些呢!
只是林教授使用了另一種觀點來證出x hat,那是因為在距離b-p要最短的情況下,我們只要去找||b-p||^2的最小值就好,即是對每項偏微分要等於零,但我覺得微分這種東西畢竟不是那麼好理解,而且向量的微分又是一個不熟悉的範疇,故在此是參考了以下這網站的寫法:
從線性變換解釋最小平方近似
只能說,歲月催人老(x),才過不到1年的線性代數我就幾乎全忘光了,這篇的內容裡面提到的更基本的知識我每個鏈結都去看了一次以上,簡直把線性代數拋諸腦後阿!

如果之後有時間的話,我想應該會把偽逆矩陣的原理弄懂,然後再來分享(然後也沒人看)
雖然說,要用在機器學習的實作上,似乎只要懂到偽逆矩陣這名詞就好了,因為算偽逆矩陣的方法已經有現成的函式庫可以直接使用了,但總覺得不了解的話就像是心中有一塊大石頭卡住血管一樣啊 (現在就是  
引用網址:https://home.gamer.com.tw/TrackBack.php?sn=3546935
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 4 篇留言

SamAsian
這到底是什麼巧合呢ww 竟然不小心搜到這個,看了覺得害怕

08-21 01:31

Wr1t3R
我也覺得害怕 原來你沒事都在蒐這方面的相關知識ㄇ08-21 02:21
SamAsian
這4誤會,不過我已經在我的ml路上看到一絲曙光ㄌ

08-21 12:19

Wr1t3R
挖 甚麼曙光08-21 12:33
SamAsian
你r

08-21 13:38

Metamorphosis
Good Job!有打算研究nonlinear least squares嗎?

08-21 19:48

Wr1t3R
其實這篇主要是為了machine learning所做的複習ww 在ml中nonlinear比較常見的方法是特徵轉換轉換成線性空間來做,感覺nonlinear least sqares似乎也可以如此做?不過目前是沒鑽研到此部分就是08-23 20:44
我要留言提醒:您尚未登入,請先登入再留言

2喜歡★catchingfire 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:【心得】疊珠X整地基本原... 後一篇:【パズドラ】白蛇の地下迷...

追蹤私訊切換新版閱覽

作品資料夾

hyzgdivina喜歡虹咲的LLer
我的小屋裡有很多Hoenn繪師又香又甜的虹咲漫畫翻譯!歡迎大家來我的小屋坐坐喔~看更多我要大聲說29分前


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】