1.1介紹與多項式曲線擬合(Polynomial Curve Fitting)

今天開始學Pattern Recognition and Machine Learning (PRML),章節1.1,介紹與多項式曲線擬合(Polynomial Curve Fitting)

轉載請註明源地址:http://www.cnblogs.com/xbinworld/archive/2013/04/21/3034300.html 

 

Pattern Recognition and Machine Learning (PRML)書學習,章節1.1,介紹與多項式曲線擬合(Polynomial Curve Fitting)

博士也快唸完了,明年畢業,今年開始準備畢業相關的東西,感覺自己做machine learning 的research做的很散,論文發了些,卻不繫統。決心在畢業前好好補一下基礎知識,我相信離開大學就很難有這樣的機會了。以前我入門機器學習是看的《The Elements of Statistic Learning》書,(剛開始半本書看了半年,呵呵,比較累),書很不錯。一直聽說國外很多學校是用PRML這本書做教材的,自己一直當工具書翻,沒有仔細看過,因此就打算看PRML這本書了。

儘量把看的內容寫到blog中,我打算前面寫的章節可以密集一些,當作基礎複習,後面的topic可能會適當精選一些。下面的文字有一些是用原書中的句子翻譯來的,但很多是我自己的話,畢竟我不是在翻譯;其中的公式和圖標,基本上會來自原書,畢竟我寫只是blog,全自己寫太消耗時間了。

章節1.1多項式曲線擬合(Polynomial Curve Fitting)

很多ML的介紹都是從regression(迴歸)這個問題開始的,PRML也一樣。迴歸問題是很多現實問題的基本解決方法,比如各類預測問題。不過本書第一張並不涉及具體的算法,不是一上來就說線性迴歸,而是介紹了很多基礎概念,我覺得是本書的一大優點。

給定一個N個樣本的訓練集合,clip_image002,對應目標值(觀測值)clip_image004

,我們的目標是在給定訓練集合的情況對一個新來的樣本clip_image006,預測他的目標值clip_image008。事實上,我們是不知道數據本身是否是產生於某種形式的函數方程的,比如正玄函數sin(),而要從觀測數據去發現隱含的方程是很困難的。因爲數據本身存在了不確定性(uncertainty)。(注:uncertainty的理解將會貫穿本書。)

我們先試圖用多項式函數來擬合數據,形式爲:

clip_image010

其中y爲預測值,x是輸入,w是參數。M是多項式的階(最大次方)。 注意,雖然多項式對x來說是非線性,但是對於所有參數w來說是線性的。線性方程是M=1的情況。這種對w線性的函數稱之爲線性模型,linear model,將會在第3-4章介紹。

擬合的一種直觀做法是去最小化誤差函數,error function, 其中一種最常見的error function叫做sum of the squares:

clip_image012

這個式子的特點是非負,只有當所有點都被正確預測時,error爲0。式子中的1/2是爲了以後推導時候的方便。(對的,你是對的,很多時候是爲了求導後把2去掉- -)。

clip_image014

圖1.3簡單說明了誤差函數的值,圖中藍點是訓練數據,y是預測模型,綠線的長度之平方和(減半)就是誤差函數的值。要估計w的最優值來得到y(x,w)這個函數做預測,我們需要最小化E(W),因爲E(W)是關於w的一個二次方程,是存在全局最優解的,這裏可以記最優解的w爲clip_image016。好了,現在剩下的最後一個問題是我們因該怎麼確定M,也就是用幾階的多項式來擬合數據呢?

clip_image018

我們來看圖1.4, 如果數據本身是通過正玄函數加上一點高斯噪音得到(圖中藍點),當然數據怎麼來我們是不知道的。我們用多項式來擬合數據,可以看到,當M從0逐漸增大的時候函數的擬合能力越來越強,也就是說在training set中錯誤的結果越來越小,當M=9的時候我們發現所有的點都被正確的擬合了。那麼是不是我們找到了一個最好的結果呢?其實不然,擬合training set只是我們的手段,我們的目標是得到一個具有很好泛化能力的函數,來預測新的數據點。由圖1.4的M=9可以看到,和真實曲線(綠線)相差很遠,這裏就是一個過擬合的問題(over-fitting),可以說是機器學習裏面非常重要的一個問題。

如果記錄下均方根誤差,root-mean-square error

clip_image020

可以得到圖1.5的示例,M到了一定階段以後在test數據上的error就會顯著增大了,我們理解成過擬合了!

clip_image022

我們再來簡單討論一下over-fitting的問題。造成over-fitting的因素很多,我個人理解有兩點是很重要的,(1)模型太複雜;(2)數據太少。

上面的例子說明了,當我們用M=9的時候,模型對於原始數據來說研究太複雜了,但是也可用是因爲數據點太少造成過擬合的。看圖1.6,當數據點顯著增多時,過擬合問題減少了很多!所以,很重要的一點是,訓練樣本的足夠多以及模型的合適。不過訓練樣本太多也有其他我問題,比如欠擬合,以及訓練不動(- -),這些這裏就不談了。

clip_image024

Machine Learning方法中很重要的一類是正則化,regularization,具體會在以後的章節中仔細介紹。這裏給一個直觀的理解。最常用的正則化項是約束參數的模,在公式(1.2)對w做約束得到:

clip_image026

如果y是線性方程的時候,公式(1.4)就是ridge regression了。通過圖1.7,我們可以看到改變clip_image028 的數值可以對模型產生巨大的影響。當依然是用M=9的時候,加入在正則化項就可以比較好的得到擬合了。當然,新問題又來了,怎麼確定新引入的參數clip_image028[1]呢?這又需要一些其他的知識,常見的做法是建立一個validation集合,用來驗證參數的選取。後面介紹model selection的時候會講到一些。

clip_image030

好了,第一小節就介紹到這裏,第一章的風格是直觀上介紹一些問題,以及給出一些解決方法。對於machine learning 入門的同學是非常好的。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章