0:00
[音樂] [音樂]
[音樂] [音樂]
好,大家好,大家好,歡迎回到今天最後一講,第十六講的機器學習課程。
我們今天要跟大家講的是 Three Learning Principles 實際上是要給大家三個
對做機器學習的時候的錦囊妙計,希望大家未來受用無窮。
好,那我們現在複習一下上一次講的是什麼?我們上一次講了一個很重要的工具,叫做 validation,好,我們做
的事情是這樣,我們要留下一些這個我們所謂的 validation data
這些驗證資料,either是說 你就留下一份驗證資料,或用交叉的方式留下驗證資料,那我們的目的什麼呢?是希望
能夠模擬你在做測試的程序,這樣你就知道到底自己在不同的比如說不同的 model
上面, 到底表現好不好,好,那我們接下來呢,就來講我們今天要給大家三個
錦囊妙計,好,那我們要跟大家講的第一個錦囊妙計是什麼呢? 我們叫 Occam's Razor
還有一句話是這樣說的,An explanation of the data should be made as simple as possible,
but no simpler,好,也就是說什麼呢,說你今天如果要對你的資料做解釋的話,越簡單的解-
釋越好, 越簡單你能夠想到最簡單的解釋,這是最好的,當然你不要更 簡單,因為更簡單的話,這樣子可能你就沒有辦法把資料解釋的很好,
那這一句話呢,通常被認為是愛因斯坦說的,只是目前沒有實際的歷史證據說,他真的說過這句
話,這句話的哲學可以追溯到十四世紀的時候,有一個哲學家William of
Occam 他說的事情是 entities must not be multiplied beyond necessity。
好,也就是說你不要對一個東西多做過多的處理,你應該怎麼樣呢?
用越簡單的越好,把那些不必要的東西都好像剃掉。
好就是說那些這個過度的解釋啊,這些太麻煩的部分啊,通通都剃掉,
剃的越清爽越簡單越好,那這通常就被人家叫做 Occam's Razor。
Occam 的剃刀,OK ,這個這個我們看到右邊有一個這個古老的這種剃刀的這個圖片,好,這也就是說我們
希望什麼,我們希望對資料不要過分的解釋,過分解釋的時候,你最好拿那個剃刀,把那些東- 西像鬍子一樣就把它
剃掉,好,那在 machine learning 裏面,這是什麼意思呢,它實際上
就呼應了我們之前講的說你對資料最簡單的解釋 也就是最好的解釋,好,The
simplest model that fits the data is also the most plausible 好,最簡單的解釋是最好的。
什麼意思呢?我給大家看兩個圖,大家可能就可以理解同樣的資料 請問,你對這個資料解釋是左邊那個圖,還是右邊那個圖呢?
好,我相信大部分同學應該會選左邊那個圖,好,因為呢,我們可以想像至少對我們的人腦來- 說,左邊
那個圖看起來是個比較簡單的解釋,同樣的資料的話,那我為什麼要畫一些複複複雜的這些曲- 線來解釋
它,一個簡單的大大的圓,可以把資料圈起來,這不是很好嗎? 好,所以這是符合我們人類直覺的解釋方式。
那如果是這樣的話,問題就來了,那到底什麼樣叫做一個簡單的模型,什麼樣叫做一個簡單-
的解釋? 然後再來呢,我們為什麼知道簡單是比較好的?
好,在我們過去這門課裏面,我們用了一些方法告訴大家什麼樣叫做簡單的?
我們曾經告訴大家什麼叫做簡單的 hypothesis?
好,你有單一的 hypothesis 的時候,到底我們怎麼說它是簡單的? 好,例如說我們會說一個簡單的
hypothesis 應該是看起來 很簡單,就像我們剛才那個大大的園看起來很簡單,不是彎彎曲曲的
曲線,那這個看看很簡單的意思是什麼呢?實際上表示我們只需要少數的參數,
好,例如說,一個圓心,一個半徑,我就可以說這個 hypothesis 長什麼樣子?我不需要非常複雜的參數。
我們在這個課裏面還提到另外一種簡單,是我們怎麼說 一個 model
和一堆的 hypotheses 是簡單的, 那麼怎麼說呢,我們說一個
model 如果不是很多, 有效的 hypotheses 數量不是很多的話,我們就說它是簡單的,
好,這也就是說我今天我的整個裏面應該mission dimension很小,我只有 small number of hypotheses,
或是 small number of effective hypotheses 有效的 hypotheses 的數量,這是很少的,
成長函數長得很慢,這樣子的話我們就說它是簡單的。
好,這兩種解釋的方法,實際上是有關聯性的。
我們想像如果我們有一個 hypotheses set,OK,它最多只有2的L次方,那麼多個
hypotheses, 那我就問大家呢,那請問你一個 hypotheses,最多需要多少個參數來描述。
好,大家會說,你既然是這樣的話,那麼你用 bit 來描述的話,你用2的L次方
那麼多個,那你只需要L個 bit 就可以表示這麼多種的排列組合,
好,所以呢,如果你今天整個大大的 model
的這個 copamtitive 複雜度很小,它是簡單的話,那某種程度也表示它裏面的
hypotheses 應該是屬於比較簡單的,好,所以這兩種簡單的定義並不衝突,
簡單的 hypotheses 簡單的 model 它們其實是彼此之間有聯繫的,
好,那我們在這堂課裏面,已經透過一些方式,我們說你要麼就一開始就現說自己用簡單的 model
要麼呢,好,你透過 regression 你現說你的這個實際得到的 hypotheses,
這樣的話,你可以得到最後對你的資料 簡單的解释,然後簡單的解釋應該就是好的解釋。
好,那為什麼簡單是好的呢?除了我們已經給大家看得一堆的這些數學
的證明之外,我們這邊要提供給大家一個比較直覺的解釋,我們叫哲學的解釋。
這個解釋是這樣,你想像你有一個簡單的 model, 我們剛說簡單的 model 是什麼意思?簡單的
model 就是成長函數很小,長得很慢的 成長函數很小,長得很慢代表什麼?如果你今天
隨便丟有一組資料,這個隨便一組資料,意思是說 好例如說一些輸入,然後那個輸出的部分,你就丟銅板來產生。
丟銅板產生,自然大家可以想像應該是沒有什麼規律的。
好,如果這樣亂亂的資料,這樣隨機產生的資料,丟給
你的模型會發生什麼事,你就只有很小的機會 你的模型會找到一個
Ein 是 0 的。對不對,很小的機會就是剛好碰到那些可以
做出來的情形,那會找到 Ein 是 0,如果找如果其他情形的話,這是做不出 Ein 是零的。
好,所以亂亂的資料導致的結果是什麼?導致的結果是大部分的時候,都沒有辦法分開,
那反過來說,如果你今天有一組資料找到,真的
用你的模型很完美的找到可以分開來的,那這是有顯著性的, 這表示你的資料應該不是亂亂的資料,
亂亂的資料大概不可以分開,可以分開的話,應該不是亂亂的資料,好,這裡告訴我們說- ,你如果
使用簡單的模型,你就可以下這樣的結論說,你找到 也可以分開的時候,你的資料應該是有某種程度的規律性,
那相反的,如果你有很複雜的模型呢,你就做不到這一件事,因為你不
知道說,你有很複雜的模型的話,你到底分開,你真的沒有辦法辨別說
是亂亂的資料,還是有規律的資料,反正不管什麼資料,它通通可以分得開,那就不知道是哪-
一種資料? 好,所以這解釋呢,這裡發生什麼事,我們用了簡單的模型去解釋我們
資料的時候,我們覺得很好,因為這樣告訴我們說這個結果是有顯著性的,
如果我們用一個複雜的模型去分開資料,複雜的模型,反正不管什麼資料,它都可以 分開,這個結果對我們來說沒有什麼顯著性,
所以最直接根據這個錦囊妙計出發,說你應該用
簡單的模型,最直接大家應該做的是什麼?我們之前已經跟大家推薦過,先試
線性的模型,線性的模型幾乎是你可以想到最簡單的模型,再試更
複雜的,實際上,你若試簡單的模型,簡單的模型解決那就解決了,其他的就再說吧。
好,然後呢,再來你永遠都要想一想, 你把你的模型應用在一個資料上的時候,你有沒有過度應用你的模型,
好,這裡並不是 overfit 並不是說你的機器開始跑了以後,然後又有一個模型,然後做的更差,這是 overfit。
而是你自己你在決定要用什麼模型的時候,一定要想想你是不是已經用了你目前
腦袋裏想得出來最簡單的模型,因為你要用這個最簡單的模型,才會有我們剛才講的這些- 顯著性,
如果你用更複雜的模型,你可能就沒有辦法 這個解釋你做出來好的結果,到底是什麼原因?
好,所以從這裏出發呢,我們這邊給大家一個簡單的測驗,說我今天如果 看所謂的
decision stumps OK,大家如果記得的話,decision stumps
這個意味著它的成長函數是2乘以n, 那我們今天大家來算算說,我如果用這樣的模型,然後呢,我現在有十個點的話,到底
OK,如果今天是一個亂亂的資料,然後呢,我的 decision stumps 居然完美的分開,這個幾率是多少?
好,大家算一算之後,我希望大家會得到正確的答案是3,在這1024種組合裏面只有 20種是
decision stumps 完美的分得開的,其它 通通都不會是有 decision stumps 分開的情形。