0%

機器學習基石(Machine Learning Foundation)第十六講筆記

上一堂提到validation的手法,透過留下用來驗證的資料模擬測試過程,並透過validation結果來選擇該使用什麼樣的模型。這一堂會提到三個在作機器學習時的小技巧。

Occam’s Razor在機器學習裡面意議是指不要對資料有過多的解釋,就是越簡單的解釋越好。以上面兩張圖的資料來看,左邊的模型符合直覺判斷,是一種比較容易而且 簡單的解釋,那到底什麼樣的模型才叫簡單的模型,而為什麼簡單的模型就比較好呢?

簡單的hypothesis是指沒有過多的參數就是個簡單的hypothesis,而簡單的模型則是指模型包含了較少的hypothesis就是個簡單的模型,所以簡單在這裡就是指比較小的hypothesis和模型複雜度。而要得到簡單的解釋,除了一開始就使用簡單的模型之外,也可以在之前透過regularization來達成。

那為什麼簡單的模型就比較好呢?如果今天使用簡單的模型就可以將資料分類正確,那某種程度上也就代表著資料背後的關聯性或是規律性是簡單的;相反的如果使用很複雜的模型,可能就無法知道資料背後的關聯性,因為不管是有關聯性的資料,或是雜訊很多的資料,都可以被複雜的模型分的開。所以如果使用簡單的模型來解釋資料,可以很直覺的看到資料間的顯著性,但是如果使用複雜的模型就辨別不出來,所以建議一開始推薦先使用線性模型。

第二個技巧會談到樣本的抽樣誤差,這裡用一個美國總統選舉的例子,來說明如果抽樣和要學習的結果不一致,並帶出抽樣誤差問題。如果在抽樣時就發生抽樣誤差,那麼在學習時就會產生偏差的結果,這就是為什麼前面課堂有說到訓練和測試的樣本資料要抽樣自相同的分配,訓練和測試的資料抽自相同的分配,才會得到預期中的學習效果,這就是我們VC中的重要假設。

這裡舉了一個實際上發生過的問題,如果訓練資料和驗證資料有有時間前後依序性(即一個人看過的電影順序),而非隨機取樣的話,如果透過隨機取樣來建立訓練資料和驗證資料,那麼在學習和驗證中就會有問題。這時候為了讓測試和驗證可以盡可能的接近,例如訓練時可以把時間依序性較後面的權重調高,或是抽比較多時間依序較後面的資料來作驗證。

再來第三個技巧則是談到之前說到偷看資料的問題,前面有說到如果偷看了資料,可能會把人腦學習到的,或是自己的偏差帶進機器學習裡面。

偷看資料其實比想像中更容易發生,不是只有用眼睛視覺化的偷看才叫偷看,而是你在處理資料的整個過程中,都算是間接的偷看了資料。如果使用這樣偷看過的資料,都會受到自己的主觀影響。假設今天有一組八年的交易資料,使用前六年當訓練,後兩年當測試。其中在將資料作放縮(Data Scaling)的資料處理過程中,如果不是將前六年作縮放,預測完再還原,而是直接將八年的資料都作放縮的話,就會得到紅色這條上升趨線。這樣將會得到一個太過於樂觀的學習結果,如果將這個結果用來實際投資可能會大大的失準。

除了直接的視覺化偷看,或是使用統計分析間接的偷看,其實作在研究上也會發生。例如針對相同問題,不同的論文會都使用更好的模型來作的比以前好,這樣的過程就有點像你的論文間接的偷看了前面論文的結果,這樣就有點像某種程度的overfit了。正是所謂的如果你拷問資料過久了,他就會招拱一個好的hypothesis,但是這個hypothesis應該用測試資料可能效果不保證會好。

但是完全不偷看其實很不容易,只能盡量的降低這中間的干擾,比如說小心的使用validation,或是把測試資料好好的先收好。所以要時時注意的是,記得要用專業知識來建立模型,而不是先偷看了資料來作決策。另外要時時存著懷疑每次作出來的結果,並懷疑這樣的分析結果是不是有受過汙染。

這堂課教到很多和三有關的東西,第一個是三個和機器學習相關的領域,Data Mining是希望在大量資料中找到找到有用或是重要的關聯,人工智慧是要讓機器作出有智慧的事情(像是自動駕駛),機器學習可以說是實現人工智慧的方法,統計則是為了去對母體作出推論,所以統計方法也被大量的使用在機器學習上。

在機器學習背後理論的保證,如果只有一個hypothesis的情況下,Hoeffding可以情供測試驗證的保證,當有多個hypothesis的情況下,Multi-Bin Hoeffding可以提供在有限多個選擇下的保證,如果是無限多個選擇下,VC則是可以提供在無限多個hypothesis是供理論上的保證。

在機器學習模型部份,PLA/pocket可以提供在線性可分下處理二元分類問題,在衡量上為讓0/1 err最小化,linear regression則是可以處理數值預測問題,在衡量上使用squared err最小化,logistic regression則可以處理軟性二元分類問題,在衡量上使用cross entropy最小化。

另外還有學到三個重要的技巧,Feature Transform可以將簡單的線性模型轉成高維度的複雜模型,會得到較好的Ein但是也會付出較高的VC代價,Regularization則是相反,透過加上regularizer來讓VC代價變小,但是也會讓Ein變大,Validation則是在沒辦法拿到測試資料的情況下,留下一部份的資料當作驗證資料。

最後則是這堂課學到的三個注意的地方,要注意簡單模型是好的,而且要注意抽樣的偏差,最後要記得不能提看資料。

再來後面的課程還會上到如何使用不同的轉換方法,以即不同的規則化方法,或是在缺少label的情況下該如何進行訓練。

總結這堂課程學到了很多機器學習背後的論理依據,而許多不同的機器學習方法將在另一堂機器學習技法課程教授!

參考資料:
Machine Learning Foundation 16