寫在前面
本系列筆記主要記錄《統計學習方法》中7種常用的機器學習分類算法,包括感知機,KNN,朴素貝葉斯,決策樹,邏輯斯諦回歸與最大熵模型,SVM,boosting。
課本還涉及到3種算法是關於概率模型估計和標注問題的,暫未列入學習計划,所以筆記中沒有涉及,包括EM算法,隱馬爾可夫模型,條件隨機場(CRF)。
所以本系列筆記總共包括9篇筆記:
1篇概論(對應書本第1章)
7篇算法(對應書本第2-8章)
1篇總結(對應書本第12章)
統計學習
學習:Herber A. Simon曾對“學習”給出以下定義:“如果一個系統能夠通過執行某個過程改進它的性能,這就是學習”。
統計學習:統計學習就是計算機系統通過運用數據及統計方法提高系統性能的機器學習。現在人們提及的機器學習,往往就是指統計機器學習。
統計學習的前提:統計學習關於數據的基本假設是同類數據具有一定的統計規律性。由於它們具有統計規律性,所以可以用概率統計方法來加以處理。比如,可用隨機變量描述數據中的特征,用概率分布描述數據的統計規律。
統計學習包括:監督學習,非監督學習,半監督學習,強化學習,本書主要討論監督學習。
監督學習
三種任務:輸入輸出均為連續變量的預測問題稱為回歸問題,輸出變量為有限個離散變量的預測問題稱為分類問題,輸入輸出均為變量序列的預測問題稱為標注問題。
監督學習的假設:假設輸入與輸出的隨機變量\(X\)和\(Y\)遵循聯合概率分布\(P(X, Y)\)。在學習的過程中,假定這一聯合概率分布存在,訓練數據與測試數據被看作是依聯合概率分布\(P(X, Y)\)獨立同分布產生的。
獨立同分布:隨機過程中任何時刻的取值都為隨機變量,如果這些隨機變量服從同一分布,並且相互獨立(X1的取值不影響X2的取值,X2的取值不影響X1的取值),那么這些隨機變量是獨立同分布的。
統計學習三要素之一:模型
模型和假設空間:統計學習首要考慮的問題是學習什么樣的模型。監督學習中,模型就是所要學習的條件概率分布或決策函數,模型的假設空間包含所有可能的條件概率分布或決策函數。
決策函數族:假設空間可以定義為決策函數的集合,\(\mathcal{F} = \{f \ | \ Y = f_\theta(X), \theta \in R^n\}\)。
條件概率分布族:假設空間也可以定義為條件概率的集合,\(\mathcal{F} = \{P \ | \ P_\theta(Y \ | \ X), \theta \in R^n\}\)。
概率模型和非概率模型:用決策函數表示的模型為非概率模型,用條件概率表示的模型為概率模型。有時模型兼有兩種解釋,既可以看作概率模型,也可以看作非概率模型。為了簡便起見,當論及模型時,有時只用其中一種模型。
統計學習三要素之二:策略(損失函數)
常用損失函數:
(1)0-1損失:$$L(Y,f(X)) = \left{\begin{matrix}
1, & Y \neq f(X)\
0, & Y = f(X)
\end{matrix}\right. $$
(2)平方損失:\(L(Y,f(X)) = (Y-f(X))^2\)
(3)絕對損失:\(L(Y,f(X)) = |Y-f(X)|\)
(4)對數損失:\(L(Y, P(Y|X)) = - \log P(Y|X)\)
期望風險:公式如下,這是理論上模型\(f(X)\)關於聯合分布\(P(X,Y)\)的平均意義下的損失,稱為期望風險(expected risk)。學習的目標是選擇期望風險最小的模型,但是實際上聯合分布\(P(X,Y)\)是未知的。如果知道聯合分布\(P(X,Y)\),可以從聯合分布直接求出條件概率分布\(P(Y|X)\),也就不需要學習了。
經驗風險最小化:公式如下,這是模型關於訓練數據的平均損失,稱為經驗風險(empirical risk)。根據大數定律,樣本\(N\)趨於無窮時,\(R_{emp}(f)\)趨近於\(R_{exp}(f)\),所以通常用經驗風險來估計期望風險,經驗風險最小化認為經驗風險最小的模型是最優的模型。
結構風險最小化:,但是現實中訓練樣本有限,甚至很小,需要對\(R_{emp}\)進行矯正。結構風險最小化(structure risk minimization)是為了防止過擬合提出來的策略,在經驗風險的基礎上加上表示模型復雜度的正則化項或者懲罰項,如下式所示,\(J(f)\)為模型的復雜度,復雜度表示了對復雜模型的懲罰,\(\lambda \geqslant 0\)是系數,用來權衡經驗風險和模型復雜度。
結構風險最小化需要經驗風險與模型復雜度同時小。結構風險小的模型往往對訓練數據以及未知的測試數據都有較好的預測。
統計學習三要素之三:算法(最優化算法)
算法到最優化:統計學習基於訓練集(data),根據學習策略(loss),從假設空間(model)中選擇最優模型,最后需要考慮用什么算法(algorithm)求解最優模型。這時,統計學習問題歸結為最優化問題,統計學習的算法稱為最優化問題的算法。
最優化:如果最優化問題有顯式的解析解就比較簡單,但通常解析解不存在,這就需要用數值計算的方法來求解。如何保證找到全局最優解,並使求解的過程高效,就成為一個重要問題。統計學習可以用已有的最優化算法(常用的有梯度下降法,牛頓法和擬牛頓法),有時也需要開發獨自的優化算法。
模型評估與模型選擇
評估標准:當損失函數給定時,基於損失函數的模型的訓練誤差和測試誤差就自然稱為學習方法的評估標准。注意,統計學習方法具體采用的損失函數未必是評估時使用的損失函數,當然,讓二者一致是比較理想的(現實中由於0-1損失不是連續可導的,評估時用0-1損失,訓練時使用另外的損失,比如分類任務中大多用對數損失)。
訓練誤差:模型關於訓練集的平均損失(經驗損失)。訓練誤差的大小,對判斷給定問題是不是一個容易學習的問題是有意義的,但本質上不重要。
測試誤差:模型關於測試集的平均損失(當損失函數是0-1損失時,測試誤差就變成了測試集上的誤差率error rate,誤差率加准確率為1)。測試誤差反映了學習方法對未知的測試數據集的預測能力,通常將學習方法對未知數據的預測能力稱為泛化能力。
模型選擇:當假設空間含有不同復雜度(例如,不同的參數個數)的模型時,就要面臨模型選擇的問題,我們希望學習一個合適的模型。如果假設空間中存在“真”模型,那么所選擇的模型應該逼近“真”模型。
過擬合:如果一味追求提高對訓練數據的預測能力,所選模型的復雜度往往會比“真”模型更高,這種現象稱為過擬合。過擬合是指學習時選擇的模型所包含的參數過多,以至於出現這一模型對已知數據預測得很好,但對未知數據預測很差的現象。
模型選擇和過擬合:可以說模型選擇旨在避免過擬合並提高模型的預測能力,常用的模型選擇方法有正則化和交叉驗證。
正則化:
正則化是結構風險最小化策略的實現,是在經驗風險上加上一個正則化項或懲罰項。正則化項一般是模型復雜度的單調遞增函數,模型越復雜,正則化值越大。正則化項可以是模型參數向量的范數,比如L1范數或L2范數。如下式子回歸問題中的平方損失加L2范數。
第1項的經驗風險較小的模型可能比較復雜(多個非零參數),這時第2項的模型復雜度會比較大。正則化的作用是選擇經驗風險與模型復雜度同時比較小的模型。
正則化符合奧卡姆剃刀原理:在所有可能選擇的模型中,能夠很好地解釋已知數據並且十分簡單才是最好的模型,也就是應該選擇的模型。
訓練/驗證/測試:如果樣本充足,模型選擇的一個簡單方法是把數據隨機划分為訓練集,驗證集,測試集。訓練集用來訓練模型,驗證集用於模型的模型,測試集用於最終對學習方法的評估。在學習到的不同復雜度的模型中,選擇對驗證集有最小預測誤差的模型,由於驗證集有足夠多的數據,這樣進行模型選擇是有效的。
但是實際應用中數據是不充足的,為了選擇好的模型,可以采用交叉驗證的方法。其基本思想是重復使用數據,划分為訓練集和測試集,在此基礎上反復訓練,測試以及模型選擇。
簡單交叉驗證:隨機划分兩部分數據,一部分作為訓練集,一部分作為測試集(比如三七分)。然后用訓練集在各種條件下(比如不同的參數個數)訓練模型,在測試集上評價各個模型,選擇測試誤差最小的模型。
S折交叉驗證(應用最多):隨機切分成S個互不相交,大小相同的子集;用S-1個子集的數據訓練模型,余下的子集做測試;將可能的S種選擇重復進行,會得到一個平均誤差;選擇平均測試誤差最小的模型作為最優模型。
留一交叉驗證:S折交叉驗證的特殊情形是\(S=N\)(樣本容量),稱為留一驗證,往往在數據缺乏的情況下使用。
泛化能力
泛化能力:學習方法的泛化能力指由該方法學習到的模型對未知數據的預測能力。
測試誤差:現實中采用最多的辦法是通過測試誤差來評價學習方法的泛化能力,但這種評價是依賴於測試數據集的,因為測試數據集是有限的,很有可能由此得到的評價結果是不可靠的。
泛化誤差:泛化誤差就是學習到的模型的期望風險。
泛化誤差上界:統計學習理論試圖從理論上對學習方法的泛化能力進行分析。學習方法的泛化能力分析往往是通過研究泛化誤差的概率上界進行的,簡稱泛化誤差上界。具體來說,就是比較兩種學習方法的泛化誤差上界的大小來比較它們的優劣。
泛化誤差上界的性質:隨着樣本容量的增加,泛化上界趨於0。假設空間越大,模型越難學,泛化上界越大。
二分類的泛化誤差上界:對二分類問題,當假設空間是有限個函數的集合\(\mathcal{F}=\{f_1,f_2,...,f_d\}\)時,對任意一個函數\(f\in\mathcal{F}\),至少以概率\(1-\delta\),以下不等式成立(以下只是假設空間包含有限個函數情況下的泛化誤差上界,對一般的假設空間要找到泛化誤差界沒有這么簡單)。
不等式左端\(R(f)\)是泛化誤差。右端為泛化誤差上界。其中右端第1項為訓練誤差,訓練誤差越小,泛化誤差上界也越小。右端第2項是N的單調遞減函數,當N趨於無窮時趨於0;同時它也是\(\sqrt{\log d}\)階的函數,假設空間\(\mathcal{F}\)包含的函數越多,其值越大。
生成模型和判別模型
生成方法和判別方法:監督學習方法又可分成生成方法和判別方法,所學到的模型分別為生成模型和判別模型。
生成模型:生成方法由數據學習聯合概率分布\(P(X, Y)\),然后求出條件概率分布\(P(Y|X)\)作為預測的模型,即生成模型。
之所以稱為生成方法, 是因為模型表示了給定輸入X產生輸出Y的生成關系。典型的生成模型有:朴素貝葉斯法和隱馬爾可夫模型。
判別模型:判別方法由數據直接學習決策函數\(f(X)\)或條件概率分布\(P(Y|X)\)作為預測的模型,即判別模型。判別方法關心的是對給定的輸入X,應該預測什么樣的輸出Y。典型的判別模型包括:KNN,感知機,決策樹,邏輯回歸,最大熵模型,SVM,boosting方法和條件隨機場。
生成方法的優點
(1)可以還原出聯合概率分布
(2)學習收斂更快,即隨着樣本容量N的增加,學到的模型可以更快地收斂於真實模型。
(3)當存在隱變量時,仍可以用生成方法學習,此時判別方法就不能用。
判別方法的優點:
(1)直接學習條件概率\(P(Y|X)\)或決策函數\(f(X)\),直面預測,往往准確率更高。
(2)直接學習\(P(Y|X)\)或\(f(X)\),可以對數據進行各種程度上的抽象,定義特征並使用特征,因此可以簡化學習問題。