個人學習筆記(一)統計學習算法概論

       這個系列的內容大部分來源於李航的《統計學習方法》,最近開始二刷這本書,我將會把重要的知識點、推導過程根據自己的理解記錄在博客中,作爲自己的學習筆記。在推導時,我會盡量將自己的理解書寫得詳細,把書中沒有提到的邏輯關係理順,希望大多數看書理解不了的推導,在我的博客裏都能找到答案。對於《統計學習方法》沒有涉及到的內容,例如ROC與AUC、MCMC採樣、XGBoost等細碎知識點,計劃之後進行補充。若有錯誤,歡迎指出。

1、統計學習

       統計學習也叫統計機器學習,是基於數據構建概率統計模型並運用模型對數據進行預測與分析的一門學科。統計學習包括了監督學習(supervised learning)、非監督學習(unsupervised learning)、半監督學習(semi-supervised learning)和強化學習(reinforcement learning)等。
       《統計學習方法》主要討論的是監督學習,一般的方法如下:從訓練數據出發,假設數據是獨立同分布產生的;假設要學習的模型屬於某個函數的集合,稱爲假設空間;應用某個評價準則,從假設空間中選取一個最優的模型;最優模型的選取由算法實現。因此,模型(model)、策略(strategy)和算法(algorithm)是統計學習方法的三要素。

2、監督學習

       監督學習(supervised learning)的任務是學習一個模型,使模型能夠對任意給定的輸入,對其相應的輸出做出一個好的預測。
訓練集通常表示爲T={(x1,y1),(x2,y2), ,(xN,yN)}T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\}       一般以xi(j)x_i^{(j)}表示第ii個輸入變量的第jj個特徵,即xi=(xi(1),xi(2), ,xi(n))Tx_i=(x_i^{(1)},x_i^{(2)},\cdots,x_i^{(n)})^T       監督學習假設輸入與輸出的隨機變量XXYY遵循聯合概率分佈P(X,Y)P(X,Y),訓練數據與測試數據被看作是依聯合概率分佈P(X,Y)P(X,Y)獨立同分布產生的。
       監督學習的目的在於學習一個由輸入到輸出的映射,這些映射的集合就是假設空間。監督學習的模型可以是概率模型或非概率模型,由條件概率分佈P(YX)P(Y|X)Y=f(X)Y=f(X)表示。

3、統計學習三要素

       統計學習方法由三要素構成,可以簡單地表示爲
=++方法=模型+策略+算法       模型的假設空間(hypothesis space)包含所有可能的條件概率分佈或決策函數。若用FF表示假設空間,則F={fY=f(x)}F=\{f|Y=f(x)\}F={PP(YX)}F=\{P|P(Y|X)\}       有了模型的假設空間,接着需要考慮按照什麼樣的準則學習或選擇最優模型。如果一個模型很好,那它的預測值f(X)f(X)與真實值YY應該十分一致,因此可以用一個損失函數(loss function)或代價函數(cost function)來度量模型預測錯誤的程度,記作L(Y,f(X))L(Y,f(X))
       常用的損失函數有以下幾種
       (1)0-1損失函數(0-1 loss function)
L(Y,f(X))={1,Yf(X)0,Y=f(X) L(Y,f(X))=\left\{\begin{array}{rcl}1,&{Y \neq f(X)}\\0,&{Y=f(X)}\end{array} \right.        (2)平方損失函數(quadratic loss function)
L(Y,f(X))=(Yf(X))2L(Y,f(X))=(Y-f(X))^2       (3)絕對損失函數(absolute loss function)
L(Y,f(X))=Yf(X)L(Y,f(X))=|Y-f(X)|       (4)對數損失函數(logarithmic loss function)或對數似然損失函數(log-likelihood loss function)
L(Y,P(YX))=logP(YX)L(Y,P(Y|X))=-logP(Y|X)       損失函數越小,模型就越好。上面三個損失函數評估的是真實值YY與預測值f(X)f(X)之間的差異;第四個對數損失函數評估的是由輸入XX預測得到正確值YY的概率大小,若概率爲1,則損失函數爲0,概率越小,損失函數越大。
       損失函數的期望是
Rexp(f)=EP[L(Y,f(X))]=x×yL(y,f(x))P(x,y)dxdyR_{exp}(f)=E_P[L(Y,f(X))]=\int_{x\times y}L(y,f(x))P(x,y)dxdy       這個很好理解,損失函數的期望是其關於聯合概率分佈P(X,Y)P(X,Y)的積分,也被稱爲風險函數(risk function)或期望損失(expected loss)。
       事實上,統計學習的目的就是找到期望風險最小的模型,但聯合概率分佈P(X,Y)P(X,Y)是未知的(要不然也就不需要學習了,直接根據P(X,Y)P(X,Y)求出P(YX)P(Y|X)就行了),所以無法直接評估一個模型的期望風險,但我們可以轉而去評估經驗風險(empirical risk)。
       給定訓練數據集T={(x1,y1),(x2,y2), ,(xN,yN)}T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\}       模型f(X)f(X)關於訓練數據集的平均損失成爲經驗風險或經驗損失,記作RempR_{emp}
Remp=1Ni=1NL(yi,f(xi))R_{emp}=\frac{1}{N} \sum_{i=1}^{N}L(y_i,f(x_i))       期望風險Rexp(f)R_{exp}(f)是模型關於聯合分佈的期望損失,經驗風險Remp(f)R_{emp}(f)是模型關於訓練樣本集的平均損失。根據大數定律,當樣本容量NN趨於無窮時,經驗風險Remp(f)R_{emp}(f)趨於期望風險Rexp(f)R_{exp}(f)
       因此經驗風險最小化(empirical risk minimization, ERM)策略認爲,經驗風險最小的模型是最優的模型,即
minfF1Ni=1NL(yi,f(xi))\min_{f\in F} \frac{1}{N}\sum_{i=1}^NL(y_i,f(x_i))       因爲樣本容量大的時候,經驗風險接近期望風險,所以經驗風險最小化能保證有很好的學習效果。極大似然估計(maximum likelihood estimation)就是經驗風險最小化的例子,當然其模型是條件概率分佈,其損失函數是對數損失函數。
       但當樣本容量很小時,經驗風險與期望風險的偏差較大,學習得到的模型雖然經驗風險小了,但期望風險仍然很大,而我們想要的是期望風險小的模型,這就是過擬合(over-fitting)現象。
       結構風險最小化(structural risk minimization, SRM)是爲防止過擬合而提出來的策略,其等價於正則化(regularization)。結構風險的定義是
Rsrm(f)=1Ni=1NL(yi,f(xi))+λJ(f)R_{srm}(f)=\frac{1}{N}\sum_{i=1}^NL(y_i,f(x_i))+\lambda J(f)       即
Rsrm(f)=Remp(f)+λJ(f)R_{srm}(f)=R_{emp}(f)+\lambda J(f)       其中J(f)J(f)是模型的複雜度,模型ff越複雜,J(f)J(f)越大。根據奧卡姆剃刀,能夠很好地解釋已知數據並且十分簡單纔是最好的模型,越複雜的模型越容易過度擬合已有數據,造成泛化能力下降。
       因此結構風險小的模型,其經驗風險與模型複雜度都很小,往往對訓練數據及未知的測試數據都有較好的預測。貝葉斯估計中的最大後驗概率估計(maximum posterior probability estimation, MAP)就是結構風險最小化的例子,當然其模型是條件概率分佈、損失函數是對數損失函數、模型複雜度由模型的先驗概率表示。
       有了模型及策略,統計學習問題歸結爲最優化問題,再考慮使用哪種算法。在統計學習三要素中,模型指的是所要學習的條件概率分佈或決策函數,例如線性函數等;策略指的是評估模型好壞的標準,這樣便能給假設空間中的模型打分,找出最優的那個;算法指的是最優化問題的具體計算方法。

4、模型評估與模型選擇

5、正則化與交叉驗證

       正則化就是結構風險最小化的實現,正則化項可以取不同的形式,例如可以是參數向量的L2L_2範數:
L(w)=1Ni=1N(f(xi;w)yi)2+λ2w2L(w)=\frac{1}{N}\sum_{i=1}^N(f(x_i;w)-y_i)^2+\frac{\lambda}{2}||w||^2       這裏w||w||代表參數向量的L2L_2範數。正則化項也可以是參數向量的L1L_1範數:
L(w)=1Ni=1N(f(xi;w)yi)2+λw1L(w)=\frac{1}{N}\sum_{i=1}^N(f(x_i;w)-y_i)^2+\lambda||w||_1       這裏w1||w||_1代表參數向量的L1L_1範數。
       另一種常用的模型選擇方法是交叉驗證(cross validation),包括三種方法。
       (一)簡單交叉驗證
       隨機將數據分爲兩個部分,一部分作爲訓練集,一部分作爲測試集,用訓練集得到模型並在測試集上評估模型,選出測試誤差最小的模型。
       (二)SS折交叉驗證
       將數據分爲SS個互不相交、大小相同的子集,利用S1S-1個子集的數據訓練模型,用餘下的一個子集測試,將上述過程對可能的SS種選擇重複進行。
       (三)留一交叉驗證
       令SS折交叉驗證中的S=NS=NNN是給定數據集的容量。

6、泛化能力

       泛化能力(generalization ability)是指模型對未知數據的預測能力,一般通過測試誤差評價泛化能力。如果學到的模型是f^\hat{f},那麼用這個模型對未知數據預測的誤差即爲泛化誤差(generalization error)
Rexp(f^)=EP[L(Y,f^(X))]=x×yL(y,f^(x))P(x,y)dxdyR_{exp}(\hat{f})=E_P[L(Y,\hat{f}(X))]=\int_{x\times y}L(y,\hat{f}(x))P(x,y)dxdy       可以看到,泛化誤差就是模型的期望風險。
       一般通過比較兩種學習方法的泛化誤差上界來比較它們的優劣。泛化誤差上界有以下性質:樣本容量增加時,泛化上界趨於0;假設空間容量越大,模型越難學,泛化誤差上界越大。
       考慮二分類問題,假設空間是F={f1,f2, ,fd}F=\{f_1,f_2,\cdots,f_d\},設ff是從FF中選取的函數,損失函數是0-1損失函數,關於ff的期望風險和經驗風險分別是
R(f)=E[L(Y,f(X))]R(f)=E[L(Y,f(X))]R^(f)=1Ni=1NL(yi,f(xi))\hat{R}(f)=\frac{1}{N}\sum_{i=1}^NL(y_i,f(x_i))       定理:對二分類問題,對任意一個函數fFf\in F,至少以概率1δ1-\delta,以下不等式成立
R(f)R^(f)+ε(d,N,δ)R(f)\leq \hat{R}(f)+\varepsilon(d,N,\delta)       其中
ε(d,N,δ)=12N(logd+log1δ)\varepsilon(d,N,\delta)=\sqrt{\frac{1}{2N}(logd+log\frac{1}{\delta})}       可以看到,經驗風險越小,期望風險也越小;ε(d,N,δ)\varepsilon(d,N,\delta)是樣本數量NN的單調遞減函數,當NN趨於無窮時,其區域零;ε(d,N,δ)\varepsilon(d,N,\delta)也是logd\sqrt{logd}階的函數,即假設空間FF規模越大,其值越大。
       上述定理的具體證明過程就不寫了。

7、生成模型與判別模型

       監督學習方法可分爲生成方法(generative approach)和判別方法(discriminative approach)。
       生成方法由數據先學習得到聯合概率分佈P(X,Y)P(X,Y),再求出條件概率分佈P(YX)P(Y|X)作爲生成模型,即
P(YX)=P(X,Y)P(X)P(Y|X)=\frac{P(X,Y)}{P(X)}       典型的生成模型有:樸素貝葉斯法、隱馬爾科夫模型等。
       判別方法由數據直接學習決策函數f(X)f(X)或條件概率分佈P(YX)P(Y|X)作爲判別模型,典型的判別模型有:kk近鄰法、感知機、決策樹、邏輯迴歸、最大熵模型、支持向量機、提升方法和條件隨機場等。
       生成方法可以還原聯合概率分佈P(X,Y)P(X,Y),而判別方法不能;生成方法學習收斂速度更快;當存在隱變量時,只能用生成方法。
       判別方法直接學習P(YX)P(Y|X)f(X)f(X),準確率更高;可以對數據進行各種程度的抽象、定義特徵、使用特徵,簡化學習問題。

8、分類問題

       對二分類問題的常用評價指標是精準率(accuracy)與召回率(recall)。首先明確下面四個符號含義
{TP,()FN,()FP,()TN,() \left\{\begin{array}{rcl}TP,&{將正類預測爲正類數(真正)}\\FN,&{將正類預測爲負類數(假負)} \\FP,&{將負類預測爲正類數(假正)}\\TN,&{將負類預測爲負類數(真負)}\end{array} \right.        精準率定義爲
P=TPTP+FPP=\frac{TP}{TP+FP}       召回率定義爲
R=TPTP+FNR=\frac{TP}{TP+FN}       可以將精準率理解爲查準率,將召回率理解爲查全率。
       此外還有F1F_1值,是精準率和召回率的調和均值,即
2F1=1P+1R\frac{2}{F_1}=\frac{1}{P}+\frac{1}{R}

9、標註問題

       標註問題的輸入時一個觀測序列,輸出是一個標記序列或狀態序列。標註常用的統計學習方法有:隱馬爾科夫模型、條件隨機場。

10、迴歸問題

       迴歸學習常用的損失函數是平方損失函數,在此情況下回歸問題可以由最小二乘法(least squares)求解。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章