《圖解機器學習-杉山將著》讀書筆記---CH3


CH3 最小二乘學習法

重點提煉

提出最小二乘學習法的緣故:

 

最小二乘學習法公式

 

對不同模型進行最小二乘法學習,得到最小二乘公式中的參數theta

1.線性模型

  代入3.1公式,對參數求偏導,偏導=0時誤差J有極值,此時  

① 延伸1:線性模型中的基函數可以是三角多項式

 

② 延伸2:加權最小二乘學習法

 

2.核模型

計算參數的方法與線性模型一樣,只是把線性模型中的基函數置換成: 

如果基函數是n*b的矩陣,且這兩個值非常大時的處理方式----隨機梯度法

1.nb很大導致的問題:內存不足

2.使用隨機梯度法的前提:最小二乘學習公式中的J是凸函數,否則不能得到全局最優的最小二乘法參數解

 

3.隨機梯度法的流程

 這里的J還是最小二乘學習公式中的J,只是這里我們不再直接套用公式:得到最小二乘的參數解,而是采用隨機梯度法的方法得到最小二乘法中的參數。

4.隨機梯度法提出的緣由:

不斷迭代,使得現在參數與目標參數的差值無線接近一個很小的值,即3.3公式中的diata要趨向於0.

 

5.隨機梯度法的收斂速度:由步幅以及diata值決定,要合理調整這些參數值。

P24

通過運行代碼學習

“對線性模型進行最小二乘法學習,其中線性模型基函數是三角多項式”

 

在服務器這個地址下運行matlab

 

輸入書上代碼..........

變量解釋:

1

x: 50*1的列向量,值域[-3,3],從小到大排列

X:1000*1的列向量,值域[-3,3],從小到大排列

xX是自己設置的,x是訓練數據的輸入,X是測試數據的輸入,501000可以看成是樣本數目

2

 

r50*1列向量,值域是隨機的,y是訓練數據的目標輸出值

xy都是用來訓練得到參數的

3

p: 50*1的列向量,初始化1

P:1000*1的列向量,初始化1

賦值三角函數值后:

p: 50*31的矩陣      P:1000*31的矩陣

pPxX對應的基函數

這里的基函數可以看成是n(樣本數)*b(參數個數)的矩陣

4

由理論知識得:通過x的目標函數以及x的基函數p,可以得到p\y結果就是要求的最小二乘法中的參數t,當參數t得到之后,就能滿足最小二乘法的式子最小,即能夠保證最接近目標函數輸出值,噪聲最小

5

得到參數后,又有了測試數據的X,知道基於X值的基函數P,通過P與參數t,得到測試數據的輸出值F=P*t

6

繪圖

 

綠色線表示的是測試集;藍色圓圈表示的是訓練集;用訓練集對線性模型進行最小二乘法學習,得到最小二乘法參數,其中線性模型基函數是三角多項式。用同樣的參數,同樣的基函數對應的線性模型,得到測試輸出結果。所以yF的包絡是一樣的。

P30

通過運行代碼學習

 

部分與p24代碼類似;用訓練數據xy得到最小二乘的參數t,其中c用隨機的xi;得到t之后,要用測試數據的X與參數得到測試集的預測值F,其中k中的c用訓練數據x

迭代次數o不同,收斂結果也不同:

for o=1:1 for o=1:50for o=1:50000

 P24

補充知識來理解書上內容

1)繪圖基本matlab語言

 

2)Matlab 輸入help plot可以查到 這些畫圖參數的意義

 

 

3)Matlab中的/\區別

 

對於標量的運算來說
a/b 相當於a除以b
b\a 相當於ba
對於矩陣運算來說,一個矩陣的逆矩陣,相當於普通運算的倒數,所以
a/b 相當於a乘以b的逆
b\a 相當於b的逆乘以a

 

P25

補充知識來理解書上內容

矩陣正交性指的是矩陣與矩陣的轉置相乘=單位矩陣

 

P30

補充知識來理解書上內容

1)

 所以這里的代碼中c用隨機的xi來表示

2)Matlab rand*n表示取n數之內的隨機數;Matlabceil表示取整

 


免責聲明!

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



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