文章作者:Tyan
博客:noahsnail.com ?|? CSDN ?|? 簡書
1. 統計學習方法概論
本文是統計學習方法(李航)第一章的學習總結。
1.1 統計學習
1.統計學習的特點
統計學習(statistical learning)是關于計算機基于數據構建概率統計模型并運用模型對數據進行預測和分析的一門學科。統計學習也稱為統計機器學習(statistical machine learning)。現在人們提到的機器學習往往是指統計機器學習。
統計學習的特點:(1)以計算機和網絡為平臺;(2)以數據為研究對象,是數據驅動的學科;(3)目的是對數據進行分析和預測;(4)以方法為中心,構建模型并應用模型進行分析和預測;(5)是概率論、統計學、信息論、優化理論和計算機科學等多個領域的交叉學科。
2.統計學習的對象
統計學習的對象是數據(data)。它從數據出發,提取數據特征,抽象出數據模型,根據模型對數據進行分析和預測。統計學習的前提是假設同類數據(具有某種共同性質)具有一定的統計規律性。統計學習過程中,以變量或變量組表示數據,數據分為連續變量和離散變量表示的類型。
3.統計學習的目的
統計學習總的目標就是考慮學習什么的模型和如何學習模型,以使模型能夠對數據進行準確的預測和分析,同時也要考慮學習效率。
4.統計學習的方法
統計學習分為監督學習(supervised learning)、非監督學習(unsupervised learning)、半監督學習(semi-supervised learning)和強化學習(reinforcement learning)等。統計學習方法包括模型的假設空間、模型選擇的準則及模型選擇的算法,稱為統計學習方法的三要素,簡稱模型(model)、策略(strategy)和算法(algorithm)。
5.統計學習的研究
統計學習的研究包括統計學習方法(算法創新)、統計學習理論(算法效率及有效性)及統計學習應用(解決問題)三個方面。
6.統計學習的重要性
統計學習的重要性體現在三個方面:(1)統計學習是處理海量數據的有效方法。(2)統計學習是計算機智能化的有效手段。(3)統計學習是計算機發展的重要組成部分。
1.2 監督學習
監督學習的任務是學習一個模型,使模型能夠對任意給定的輸入,對其相應的輸出做出一個好的預測。
1.2.1 基本概念
1.輸入空間、特征空間與輸出空間
在監督學習中,輸入與輸出的所有可能的取值集合分別稱為輸入空間(input space)和輸出空間(output space)。通常輸出空間遠遠小于輸入空間。
每個具體的輸入是一個實例(instance),通常由特征向量(feature vector)表示。所有特征向量存在的空間稱為特征空間(feature space)。特征空間的每一維對應一個特征。當輸入空間與特征空間不同時,需要將實例從輸入空間映射到特征空間,模型實際上都是定義在特征空間上的。
監督學習過程中,將輸入和輸出看作是定義在輸入空間和輸出空間上的隨機變量的取值。習慣上輸入變量寫作X
,其取值寫作x
,輸出變量寫作Y
,其取值寫作y
。輸入實例的x
的特征向量記作
$$x = (x^{(1)}, x^{(2)},..., x^{(i)} ,...,x{(n)})T$$
$x^{(i)}$表示向量x
的第i
個特征,而$x_i$表示第i
個輸入變量。
$$x_i = (x_i^{(1)}, x_i^{(2)},..., x_i^{(i)} ,...,x_i{(n)})T$$
監督學習從訓練數據中學習模型,對測試數據進行預測。訓練集通常表示為
$$T = {(x_1,y_1),(x_2,y_2),...,(x_N,y_N)}$$
$(x_i,y_i)$表示樣本或樣本點。
輸入變量和輸出變量可以是離散型的,也可以是連續型的。輸入變量和輸出變量都是連續型變量的預測問題稱為回歸問題;輸出變量為有限個離散型變量的預測問題稱為分類問題;輸入變量和輸出變量均為變量序列的預測問題稱為標注問題。
2.聯合概率分布
監督學習假設輸入與輸出的隨機變量X和Y遵循聯合概率分布P(X,Y)
,P(X,Y)
表示分布函數或分布密度函數。訓練數據和測試數據被看作是依聯合概率分布P(X,Y)
獨立同分布產生的。統計學習假設數據存在一定的統計規律。
3.假設空間
監督學習的目的在于學習一個由輸入到輸出的映射,映射關系用模型表示。輸入到輸出的映射集合就是假設空間(hypothesis space)。簡單學習的模型可以是概率模型或非概率模型。由條件概率分布P(Y|X)
或決策函數Y=f(X)
表示。對具體的輸入進行輸出預測時,寫作P(y|x)
或y=f(x)
。
1.2.2 問題的形式化
監督學習利用訓練數據學習模型,再用模型對測試數據進行預測。學習過程中的訓練數據往往是人工給出的,因此稱為監督學習。監督學習分為學習和預測兩個過程,如下圖:
首先給定數據集$T={(x_1,y_1),(x_3,y_2),...,(x_N,y_N)}$,其中$(x_i,y_i),i=1,2,...,N$,稱為樣本或樣本點,$x_i \in X \subseteq R^n$是輸入的觀測值,稱為輸入或實例,$y_i \in Y$是輸出的觀測值,也稱為輸出。通過學習得到的模型表示為條件概率分布$P(Y|X)$和決策函數$Y=f(X)$,模型表示的是輸入與輸出之間的映射關系。
預測過程中,對于測試數據中的輸入$x_{N+1}$,由模型$y_{N+1}=argmax P(y_{N+1}|x_{N+1})$或$y_{N+1}=f(x_{N+1})$給出對應的輸出$y_{N+1}$。
1.3 統計學習三要素
統計學習方法的三要素為模型、策略和算法,它們關系為:統計學習方法 = 模型 + 策略 + 算法
。
1.3.1 模型
在監督學習過程中,模型是要學習的條件概率分布或決策函數。模型的假設空間包含所有可能的條件概率分布或決策函數。假設空間用F表示:
$$F=\lbrace f|Y=f(X)\rbrace $$
X和Y是定義在輸入輸出空間上的變量,F通常是由一個參數向量決定的函數族:
$$F=\lbrace f|Y=f_\theta (X),\theta \in R^n \rbrace$$
參數向量$\theta$取值于n維歐式空間$R^n$,稱為參數空間(parameter space)。假設空間也可以定義為條件概率的集合:
$$F=\lbrace P|P(Y|X)\rbrace$$
X和Y是定義在輸入輸出空間上的隨機變量,F通常是一個由參數向量決定的條件概率分布族:
$$F=\lbrace P|P_\theta (Y|X),\theta \in R^n \rbrace$$
參數向量$\theta$取值于n維歐式空間$R^n$,也稱為參數空間。
1.3.2 策略
有了模型的假設空間,統計學習接著考慮的是按照什么樣的準則學習或選擇最優的模型,統計學習的目標在于從假設空間中選取最優的模型。損失函數度量模型一次預測的好壞,風險函數度量平均意義下模型預測的好壞。
1.損失函數和風險函數
監督學習問題是在假設空間F中選取f作為決策函數,對于給定的輸入X,f(X)給出對應的輸出Y,輸出預測值f(X)與真實值Y可能一致也可能不一致,用一個損失函數(loss function)或代價函數(cost function)。損失函數是f(X)和Y的非負實值函數,記作$L(Y,f(X))$。統計學習常用的損失函數有以下幾種:
0-1損失函數(0-1 loss function)
$$
L(Y,f(X))=
\begin{cases}
1, Y \neq f(X) \\
0, Y=f(X)
\end{cases}
$$平方損失函數(quadratic loss function)
$$L(Y,f(X))=(Y-f(X))^2$$絕對損失函數(absolute loss function)
$$L(Y,f(X))=|(Y-f(X))|$$對數損失函數(logarithmic loss function)或對數似然損失函數(log-likelihood loss function)
$$L(Y,f(X))=-\log P(Y|X)$$
損失函數越小,模型越好。由于模型輸入、輸出(X,Y)是隨機變量,遵循聯合分布P(X,Y),所以損失函數的期望是
$$R_{exp}(f)=E_p[L(Y,f(X))]=\int_{x*y}L(y,f(x))P(x,y)dxdy$$
這是理論上模型f(X)關于聯合分布P(x,y)的平均意義下的損失,稱為風險函數(risk function)或期望損失(expected loss)。學習的目標就是選擇期望風險最小的模型。由于聯合分布P(X,Y)是未知的,$R_{exp}(f)$不能直接計算。如果知道聯合分布P(X,Y),從聯合分布可以直接求出條件概率分布P(Y|X),也就不需要學習了。一方面根據期望風險最小學習模型需要用到聯合分布,一方面聯合分布又是未知的,因此監督學習就稱為一個病態問題(ill-formed problem)。
給定一個訓練數據集
$$T = {(x_1,y_1),(x_2,y_2),...,(x_N,y_N)}$$
模型f(X)關于訓練數據集的平均損失稱為經驗風險(empirical risk)或經驗損失(empirical loss),記作$R_{emp}$:
$$R_{emp}(f)=\frac {1} {N} \sum_{i=1}^N L(y_i,f(x_i))$$
期望風險$R_{exp}(f)$是模型關于聯合分布的期望損失,經驗風險$R_{emp}(f)$是模型關于訓練樣本集的平均損失。根據大數定律,當樣本容量N趨于無窮時,經驗風險$R_{emp}(f)$趨于期望風險$R_{exp}(f)$。因此很自然的一個想法就是用經驗風險估計期望風險,但由于訓練數據是有限的,因此要對經驗風險進行一定的矯正。這關系到監督學習的兩個基本策略:經驗風險最小化和結構風險最小化。
2.經驗風險最小化和結構風險最小化
在假設空間、損失函數以及訓練數據集確定的情況下,經驗風險函數就可以確定。經驗風險最小化(empirical risk minimization,ERM)策略認為,經驗風險最小的模型就是最優的模型。求解經驗最小化最優模型就是求解最優化問題:
$$^{min} _{f \in F} \frac {1} {N} \sum_{i=1}^N L(y_i, f(x_i))$$
當樣本容量足夠大時,經驗風險最小化能保證有很好的學習效果,在現實中被廣泛采用。極大似然估計(maximum likelihood estimation)就是經驗風險最小化的一個例子。當模型是條件概率分布時,損失函數是對數損失函數時,經驗風險最小化就等價于極大似然估計。但是,當樣本容量很小時,經驗風險最小化未必會很好,有可能產生“過擬合”現象。
結構風險最小化(structural risk minimization,SRM)是為了防止過擬合而提出來的策略,結構化風險最小化等價于正則化(regularization)。結構風險在經驗風險的基礎上加上了表示模型復雜度的正則項(regularizer)或懲罰項(penalty term)。在假設空間、損失函數和訓練數據集確定的情況下,結構風險定義為:
$$R_{srm}(f)=\frac {1} {N} \sum_{i=1}^N L(y_i,f(x_i)) + \lambda J(f) $$
$J(f)$為模型的復雜度,模型f越復雜,J(f)越大。$\lambda>=0$是權衡經驗風險和模型復雜度的系數。
結構風險最小化策略認為,結構風險最小的模型就是最優的模型。求解最優模型就是求解最優化問題:
$$^{min} _{f \in F} \frac {1} {N} \sum_{i=1}^N L(y_i, f(x_i)) + \lambda J(f) $$
這樣,監督學習問題變成了經驗風險或結構風險的最優化問題。
1.3.3算法
算法是指學習模型的具體計算方法。統計學習基于訓練數據集,根據學習策略,從假設空間中選取最優模型,然后考慮用什么計算方法求解最有模型。統計學習問題變為了最優化問題,統計學習的算法變味求解最優化問題的算法。如何保證找到全局最優解,并使求解過程非常高效,就稱為一個重要問題。
1.4 模型評估與模型選擇
1.4.1 訓練誤差與測試誤差
當損失函數給定時,基于損失函數的模型的訓練誤差和模型的測試誤差就自然稱為學習方法評估的標準。假設學習到的模型為$ Y=f\hat (X)$,訓練誤差是模型關于訓練數據集的平均損失:
$$R_{emp}(f \hat)=\frac {1} {N} \sum_{i=1}^N L(y_i,f \hat(x_i)) $$
測試誤差是關于測試數據集的平均損失:
$$e_{test}(f \hat)=\frac {1} {N \prime} \sum_{i=1}^{N\prime} L(y_i,f \hat(x_i)) $$
N和$N\prime$分別為訓練數據集和測試數據集的樣本容量。
通常將學習方法對未知數據的預測能力稱為泛化能力(generalization ability)。
1.4.2 過擬合和模型選擇
過擬合是指學習時選擇的模型包含參數過多,以至于模型對已知數據預測很好,而對未知數據預測很差的現象。模型選擇旨在避免過擬合并提供模型的預測能力。模型選擇時,不僅要考慮對已知數據的預測能力,而且還要考慮對未知數據的預測能力。下圖展示了訓練誤差、測試誤差與模型復雜度之間的關系。當模型復雜度增大時,訓練誤差會逐漸減少并趨向于0;而測試誤差會先減少,達到最小值后又增大。當選擇的模型復雜度過大時,過擬合現象就會發生。學習時要防止過擬合,進行最優的模型選擇,即選擇模型復雜度適當的模型,以使測試誤差達到最小。
1.5 正則化與交叉驗證
1.5.1 正則化
模型選擇的方法是正則化(regularization)。正則化是結構風險最小化策略的實現,是在經驗風險上加上一個正則化項(regularizer)或懲罰項(penalty term)。正則化項一般是模型復雜度的單調遞增函數,模型越復雜,正則化值就越大。正則化一般具有以下形式:
$$^{min}_{f \in F } \frac {1} {N} \sum_{i=1}^{N} L(y_i,f(x_i)) + \lambda J(f)$$
其中,第一項是經驗風險,第二項是正則化項,$\lambda >= 0$為調整兩者之間關系的系數。
正則化項可以取不同的形式,回歸問題中,損失函數是平方損失,正則化項可以是參數向量的$L_2$范數:
$$L(w)=\frac {1} {N} \sum_{i=1}^{N} (f(x_i;w) - y_i)^2 + \frac {\lambda} {2} ||w||^2$$
$||w||$表示參數向量w的$L_2$范數。正則化項也可以是參數向量的$L_1$范數:
$$L(w)=\frac {1} {N} \sum_{i=1}^{N} (f(x_i;w) - y_i)^2 + \frac {\lambda} {2} ||w||_1$$
$||w|_1$表示參數向量w的$L_1$范數。
正則化的作用是選擇經驗風險和模型復雜度同時較小的模型。正則化符合奧卡姆剃刀原理:在所有可能選擇的模型中,應該選擇能夠很好的解釋已知數據并且十分簡單的模型。從貝葉斯估計的角度來看,正則化項對應模型的先驗概率,可以假設復雜的模型具有較小的先驗概率,簡單的模型具有較大的先驗概率。
1.5.2 交叉驗證
另一種常用的模型選擇方法是交叉驗證(cross validation)。如果給定的樣本數據充足,進行模型選擇的一種簡單方法是隨機的將數據分為訓練集(training set)、測試集(test set)和驗證集(validation set)。訓練集用來訓練模型,測試集用于模型的評估,驗證集用于模型的選擇。在學習到的模型中,選擇對驗證集有最小預測誤差的模型。當數據集不充足時,可以采用交叉驗證的方法。交叉驗證的基本思想是重復的使用數據;吧核定的數據分為訓練集和測試集,在此基礎上進行反復的訓練、測試和模型選擇。
1.簡單交叉驗證
簡單交叉驗證方法是:首先隨機地將數據分為兩部分——訓練集(70%)和測試集(30%);然后用訓練集在各種條件下訓練得到不同的模型,在測試集上評價各個模型的測試誤差,選擇測試誤差最小的模型。
2.S折交叉驗證
應用最多的是S折交叉驗證(S-fold cross validation),首先隨機地將數據分為S個互不相交的大小相同的子集,然后利用$S-1$個子集的數據進行訓練,用剩下的子集進行測試;重復上述過程,最后選出S次測試中平均測試誤差最小的模型。
3.留一交叉驗證
S折交叉驗證特殊情況是$S=N$,稱為留一交叉驗證(leave-one cross validation),往往在數據缺乏的情況下使用。
1.6 泛化能力
1.6.1 泛化誤差
學習方法的泛化能力(generalization ability)是指由該方法學習到的模型對未知數據的預測能力,是學習方法本質上最重要的性質。通常采用測試誤差來評價學習方法的泛化能力,但這種方法依賴于測試數據,但數據較少時評價結果有可能不可靠。統計學試圖從理論上對學習方法的泛化能力進行分析。
首先給出泛化誤差的定義,如果學到的模型是$\hat f$,那么用這個模型對未知數據預測的誤差即為泛化誤差(generalization error)
$$R_{exp}(\hat f)=E_p[L(Y,\hat f(X))] = \int_{x*y}L(y,\hat f(x))P(x,y)dxdy$$
泛化誤差反映了學習方法的泛化能力,泛化誤差就是所學習到的模型的期望風險。
1.6.2 泛化誤差上界
學習方法的泛化能力分析往往是通過研究誤差的概率上界進行的,簡稱為泛化誤差上界(generalization error bound)。泛化誤差上界通常具有以下性質:它是樣本容量的函數,當樣本容量增加時,泛化上界趨向于0;它是假設空間容量的函數,假設空間容量越大,模型就越難學,泛化誤差上界就越大。
1.7 生成模型和判別模型
監督學習方法可分為生成方法(generative approach)和判別方法(discriminative approach)。所學到的模型分別稱為生成模型(generative model)和判別模型(discriminative model)。生成方法由數據學習聯合概率分布P(X,Y),然后求出條件概率分布P(Y|X)作為預測的模型,即生成模型:
$$P(Y|X)=\frac {P(X,Y)} {P(X)}$$
之所以稱為生成方法,是因為模型表示了給定輸入X產生輸出Y的生成關系。典型的生成模型有:樸素貝葉斯法和隱馬爾可夫模型。
判別方法由數據直接學習決策函數f(X)或者條件概率分布P(Y|X)作為預測的模型,即判別模型。判別方法關心的是對給定的輸入X,應該預測什么樣的輸出Y。典型的判別模型包括:k近鄰法、感知機、決策樹、邏輯回歸模型、最大熵模型、支持向量機、提升方法和條件隨機場。
在監督學習中,生成方法和判別方法各有優缺點,適合于不同條件下的學習問題。生成方法的特點:生成方法可以還原出聯合概率分布P(X,Y),而判別方法則不能;生成方法的收斂速度更快,當存在隱變量時,仍可以使用生成方法,此時判別方法不可用。判別方法的特點:判別方法直接學習的是條件概率P(Y|X)或決策函數f(X),直接面對預測,往往學習的準確率更高;由于直接學習P(Y|X)或f(X),可以對數據進行各種程度上的抽象、定義特征并使用特征,因此可以簡化學習問題。
1.8 分類問題
分類是監督學習的一個核心問題。在監督學習中,當輸出變量Y取有限個離散值時,預測問題便稱為分類問題。監督學習從數據中學習一個分類模型或分類決策函數,稱為分類器(classifier)。分類器對新的輸入進行輸出的預測(prediction),稱為分類(classification)。分類的類別為多個時,稱為多分類問題。分類問題包括學習和分類兩個過程。學習過程中,根據已知的訓練數據集學習一個分類器,分類過程中,根據學習的分類器對新實例進行分類。分類問題如圖所示:
精確率的定義為$P=\frac {TP} {TP+FP}$,召回率的定義為$R=\frac {TP} {TP+FN}$,F1值是精確率和召回率的調和均值,公式為$F1=\frac {2PR} {P+R}$。精確率和召回率都高時,F1值也會高。
1.9 標注問題
標注(tagging)也是一個監督學習問題,可以認為標注問題是分類問題的一個推廣,標注問題的輸入是一個觀測序列,輸出是一個標記序列或狀態序列。標注問題的目標在于學習一個模型,使它能夠對觀測序列給出標記序列作為預測。標注問題分為學習和標記過程。學習系統基于訓練數據集構建一個模型,表示為條件概率,標注系統按照學習到的條件概率分布模型,對新的輸入觀測序列找到相應的輸出標記序列。標注問題如下圖所示:
評價標注模型的指標與評價分類模型的指標一樣,常用的有標注準確率、精確率和召回率。標注常用的統計學習方法有:隱馬爾可夫模型、條件隨機場。標注問題在信息抽取、自然語言處理等領域被廣泛應用,是這些領域的基本問題。
1.10 回歸問題
回歸(regression)是監督學習的另一個重要問題。回歸用于預測輸入變量(自變量)和輸出變量(因變量)之間的關系,特別是當輸入變量的值發生變化時,輸出變量的值隨之發生變化。回歸模型正是表示從輸入變量到輸出變量之間的映射的函數。回歸問題等價于函數擬合,選擇一條函數曲線使其很好地擬合已知數據且很好的預測未知數據。
回歸問題分為學習和預測兩個過程。學習系統基于訓練數據構建一個模型,預測系統根據學習的模型確定相應的輸出。回歸問題如下圖所示:
回歸問題按照變量的個數分為一元回歸和多元回歸;按照輸入變量和輸出變量之間關系的類型即模型的類型,分為線性回歸和非線性回歸。回歸學習最常用的損失函數是平方損失函數,此情況下回歸問題可以用最小二乘法求解。