AI之旅(3):升維與最小二乘法


前置知識

  矩陣的逆

知識地圖

  首先我們將了解一種叫升維的方法,用已有特征構造更多的特征。接着通過對空間與投影建立一定的概念后,推導出最小二乘法。

當特征數量不足時

  在上一篇《初識線性回歸》中,我們假設要處理的問題有足夠的樣本數量和足夠的特征數量。記得樣本數量是用m表示,特征數量是用n表示。假如只有1個特征該如何構建模型呢?

  假設現在有一個數據集,數據集中只包含一個地區房屋的面積信息和銷售情況。即只有面積這一個特征,如何只用一個特征來預測房屋的銷售情況呢?

  可視化能幫助我們更好地了解數據間隱藏的規律,先來看一看數據之間的分布情況。

  用什么模型可以比較好地擬合數據呢?首先嘗試用一條直線來擬合數據,構建一個線性模型:

關於常數項的說明

  還記得在上一篇中講過,線性回歸模型中需要在特征中手動添加一列全為1的特征。這是為什么呢?這是一個很小的但不理順卻很容易混淆的概念,值得反復強調。

  我們熟悉的直線公式是以下形式:

  其中a為系數,x為變量,b為常數項。常數項是用來控制直線的位置,如果沒有常數項,直線會是經過原點的一條線。顯然有了常數項的模型可以更好地擬合數據。

  假設函數是直線的另一種表達方式,兩者是完全等價的。在直線中b是常數項,在假設函數中第一個θ參數是常數項。常數項乘以1等於本身,如下圖所示。

  常數項為什么要乘以1呢?因為在實際的運用中,是將參數θ視為一個向量進行運算。特征中添加全為1的一列后,可以使用向量化的方式來運算,提高了效率。

以一個特征為例

  原始數據集中特征是不包含全為1的列,將原始數據集傳入函數后,在函數中額外為特征添加全為1的列,在函數中轉換后的形式如下:

  設置學習率為0.1,迭代次數為500次。經過特征縮放,訓練后得到的參數如下,其中參數的第一項可以視為常數項:

  對應的假設函數與代價函數如下:

  我們發現直線似乎不能很好地揭示數據之間存在的規律,但是現在又沒有更多的特征,該怎么辦呢?可以用特征的平方作為新的特征添加進數據集中。

  這個模型可以視為非線性模型,同樣也可以通過線性回歸算法來處理,在函數中轉換后的數據集的形式如下:

  增加更多的特征以后,模型會不會有更好的表現呢?

  設置學習率為0.1,迭代次數為500次。經過特征縮放,訓練后得到的參數如下,其中參數的第一項可以視為常數項:

  對應的假設函數與代價函數如下:

  似乎並沒有太大的改變?試試其他的學習率。

  設置學習率為1,迭代次數為500次。經過特征縮放,訓練后得到的參數如下,其中參數的第一項可以視為常數項:

  對應的假設函數與代價函數如下:

升維的方法與局限

  可以觀察到相比於直線,新的模型可以更好地擬合數據,或許也能更准確的用於預測新的數據。至此可以總結出以下兩點結論:

  1,學習率需要手動調整,這實在是太不智能了,以后我們將了解不需要手動設置學習率的方法。

  2,用現有特征的2次方,3次方,4次方......來構造新的特征,可能會得到更准確的模型。

  推而廣之,有一個特征的時候,可以用特征的高次方構造新的特征:

  推而廣之,有多個特征的時候,可以用特征的高次方的組合構造新的特征:

  需要注意的是,雖然用升維的方法可以構造新的特征,但是我們不想頻繁地使用這種方法。如果缺少特征,首先應該想辦法獲取新的特征。相比於人工創造的特征,現實的特征或許會更好一些。

  比如我們有一個房子寬度的特征,和一個房子長度的特征。兩者可以組合出房子面積的特征,這顯然是有意義的。但是再添加面積的10次方作為新的特征,似乎失去了現實的意義,變成純粹的數字。

