[音樂] [音樂]
[音樂] [音樂]
好,大家好,大家好,歡迎回到今天的機器學習基石的課程 我們今天的topic是Training
versus Testing,訓練跟測試的過程 到底有什麼樣的不一樣。那我們會從我們上一次上過的地方出發,我們上一次跟大家講到說
Learning我們本來說好像不可行,後來我們說其實在有些狀況下是
可行的,什麼樣狀況呢?我們的資料要來自某一個distribution,也就是說它像
統計上的資料,所以我們就把learning弄的跟在一個罐子裏抽彈珠,像
類似的問題,另外呢如果我們的演算法拿到的選擇不是太多,是有限個
我們說大M個,這個大M是小小的,有限的話,那麼看起來learning
也是可行的,那我們今天就要進入learning的核心問題,說到底為什麼機器可以學- 到東西?
那我們會從上一次推演過的地方出發,去說那如果 我今天的hypothesis
set是無限大的時候,到底發生了什麼事情? 像我們看過的perceptron這個hypothesis
set其實是無限大的,那在這個 無限大的hypothesis set裏面到底發生了什麼事情,這是我們開始要探討的課題
好,那一開始的時候呢,我們先給大家看看說,好,那這個我們
Learning的整個流程圖現在已經變成這個樣子,我們從一開始的時候跟大家講到
說learning,我們從資料出發,然後我有一個learning的algorithm
然後這個learning algorithm透過資料,還有它所看到的hypothesis
set,這個 假說的集合,然後最後從裏面選擇了一個最後的hypothesis
那我們上一次的推演呢是在這上面加上了一個小小的assumption
我們說不加這個assumption的話,實際上我們不知道該怎麼樣做learning- ,或者learning
其實是不可行的,那我們加上了這個assumption,是說我們訓練的資料跟我們最後- 測試我們hypothesis的方法
都來自同樣的一個distribution,所以我們從這裡去定義了所謂的Ein,就是- 在我們看過的資料上
我們的hypothesis的表現,然後跟Eout就是在我們未來還沒有看過,但是
跟隨著這個distribution的資料上,我們的hypothesis的表現 然後我們讓它用同一個distribution來描述這個事情
那如果這件事情發生的話,那我們說假如我們的hypothesis set不太大
那麼,那我們的資料量又夠多的話,我們就可以確保 對每一個hypothesis來說,我的Ein跟我的Eout
都會長得很像,不管我的演算法實際上是怎麼選擇hypothesis
那麼既然每個都會長得很像,那我乾脆就選一個,我們叫我的演算法選一個
Ein最低的,那這個Ein最低的如果剛好這個Ein 最低的很接近0的話,那Eout就也會
probably approximately很接近0,就大概差不多很接近0
這樣子我們就達到了learning的效果,這是我們上一次跟大家提到的事情
好,所以這邊實際上是分成了兩個步驟。一個步驟是我們在訓練的時候
在我們演算法在跑的時候,我們想辦法確保事情是Ein,就是我們資料上面的表現要很接近0
這是訓練。但是呢如果只有訓練這還是不夠,我們如果要Ein接近0的話,我們就把所有資料
統統記起來,就算這個Ein要接近0,非常的簡單,對機器來說非常的
簡單,但是呢我們要確保真正在未來,在考試在我們測試我們的hypothesis,在我們
把我們的公司用在一個新的顧客上面的時候,Ein跟Eout要非常的接近,就是測試的時候
發生了事情,所以我們才要花很大的力氣,去講說為什麼我們希望Ein跟Eout要很接近
測試的時候,我們不是測試我們已經看過的資料,我們是測試我們沒有看過的資料
那我們希望在這些沒有看過的資料上面要表現好才可以
好,那我們這邊跟大家稍微回顧一下 我們在過去的四堂課,到底每一堂課的重點是什麼東西
我們的第一堂課是要告訴大家,我們learning想做的事情就是有一個未知的f
然後我們希望我們的演算法能夠找出一個g,這個g跟這個未知的f
非常的接近,那我們後來,差不多第四堂課左右我們把這件事情寫成說Eout(g)要- 很接近0
也就是說我們拿一堆新的從某個P產生出來的資料去測試的時候,犯的錯誤
錯誤率要越小越好。那麼第二堂課裏面呢 我們走了一個不一樣,我們說我們那時候其實還不知道要怎麼做,但是我們想
說,好吧,我們現在我們看過的資料上做的儘量好,就好了,所以我們說我們想辦法找一- 些方法說
我們可以讓Ein接近0,在我們已經看過的資料上我們可以做的很好,例如說percep- tron learning
algorithm 或者是pocket algorithm,那這些討論上我們都說人
第三個說,我們承認我們其實在一個很特定的設定下面做,我們用批次的資料,我們用監督-
式的學習 我們用二元的分類,但是這是機器學習裏面一個非常核心的問題
那有了這些概念之後,我們說我們的第四次上課終於想辦法把
Ein跟Eout連起來,也就是說如果 我們的這個hypothesis數量不是太多的話,有可能Ein跟Eout會很接近
這樣子我們在第二次上課做的事情,把Ein弄的越小越好
就真的連接到我們一開始設定的目標,我希望Eout要很小
好,也就是說這裡我們把learning實際上是拆成兩個問題
第一個問題是到底Ein跟Eout會不會接近,這是重要的問題,因為
沒有了這個連接的話,我們第一次課跟第二次課的東西根本就沒有辦法
連在一起,然後第二個才是說我們如果有 連接的話,怎麼讓Ein變得越小越好,這實際上就是
我們在第二次上課的時候講的,那我們在未來會跟大家講到更多這個方面 的技巧。好,那
知道learning的核心已經被拆成這兩個問題以後,我們現在問大家了,那大家覺得
我們之前在討論Ein跟Eout接不接近的時候那個M,那個大M
大M是什麼,大M是hypothesis set的大小,我們現在暫時說hypothesis
set是有限大的 那它到底到大,我們用這個大M來代表,這個大M跟這兩個問題有什麼樣的關係
好,所以我們來看看,okay,有兩種可能性,一種是 大M是屬於相對比較小的數字,一個是大M是相對比較大的數字
小的數字的時候發生什麼事,這兩個問題小的數字小的M的時候能不能滿足這兩個問題
我們說你如果只看第一個問題的話,很好啊,為什麼?第一個問題 說Ein跟Eout都很接近,我們上次證明的事情是說
這個壞事情發生的機率是2倍然後乘上大M然後乘上後面那個exponential那一項
所以說大M很小的話,壞事情發生的機率就很小,什麼是壞事情,壞事情就是Ein跟Eou- t很不接近
所以表示大部分的時候,Ein跟Eout都很接近,M很小的時候我們很開心,Ein跟E- out會很接近
可是M很小的時候呢,你的 演算法的選擇就有限了,選擇有限的時候它是
不是一定能夠找到一個Ein很小,很接近0的選擇呢? 不一定,至少不是對每一個問題都這樣,因為有的問題可能要選這個hypothesis,-
有的問題可能要選那個hypothesis 你如果選擇很少的話,它不見得能夠找到一個Ein很小的這個hypothesis的g
那另外一方面呢,你說,好吧,那不然我用很大的M好了
很大的M誰最開心,第二個問題最開心,第二個問題是我現在選擇很多了,所以我演算法如果- 不考慮計算上
問題的話,我演算法應該可以選到一個好的hypothesis當作我的g,因為它的E- in很小
但是問題是什麼,問題是我們如果回到finite-bin的Hoeffding去看的話- ,我們會發現
壞事情發生的機率增加了,你今天原來用10個hypothesis壞事情發生的機率是1- 0乘上某個東西
你現在如果用一萬個hypothesis,壞事情發生的機率就增加了一千倍,okay,- 所以壞事情發生的機率
就增加,我們可能沒有辦法保證,或者可能只能有比較弱的保證說Ein跟Eout
到底有多接近。所以我們這邊看到說M其實還
蠻重要的,選擇正確的M對於我們未來learning
到底會學的多好這是有關係的,太小或者太大統統不好,要一個適中
數字。所以我們就說那糟糕了,所以太小或太大都不好,那麼無限多個M
顯然是不好的,為什麼?它屬於太大,無限大就是最大最大最大的,我們
可能想像到的數字,所以無限多個M是不好,是不是沒辦法做了搞不好 這個我之前show給大家看的perceptron
learning algorithm根本就是騙人的 好,所以問題是這樣,問題是我們要想
辦法解決無限大的M到底發生了什麼事,我們現在只能做有限大的M 甚至說不要太大的M,無限大的M到底發生了什麼事
我們在這個這幾次的上課裏面我們開始跟大家說的是我們要把這個M
換成一個有限的一個數量,我們現在先暫時把它叫做小mH
用小m代表它可能比原來的大M來得小,然後用H代表它跟hypothesis set的一些性質
可能是有關係的。如果我們可以找出這樣的數量,然後把Hoeffding裏面那個大M換- 成小mH
這邊我打個問號,打個問號的意思是說我不一定可以換 okay,我們沒有說一定可以換,這邊打一個問號,我們沒有說一定可以換
但是如果可以換的話,看起來我們就可以用這個小 m,這是一個有限的數量來取代我們之前講的那個大M
然後怎麼樣呢?然後有了這個小m以後我們就可以說
既然它是有限,所以無限大的大M的時候,而剛才小m還是有限大,那到底是發生了什麼
事情,然後呢再來這個小m跟大M其實會有
類似的這個角色,這個角色呢可以告訴我們未來我們到底 要怎麼選擇正確的hypothesis
set,它太小或太大可能都不是太好 好,那麼這個是比較
理論性的一些課程,那我們的一切目標實際上,我們現在目標 很簡單,我們要完全解決我們之前看到的這個神奇的perceptron
learning algorithm 我們想要說,過了未來三節課
我們可能要花差不多三節課三個小時的時間,之後我們可以很大聲說,好,percep- tron learning
algorithm 的確有學習的效果,它為什麼有學習的效果,我們都可以
透過這一系列的理論的推導來完全的瞭解
那但雖然這是個理論的課程,我希望大家知道說,我們並不是要跟大家講非常枯燥的
一行一行的式子,實際上我們想跟大家講的是這些理論之間發展的關係
還有它背後的一些可能哲學的道理。好,那在我們進入正式的理論之前呢我們
先跟大家講講說,其實我們之前講到的這個Hoeffding's inequality,finite-bin 的 version
Hoeffding's inequality 可以,讓大家實際上可以把它換個方式來想說,這個 inequality 告訴我們什麼
例如說,我們說Hoeffding's inequality是說壞事情發生的機率有多大,如果今天告訴你我只能承受
5%的壞事情發生的機率,但是我覺得0.1這叫做
差不多,就是ε是0.1,壞事情發生的機率最多最多5%,那我有100個hypoth- esis
我現在問的是我要收集多少的資料才夠,例如說這個不等式我們怎麼樣判斷說我收集多少
資料才能滿足,例如說我老闆對我的一些要求
你的這個差不多只能有0.1,然後壞事情發生的機會 只能有5%,所以請大家算一算
這個數字。好,我們希望大家算一算以後呢,能夠算出來說其實到最後我們所有數字
都知道,我們只有一個數字不知道,就是N,那把這個N把它回算回來,我這邊有寫一個式子
大家可以回算回來,回算回來之後你就會發現這個N
的數字大概是選項2,也就是415左右的數字