引入
在上一小節"理解為什么機器可以學習——PAC學習模型"中,我們主要討論了假設的錯誤率問題和如何說一個學習器是可學習的,并給出了PAC學習理論。這一小節,我們將沿著這個方向,討論一下,有限假設空間的樣本復雜度,并用Hoeffding不等式來界定概率邊界。
假設空間的樣本復雜度
PAC可學習性很大程度上由所需的訓練樣本數量決定。隨著問題規模的增長所帶來的所需訓練樣本的增長稱為學習問題的樣本復雜度(sample complexity)。在多數實際問題中,最限制學習器成功的因素是有限的可用的訓練數據。
我們通常都喜歡能與訓練數據擬合程度更高的假設,當一個學習器在可能時都輸出能完美擬合訓練數據的假設時,我們稱該學習器是一致的(consistent)。這就要求訓練錯誤率是0。
遺憾的是,如果假設空間里不總是能找到一個零錯誤率的假設,這時,最多能要求學習器輸出的假設在訓練數據上有最小的錯誤率。
在更一般的情形下,我們要考慮學習器有非零訓練錯誤率的假設時,仍能找到一個邊界來限定學習器所需的樣本數量。
Hoeffding邊界
描述問題
現在,我們來更準確的描述我們要解決的問題。
令D代表學習器可觀察的特定的訓練數據集合,而P代表整個數據集合背后滿足的概率分布。令Ein(h)代表假設h的訓練錯誤率(在機器學習基石課程中,該錯誤率被稱為in-sample error),確切的說,Ein(h)是數據集D中被h誤分類的訓練數據所占比例,Ein(h)是定義在訓練數據集D上的,而真實錯誤率Eout(h)(out-of-sample error)是定義在整個概率分布P上的。現在令g代表H中有最小訓練錯誤率的假設。問:多少訓練數據才足以保證真實錯誤率Eout(h)和訓練錯誤率Ein(h)很接近,并且接近0。
Hoeffding不等式

Hoeffding刻畫的是某個事件的真實概率及其m個獨立重復試驗中觀察到的頻率之間的差異,更準確的將,它是應用于m個不同的Bernoulli試驗。
該不等式給出了一個概率邊界,它說明任意選擇的假設訓練錯誤率不能代表真實情況。
確認(verification)流程

我們發現滿足上面給的邊界不等式的h可不可以說它是一個好的學習器呢?當然不能,上面的不等式只能說明h的訓練錯誤率和真實錯誤率很接近,但卻不一定是最小的,即h不一定是最佳的假設。所以,這只是對一個假設做確認的過程。
這里因為只有一個hypothesis在手上,所以我們還不能做選擇,但是我們可以給它一些verifying examples來讓它做確認,看看h的表現如何,正如上圖流程所示。
有限假設空間的錯誤率的概率邊界
Hoeffding不等式告訴我們什么呢?較好擬合訓練數據的假設與該假設針對整個數據集合的預測,這兩者的錯誤率差別很大的那種情況發生的概率是很小的。
那么現在的問題是什么呢?如果在多個假設中,其中一個假設針對訓練數據的輸出都是正確的,那要不要選這個假設作為算法的輸出的假設呢?
帶著這個問題,我們先了解一下什么叫做不好的數據。
Bad Sample and Bad Data
壞的樣本就是訓練錯誤率Ein=0,而真實錯誤率Eout=1/2的情況。
壞的數據是Ein和Eout差別很大的情況,通常Ein很小,Eout很大。
而Hoeffding說明的是如果把所有的訓練數據(從輸入空間中,隨機選取產生的數據的不同組合)窮舉出來,得到的不好的樣本(Bad Sample)的概率是很小的。
所以壞的樣本就是讓算法的預測的準確率和訓練時的正確率差別很大的情況(Ein和Eout差別很大)。

上圖說明:
- 對于一個假設hi(每一行),Hoeffding保證其不好的情況總體的概率是很小的
- 對于含有BAD的每一列來說,只要有BAD,算法就無法從所有假設中自由做選擇
- 表中D1126這個數據集是好的數據
Bound of BAD Data
我們來算一下壞的數據的概率邊界:

這個式子是有限個假設的Hoeffding不等式。
對于這個式子來說,如果訓練數據的數量N夠大的話,那么能保證Ein和Eout差別很小。

統計學習流程

上面的流程總結了我們這篇文章討論的問題,那就是如果現有有限個假設且訓練數據量夠多的情況下,那么不管我們如何選擇訓練數據,訓練錯誤率和真實錯誤率都會很接近;我們設計算法來找一個Ein最小的,PAC理論就保證了Eout很小。這樣機器學習算法是有可能學到有用的知識的!
小結
我們至此討論的是有限個假設的情況,說明了機器學習算法可以做到一些事情。那么無限多假設的情況該是如何處理呢?我將在下一小節中介紹VC理論的有關知識。
參考資料
機器學習, Tom M.Mitchell ,機械工業出版社
機器學習基石課程,林軒田,臺灣大學
轉載請注明作者Jason Ding及其出處
Github主頁(http://jasonding1354.github.io/)
CSDN博客(http://blog.csdn.net/jasonding1354)
簡書主頁(http://www.lxweimin.com/users/2bd9b48f6ea8/latest_articles)