一維空間與投影

  一個向量x可以構建一維空間(一條直線),另一個向量y與一維空間可以有以下幾種關系:

  1,當向量y垂直一維空間時(內積為0),向量y在一維空間上的投影為0,對應的方程組無解。通過向量x無論如何也無法獲得向量y。

  2,當向量y平行一維空間時,向量y在一維空間上的投影為向量本身,對應的方程組有解。在向量x上乘以某一個系數可以獲得向量y。

  3,當向量y與一維空間即不平行也不垂直時,向量y在一維空間上存在投影,對應的方程組無解,但存在能夠得到的最優解。在向量x上乘以某一個系數,不能得到全部的向量y,但可以得到部分的向量y。

  如上圖所示,向量e是誤差向量,向量p是投影向量。因為向量y不在一維空間中,只能得到向量y的投影向量。類似於有人告訴你,你得不到最好的,那么現實的問題是,第二好的是什么呢?

  投影向量p是我們能得到的第二好的向量,問題轉變為如何使投影向量p最大化?向量y可以分解為投影向量p與誤差向量e的組合,當誤差向量e最小化的時候,投影向量p最大化。

  什么情況下誤差向量e最小化?當誤差向量e垂直一維空間時最小化,此時有投影向量p最大化。已知兩個垂直的向量內積為0,根據這一點可以建立等式。

  注:此時的θ是一個標量;

二維空間與投影

  兩個不在同一條直線的向量可以構建二維空間(一個平面),這兩個向量稱為基向量,另一個向量y與二維空間可以有以下幾種關系:

  1,當向量y垂直二維空間時,向量y在二維空間上的投影為0。

  2,當向量y平行二維空間時,向量y在二維空間上的投影為向量本身。

  3,當向量y與二維空間即不平行也不垂直時,向量y在二維空間上存在投影,對應的方程組無解,但存在能夠得到的最優解。在基向量上分別乘以某一個系數,不能得到全部的向量y,但可以得到部分的向量y。

  與之前類似,誤差向量e同時垂直於基向量。已知兩個垂直的向量內積為0,根據這一點可以建立等式。

  上述是已知的信息。

  以上等式可以寫為矩陣的形式。

  X是基向量構成的矩陣,當矩陣可逆時,可寫為如下形式。

最小二乘法

  推而廣之無論是2維空間,3維空間還是m維空間,道理都是一樣的。如果向量不在空間內,我們只能得到向量在空間內的投影,這種獲得投影的方法稱為最小二乘法。

  投影是基向量的線性組合,所謂能得到的最優解,是指這個線性組合的系數。當矩陣可逆時,通過上述公式可以直接求出系數。

  回顧《初識線性回歸》中的例子,如今我們可以從一個新的視角來看問題,矩陣X有4個線性無關的基向量,構成完整的4維空間,向量y在空間中,用最小二乘法求出最優解。

  通常數據集中樣本的數量m是遠遠大於特征的數量n,如下圖所示。

  矩陣X有n個線性無關的基向量,構成m維空間中的n維子空間,無論向量y是否在子空間內,都可以使用最小二乘法求出能得到的最優解。

  因為最小二乘法中需要對矩陣進行求逆運算,比較消耗計算資源。當我們的樣本數量比較大時,比如有10萬個,100萬個,1000萬個樣本,可能就無法通過這種方法來直接計算結果。

  因此什么情況下使用最小二乘法,什么情況下使用梯度下降法,只能根據具體情況具體分析,沒有一定之規。至此,我們已經掌握了求解線性回歸的第二種方法。

總結

  升維是用現有特征構造更多特征的方法,特征相乘可能具有某種意義,比如已知房屋的長度和寬度可以組合出表示面積的特征。類似的,也可以將特征進行相除。

  通過從空間的角度來看待矩陣,理解投影與方程組的解之間的聯系。在矩陣可逆的情況下,可以通過最小二乘法獲得投影,同時也就得到了線性回歸的最優解。

  雖然線性回歸還有部分內容沒有介紹,至少目前我們對什么是算法,算法如何工作有了感性的認識。馬上,我們就能掌握第二個用於分類的算法,這將是我們接下來的旅程。

非正規代碼

版權聲明

  1,本文為原創文章,未經作者授權禁止引用、復制、轉載、摘編。

  2,對於有上述行為者,作者將保留追究其法律責任的權利。

Tieven

2019.1.5

tieven.it@gmail.com


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM