在這篇文章中,我們主要探討,機器到底能不能進行學習這個問題。
Learning is Impossible?
從前面的文章中,我們已經知道,機器學習的過程,就是通過現有的訓練集 學習,得到預測函數 ,並且使得它接近於目標函數 。
我們必須思考的問題是:
這種預測是可能的麼?也就是說,機器能通過學習得到 ,使得 嗎?
No free lunch
機器學習領域有一個著名的理論,叫做 “沒有免費的午餐” 定理(No Free Lunch Theorem, 簡稱 NFL 定理)。用比較通俗易懂的話來講,意思就是說:“學習” 可能是做不到的。
在訓練樣本集(in-sample)中,可以求得一個最佳的假設 ,該假設最大可能的接近目標函數 ,但是在訓練樣本集之外的其他樣本(out-of-sample)中,假設 和目標函數 可能差別很遠。
Example
我們舉一個例子來說明上面這段話的意思。現在假設有這樣一個數據集 總共8個數據,使用函數 對數據集中的每一個數據分類(圈或叉)。現在我們手頭有5個訓練樣本,我們想讓機器使用這些訓練樣本學習到函數 。
由於機器只能看到訓練集的樣本(5個),因此它能學習得到函數 ,使得在這些訓練樣本上, 與 的預測結果一樣。
但是,因爲機器看不見訓練集外的樣本(剩下的3個),對於這些樣本,機器只能自己猜測 的值。而無論機器預測的結果是怎麼樣的,我們總能夠找到 ,使得在這些訓練集外的樣本上, 。
Summary
從上面的例子我們可以看出,機器能學習的,只是它看得見的樣本(in-sample),而對於它看不見的樣本(out-of-sample),學習效果就很難保證了。
如果是這樣子的話,機器學習的作用的很有限了,畢竟我們更需要的,是機器機幫我們處理沒見過的數據。
嗯,事情一定沒這麼簡單。
Probability to the Rescue
我們想象這樣一個場景:有一個罐子,這個罐子裏裝有橙色和綠色兩種顏色的珠子,我們如何在不查遍所有珠子的情況下,得知罐子中橙子珠子所佔的比例呢?一個想法就是使用抽樣的方法,通過頻率來預測概率。
假設罐子中橙色珠子的概率爲 (未知),則綠色珠子的概率爲 ;假設通過抽樣查出的橙色珠子比例爲 (已知),則綠色珠子的比例爲 。那麼我們可不可以通過 來預測 呢?
Hoeffding’s inequality
數學上有個霍夫丁不等式,專門回答了這個問題。這個不等式是這樣子的:
當樣本數量 足夠大時, 和 有如下關係:
從上面的式子可以看出,隨着樣本數量 的逐漸增大, 與 接近的概率也逐漸增大,因此可以說 與 大概近似相等(probably approximately correct,PAC),因此,選擇合適的 以及 ,就可以通過 預測 。
Connection to Learning
我們可以將以上的情景與機器學習問題對應起來,如下圖所示:
相對應的概念如下所示:
- 罐子:數據集,包括 in-sample 以及 out-of-sample
- 橙色珠子:數據 , 其中
- 綠色珠子:數據 , 其中
- 橙色珠子概率 : 的概率
- 抽到的珠子:訓練樣本(我們看得到的那些)
- 抽到橙色珠子:在某個樣本點 上,
- 抽到綠色珠子:在某個樣本點 上,
- 橙色珠子頻率 : 的頻率
- 抽樣動作:判斷 與 是否相等
於是在樣本數足夠多的情況下,我們可以通過測試 的頻率來推斷 的概率。這裏需要注意的是, 需要是獨立同分布的,但是我們並不需要知道具體的分佈函數是什麼。
Learning Flow
我們對學習流程圖進行完善,如下圖所示:
我們在流程圖中增加了一個數據的分佈函數 ,我們並不知道這個分佈具體的樣子(但是沒關係),我們利用這個分佈進行抽樣,產生訓練樣本,同時利用這些訓練樣本,計算 的頻率 ,並且使用這個頻率來估計 的概率 。這裏所說的 ,是我們從假設集 (hypothesis set) 中選擇的一個特定的 。
The Formal Guarantee
將霍夫丁不等式中的 換成 , 換成 ,就可以得到下面的式子:
上面的公式保證了在一定條件下, 與 不會相差太遠,那麼只要我們能選擇合適的 使得 比較小,那麼 也會比較小。
Verification of One
整理一下,對於一個固定的 ,霍夫丁不等式告訴我們,在樣本數足夠多的情況下,如果 很小,那麼 也會大概率比較小。
機器學習要做的事,是通過算法 從假設集 中選擇 ,使得 儘可能接近 。換句話來講,需要在假設集 中找到一個 ,使得 很小,然後把 當成最終的預測函數 。
我們現在做的事情,因爲只涉及了一個 ,準確來講不是 “學習”,而是 “驗證”,即對於一個 ,通過 估計 。
我們還需要探討,如果算法是在多個 中進行選擇(而不是隻有一個 ,不需要選擇),那麼情況有什麼變化。也就是從探討 與 的關係,變成探討 與 的關係。
Connection to Real Learning
首先我們考慮假設集中的假設是有限多個的情況。
來看一下下面這個表格,表格中的每一行表示一個固定的 的情況,表格中的每一列表示一筆數據集,表格裏的 “BAD” 表示,在這筆數據集上,對於某個特定的 , 與 相差很大,我們把這樣的數據叫做是這個 上的 BAD data。
霍夫丁不等式告訴我們,對於一個固定的 ,出現 與 相差很大的概率很小,也就是說,對於表格中的每一行, BAD data 出現的概率很小,在這樣的情況下,我們才能通過 來預測 。
同樣的,當有多個 可選擇時,我們也希望 BAD data 出現的概率小,這樣才能讓算法在假設集中自由選擇 ,保證能通過 來預測 。
這種情況下,只要數據對於某個 而言是 BAD data,它在這個假設集中就是 BAD data,其出現的概率爲:
因此得到結論:如果 的值是有限的,在 足夠大的情況下,BAD data 出現的概率很小,即無論哪個 ,都有 (PAC),那麼我們通過合適的算法選擇一個 小的 ,就能保證 小(PAC),於是學習成功了。
最後完善學習流程圖:
以上,我們討論了假設集中的假設是有限多個的情況下, 與 的關係。關於假設集中的假設是無限多個的情況,將在接下來的文章中討論。