一、監督學習、分類方法、標註方法
-
監督學習可以認爲是學習一個模型,使它能對給定的輸入預測相應的輸出。監督學習包括分類、標註、迴歸;
-
分類問題是實例的特徵向量到類標記的預測問題;
-
標註問題是從觀測序列到標記序列(或狀態序列)的預測問題;
-
可以認爲分類問題是標註問題的特殊情況。分類問題中可能的預測結果是二類或多類。而標註問題中可能的預測結果是所有的標記序列,其數目是指數級的。
-
感知機、k近鄰法、樸素貝葉斯、決策樹是簡單的分類方法,具有模型直觀、方法簡單、容易實現等特點;
-
邏輯斯蒂迴歸與最大熵模型、支持向量機、提升方法是更復雜但更有效地的分類方法,往往分類準確率更高;
-
隱馬爾科夫模型、條件隨機場是主要的標註方法。通常條件隨機場的標註準確率更高。
二、模型
2.1 概率模型與非概率模型
分類問題和標註問題的預測模型都可以認爲是表示從輸入空間到輸出空間的映射。它們可以寫成條件概率分佈P(Y∣X)或 決策函數Y=f(X)的形式。前者表示給定輸入條件下輸出的概率模型,後者表示輸入到輸出的非概率模型。
- 概率模型:樸素貝葉斯、隱馬爾科夫模型
- 非概率模型: 感知機、k近鄰法、支持向量機、提升方法
- 概率模型and非概率模型:決策樹、邏輯斯蒂迴歸與最大熵模型、條件隨機場
2.2 判別模型與生成模型
- 判別模型:直接學習條件概率分佈P(Y∣X)或決策函數Y=f(X)的模型。感知機、k近鄰法、決策樹、邏輯斯蒂迴歸與最大熵模型、支持向量機、提升方法、條件隨機場是判別模型;
- 首先學習聯合概率分佈P(X,Y),從而求得條件概率分佈P(Y∣X)的模型。樸素貝葉斯、隱馬爾科夫模型是生成模型。可以使用非監督學習的方法學習生成模型。例如EM算法。
2.3 模型特點
- 決策樹是定義在一般的特徵空間上的,可以含有連續變量或離散變量;
- 感知機、支持向量機、k近鄰法的特徵空間是歐式空間(更一般地,是希爾伯特空間);
- 提升方法的模型是弱分類器的組合,弱分類器的特徵空間就是提升方法模型的特徵空間;
- 感知機模型是線性模型。邏輯斯蒂迴歸與最大熵模型、條件隨機場是對數線性模型。k近鄰法、決策樹、支持向量機(包含核函數)、提升方法使用的是非線性模型。
2.4 部分模型之間的關係
三、十大統計學習方法模型、策略與算法
3.1 感知機
詳見感知機。
模型:
f(x)=w⋅x+b
策略:損失函數極小化
min L(w,b)=−xi∈M∑yi(w⋅xi+b)
算法:隨機梯度下降法,r爲學習率
yi(w⋅xi+b)<=0
w=w+r×yi⋅xi
b=b+r×yi
3.2 KNN
詳見KNN。
模型:計算距離
常用距離度量方式: 閔可夫斯基距離 “minkowski”也稱作Lp距離
Lp=[i=1∑n∣xi−yi∣p]1/p
- p=1時稱爲曼哈頓距離 “manhattan”
- p=2時稱爲歐式距離 “euclidean”
- p=∞時稱爲切比雪夫距離“chebyshev”
策略:如果一個樣本在特徵空間中的k個最相鄰的樣本中的大多數屬於某一個類別,則該樣本也屬於這個類別,並具有這個類別上樣本的特性。
y=arg maxcjxi∈Nk(x)∑ I(yi=Cj) i=1,2,…,N, j=1,2,…,K
算法:kd樹搜索
3.3 樸素貝葉斯法
詳見樸素貝葉斯法。
3.3.1 模型:貝葉斯定理
條件獨立假設:用於分類的特徵在類確定的條件下都是條件獨立的。
P(Y=ck∣X=x)=P(Y=ck)P(X=x)P(X=x∣Y=ck)=P(Y=ck)P(X=x)∏jP(X(j)=x(j)∣Y=ck)
求解arg maxckP(Y=ck∣X=x)對於Y取每一個類時P(X=x)都是一樣。也就是說後續在求解最優化時主要求解P(Y=ck)和∏jP(X(j)=x(j)∣Y=ck)即可。
3.3.2 策略:對數似然損失
3.3.3 算法:概率計算
先驗概率:P(Y=ck)=N∑i=1NI(yi=ck),k=1,2,…,K
特徵 j 的類條件概率:第 j 個特徵x(j)可能取值的集合爲 {aj1,aj2,…,ajSj}P(X(j)=ajl∣Y=ck)=∑i=1NI(yi=ck)∑i=1NI(xi(j)=ajl,yi=ck),j=1,2,…,n;l=1,2,…,Sj;k=1,2,…,K
- 貝葉斯估計
P(Y=ck)=N+Kλ∑i=1N I(yi=ck)+λ
P(x(j)=ajl∣Y=ck)=∑i=1N I(yi=ck)+Sjλ∑i=1N I(yi=ck,xi(j)=ajl)+λ
λ=0時就爲極大似然估計。常取λ=1,這時稱爲拉普拉斯平滑(Laplace smoothing)。
3.4 決策樹
詳見決策樹。
3.4.1 特徵選擇:使用某特徵對數據集劃分之後,各數據子集的純度要比劃分前的數據集D的純度高(也就是不確定性要比劃分前數據集D的不確定性低)。
特徵選擇的方法:
- 信息增益,ID3採用
- 信息增益比,C4.5採用
- GiniIndex,CART分類採用
- 平方誤差最小化準則,CART迴歸採用
3.4.2 決策樹的生成
輸入:訓練數據集D,特徵集A,閾值ε
輸出:決策樹T
-
ID3(或ID4.5)決策樹生成:計算A中各特徵對D的信息增益(或信息增益比),選擇信息增益(或信息增益比)最大的特徵Ag;對Ag的每一可能取值ai,依Ag=ai將D分割爲若干非空子集Di,將Di中實例數最大的類作爲標記,構建子結點,由結點及其子結點構成樹T,返回T。
-
CART分類樹的生成:在所有可能的特徵A以及他們所有可能的切分點a中,選擇基尼指數最小的特徵及其對應的切分點爲最優特徵和最優切分點。最優特徵和最優切分點,從現結點生成兩個子結點,將訓練數據集依特徵分配到兩個子結點中去。
上面兩種生成方法不同之處在於第一種生成是選出最優的特徵,第二種生成是選出最優特徵並找出最優切分點。這也是CART決策樹相較之的優點所在。
step1:選擇最優切分變量j和切分點s,求解:
minj,s∑(minc1xi∈R1(j,s)∑(yi−c1)2+minc2xi∈R2 (j,s)∑(yi−c2)2)
遍歷變量j,對固定的切分變量j掃描切分點s,選擇使上式達到最小值的對(j,s)。
step2:用選定的對(j,s)劃分區域並決定相應的輸出值:
R1(j,s)={x∣x(j)<=s},R2(j,s)={x∣x(j)>s}
c1^=ave(yi∣xi∈R1(j,s)), c2^=ave(yi∣xi∈R2(j,s))
3.4.3 決策樹的剪枝
-
決策樹的生成算法容易構建過於複雜的決策樹,產生過擬合。
-
決策樹的剪枝:在決策樹學習中將已生成的樹進行簡化的過程稱爲剪枝(pruning)。具體地,剪枝從已生成的樹上裁掉一些子樹或葉結點,並將其根結點或父結點作爲新的葉結點,從而簡化分類樹模型.
-
決策樹的剪枝往往通過極小化決策樹整體的損失函數(loss fimction)或代價函數( cost function)來實現。
ID3(或ID4.5)剪枝方法:
設樹T的葉結點個數爲|T|, t是樹T的葉結點,該葉結點有Nt個樣本點,其中k類的樣本點有Ntk個,k=1,2,…,K,Ht(T)爲葉結點t上的經驗嫡,α≥0爲參數,則決策樹學習的損失函數可以定義爲:
Cα(T)=t=1∑∣T∣NtHt(T)+α∣T∣=−t=1∑∣T∣k=1∑KNtklogNtNtk+α∣T∣
3.5 邏輯斯蒂迴歸和最大熵模型
詳見邏輯斯蒂迴歸和最大熵模型。
3.5.1 邏輯斯蒂迴歸
模型:
z=w⋅x+b
y=hθ(x)=sigmoid(z)=1+e−z1
策略:極大似然估計
似然函數
L(θ)=i=1∏N [hθ(x(i))]y(i) [1−hθ(x(i))](1−y(i) )
對數損失函數
J=−N1l(θ)=−N1i=1∑N [y(i)log hθ(x(i))+(1−y(i))log(1−hθ(x(i)))]
算法:梯度下降
dw=∂hθ(x(i))∂J∂z∂hθ(x(i))∂w∂z=N1i=1∑N [hθ(x(i))−y(i)]x(i)
db=∂hθ(x(i))∂J∂z∂hθ(x(i))∂b∂z=N1i=1∑N [hθ(x(i))−y(i)]
w=w−α×dw
b=b−α×db
3.5.2 最大熵模型
模型:
條件概率分佈P(Y∣X)上的條件熵爲:
H(P)=−x,y∑P~(x)P(y∣x)logP(y∣x)
策略:選擇條件熵最大的模型
maxP∈C H(P)=−x,y∑P~(x)P(y∣x)logP(y∣x)
s.t. EP(fi)=EP~(fi),i=1,2,...,n
y∑P(y∣x)=1
用特徵函數f(x,y)描述輸入x 和輸出y 之間的某一個事實。其定義是:
f(x,y)={1,0,x與y滿足某一事實other values
特徵函數f(x,y)關於經驗分佈P~(X,Y)的期望值,用EP~(f)表示。
EP~(f)=x,y∑P~(x,y)f(x,y)=x,y∑P~(x)P~(y∣x)f(x,y)
特徵函數f(x,y)關於模型P(Y∣X)與經驗分佈P~(X)的期望值,用EP(f)表示。
EP(f)=x,y∑P~(x)P(y∣x)f(x,y)
算法:
- 通用迭代尺度法(GIS: Generalized Iterative Scaling)。
- 改進的迭代尺度法(IIS: Improved Iterative Scaling)。
- 梯度下降算法
- 擬牛頓法(牛頓法)
最大熵原理:承認已知事物(知識);對未知事物不做任何假設,沒有任何偏見。
兩個角度認識未知事物:
- 最大熵模型:對不確定度的無偏分配;
- 最大似然估計:對知識的無偏理解。
3.6 SVM
詳見SVM。
模型:分類超平面
策略:核技巧,軟間隔最大化
w,bmax s.t. ∣∣w∣∣γ^yi(wxi+b)≥γ^, i=1,2,⋯,N
做兩點變換,但不影響最優化問題:
- 取γ^=1,因爲對於任何一個超平面都可以使得其函數間隔爲1,只要對w和b做相應的放大和縮小就行,另外取1可以使得計算最簡單,當然不能爲了簡單取0;
- 最大化∣∣w∣∣1和最小化21∣∣w∣∣2是等價的。是爲了算法求解簡單,凸二次優化有成熟的工具,這樣一求導數就只有w了。
則最優化問題等價爲:
w,bmin s.t. 21∣∣w∣∣21−yi(wxi+b)≤0, i=1,2,⋯,N
線性不可分意味着某些樣本點(xi,yi)不能滿足函數間隔大於等於1的約束條件。爲了解決這個問題,可以對每個樣本點(xi,yi)引進一個鬆弛變量ξi≥0,使函數間隔加上鬆弛變量大於等於1.這樣,約束條件變爲:
yi(wxi+b)≥1−ξi, i=1,2,⋯,N
對於每一特異點雖然也讓它入夥,但是需要支付額外的代價,即鬆弛變量ξi×1,目標函數由原來的21∣∣w∣∣2變成:
21∣∣w∣∣2+Ci=1∑Nξi
算法:序列最小最優算法(SMO)
3.7 提升方法(boosting)
詳見提升方法(boosting)。
3.7.1 Adaboost
模型:加法模型,最終的強分類器是若干個弱分類器加權平均而得到的,基學習器類別不定。
G(x)=sign(f(x))=sign(m=1∑MαmGm(x))
- Gm(x)爲第m個弱分類器,m=1,2,⋯,M
- αm爲第m個弱分類器的權重係數
策略:極小化加法模型的指數損失。
第m輪的強分類器fm(x)在訓練數據集T上的指數損失函數爲:
arg ==mini=1∑Nexp[−yifm(xi)]mini=1∑Nexp[−yi(fm−1(xi)+αmGm(xi))]α,Gmini=1∑Nwˉm,i exp[−αmyiGm(xi))]
- wˉm,i=exp[−yi fm−1(xi)]
- 因爲wˉm,i既不依賴αm也不依賴於Gm(x),所以在第m輪求最小化時可以當作固定值看待。這也解釋了爲什麼可以使用前向分步算法作爲優化求解算法。
- wˉm,i依賴於fm−1(xi),隨着每一輪迭代而發生變化。
算法:前向分步學習算法,我們的算法是通過一輪輪的弱分類器學習,每一輪選擇加權訓練數據分類誤差率最小的弱分類器,利用前一個弱分類器的結果來更新後一個弱分類器的訓練集權重。
fm(x)=fm−1(x)+αmGm(x)
Gm∗(x)=arg Gmini=1∑Nwˉm,i I(yi̸=Gm(xi))
αm∗=21lnem1−em
其中em:
em=∑i=1Nwˉm,i∑i=1Nwˉm,iI(yi̸=Gm∗(xi))=i=1∑Nwm,iI(yi̸=Gm∗(xi))
3.7.2 GBDT(梯度提升樹)
模型:加法模型,基學習器爲決策樹。
fM(x)=f0(x)+m=1∑MT(x;Θm)
策略:損失函數不定,根據不同的損失函數而得到不同的提升樹
通過經驗風險極小化確定下一棵決策樹的參數Θm
Θ^m=arg Θmmini=1∑NL(yi,fm−1(xi)+T(xi;Θm))
算法:前向分步算法
3.8 GMM與EM算法
詳見GMM與EM算法。
3.8.1 模型
P(y∣θ)=k=1∑Kαkϕ(y∣θk)
- αk是係數,αk≥0,∑k=1K=1;
- ϕ(y∣θk)是高斯分佈密度,θk=(μk,σk2)
ϕ(y∣θk)=2π σk1exp(−2σk2(y−μk)2)
稱爲第k個分模型。
3.8.2 策略:對數似然損失
觀測數據yj來自第k個分模型的數據是未知的,k=1,2,⋯,K,以隱變量γjk表示,其定義如下:
γjk=⎩⎨⎧1,0,第j個觀測來自第k個分模型否則j=1,2,⋯,N;k=1,2,⋯,K
γjk是0-1隨機變量。
完全數據的似然函數:
P(y,γ∣θ)=j=1∏NP(yj,γj1,γj2,⋯,γjK∣θ)=j=1∏Nk=1∏K[αkϕ(yj∣θk)]γjk=k=1∏Kαknkj=1∏N[ϕ(yj∣θk)]γjk=k=1∏Kαknkj=1∏N[2π σk1exp(−2σk2(y−μk)2)]γjk
其中,nk=∑j=1Nγjk, ∑k=1Knk=N。
那麼,完全數據的對數似然函數爲
lnP(y,γ∣θ)=k=1∑Knklnαk+k=1∑Kj=1∑Nγjk[ln(2π1)−lnσk−2σk21(yj−μk)2]
3.8.3 算法:EM算法
3.8.4 EM算法流程
輸入:觀測變量數據Y,隱變量數據Z,聯合分佈P(Y,Z∣θ),條件分佈P(Z∣Y,θ);
輸出:模型參數θ。
(1)選擇參數的初值θ(0),開始迭代;初值可以任意選擇,但需注意EM算法對初值是敏感的。
(2)E步:記θ(i)爲第i次迭代參數θ的估計值,在第i+1次迭代的E步,計算
Q(θ,θ(i))=Z∑P(Z∣Y,θ(i))lnP(Y,Z∣θ)=EZ[lnP(Y,Z∣θ)∣Y,θ(i)]
- 上式的函數Q(θ,θ(i))是EM算法的核心,稱爲Q函數。
- 需要計算P(Z∣Y,θ(i)),即在給定觀測數據Y和當前的參數估計θ(i)下隱變量數據Z的條件概率分佈,作爲隱變量的現估計值。
- Q函數:完全數據的對數似然函數lnP(Y,Z∣θ)關於在給定觀測數據Y和當前參數θ(i)下對未觀測數據Z的條件概率分佈P(Z∣Y,θ(i))的期望稱爲Q函數。
(3)M步:求使Q(θ,θ(i))極大化的θ,確定第i+1次迭代的參數的估計值θ(i+1)
θ(i+1)=arg θmaxQ(θ,θ(i))
(4)重複第(2)步和第(3)步,直到收斂。給出停止迭代的條件,一般是對較小的正數ϵ1,ϵ2,若滿足
∣∣θ(i+1)−θ(i)∣∣<ϵ1 or ∣∣Q(θ(i+1),θ(i))−Q(θ(i),θ(i))∣∣<ϵ2
GMM模型形式與Adaboost算法很像,但是差別挺大的。說下異同點:
- 模型:都是加法模型,Adaboost基學習器不指定,也就是說明也可以使用高斯分佈。
- 策略:Adaboost採用的是指數損失函數,而GMM採用的是對數損失函數,根據基學習函數和算法來選擇較合適的就行,不是重要的區別項。
- 算法:Adaboost前向分步算法,基學習器數量M是根據終止循環條件確定的,基學習器權重係數αm之和不指定爲1。GMM是採用EM算法,分模型數量K是在學習之前就指定的,分模型權重係數αk之和指定爲1。Adaboost用於監督學習,GMM用於非監督學習,這是兩種算法最主要的區別。
3.9 隱馬爾科夫模型
詳見隱馬爾科夫模型。
3.9.1 模型
隱馬爾科夫模型(hidden Markov model,HMM)是關於時序的概率模型,描述由一個隱藏的馬爾科夫鏈隨機生成不可觀測的狀態隨機序列,再由各個狀態生成一個觀測而產生觀測隨機序列的過程。
隱馬爾科夫模型由初始狀態概率向量Π、狀態轉移概率矩陣A和觀測概率矩陣B決定。Π和A決定狀態序列,B決定觀測序列。因此,隱馬爾科夫模型λ可以用三元符號表示,即
λ=(A,B,Π)
3.9.2 策略:極大似然估計,對數似然函數
完全數據的對數似然函數是lnP(O,I∣λ)
3.9.3 算法:EM算法
EM算法的E步:極大化Q函數Q(λ,λˉ)
argλmaxQ(λ,λˉ)=I∑P(I∣O,λˉ)lnP(O,I∣λ)=I∑P(O∣λ^)P(O,I∣λˉ)lnP(O,I∣λ)=argλmaxI∑P(O,I∣λˉ)lnP(O,I∣λ)
EM算法的M步:極大化Q函數Q(λ,λˉ)求模型參數A,B,Π
3.9.4 預測:維特比算法
維特比算法實際是用動態規劃解隱馬爾科夫模型預測問題,即用動態規劃求概率最大路徑,這時一條路徑對應着一個狀態序列。
根據動態規劃原理,最優路徑具有這樣的特性:如果最優路徑在時刻t通過結點it∗,那麼這一路經從結點it∗到終點iT∗的部分路徑,對於從it∗到iT∗的所有可能的部分路徑來說,必須是最優的。
3.10 線性鏈條件隨機場
詳見線性鏈條件隨機場。
3.10.1 模型:時序數據上的對數線性模型
設有K1個轉移特徵,K2個狀態特徵,K=K1+K2,記
fk(yi−1,yi,x,i)=⎩⎨⎧tk(yi−1,yi,x,i),sl(yi,x,i),k=1,2,⋯,K1k=K1+l;l=1,2,⋯,K2
然後,對轉移與狀態特徵在各個位置i求和,記作
fk(y,x)=i=1∑nfk(yi−1,yi,x,i),k=1,2,⋯,K
用wk表示特徵fk(y,x)的權值,即
wk=⎩⎨⎧λk,μl,k=1,2,⋯,K1k=K1+l;l=1,2,⋯,K2
於是,條件隨機場可表示爲
P(y∣x)=Z(x)1exp(k=1∑Kwkfk(y,x))=Z(x)1exp(k=1∑Kwki=1∑nfk(yi−1,yi,x,i))=Z(x)1i∏exp(k=1∑Kwkfk(yi−1,yi,x,i))
Z(x)=y∑exp(k=1∑Kwkfk(y,x))=y∑exp(k=1∑Kwki=1∑nfk(yi−1,yi,x,i))=y∑i∏exp(k=1∑Kwkfk(yi−1,yi,x,i))
3.10.2 策略:極大似然估計,對數似然函數
3.10.3 算法
- 通用迭代尺度法(GIS: Generalized Iterative Scaling)。
- 改進的迭代尺度法(IIS: Improved Iterative Scaling)。
- 梯度下降算法
- 擬牛頓法(牛頓法)
3.10.4 預測:維特比算法
四、十大統計學習方法知識點彙總
方法 |
適用問題 |
模型類型 |
模型 |
策略 |
損失函數 |
算法 |
感知機 |
二類分類 |
判別模型,非概率模型 |
分離超平面 |
極小化誤分類點到超平面距離 |
誤分類點到超平面距離 |
隨機梯度下降 |
k近鄰法 |
多類分類,迴歸 |
判別模型,非概率模型 |
特徵空間,樣本點 |
Nan |
Nan |
Nan |
樸素貝葉斯法 |
多類分類 |
生成模型,概率模型 |
特徵與類別的聯合概率分佈,條件獨立假設 |
極大似然估計,極大後驗概率估計 |
對數似然損失 |
概率計算公式,EM算法 |
決策樹 |
多分類,迴歸 |
判別模型,概率and非概率模型 |
分類樹,迴歸樹 |
正則化的極大似然估計 |
對數似然損失 |
特徵選擇,生成,剪枝 |
邏輯斯蒂迴歸與最大熵模型 |
多類分類 |
判別模型,概率and非概率模型 |
特徵條件下類別的條件概率分佈,對數線性模型 |
極大似然估計,正則化的極大似然估計 |
邏輯斯蒂損失 |
改進的迭代尺度算法,梯度下降,擬牛頓法 |
支持向量機 |
二類分類 |
判別模型,非概率模型 |
分離超平面,核技巧 |
極小化正則化合頁損失,軟間隔最大化 |
合頁損失 |
序列最小最優化算法(SMO) |
提升方法 |
二類分類 |
判別模型,非概率模型 |
弱分類器的線性組合 |
極小化加法模型的指數損失 |
指數損失 |
前向分步加法算法 |
EM算法 |
概率模型參數估計 |
Nan |
含隱變量概率模型 |
極大似然估計,極大後驗概率估計 |
對數似然損失 |
迭代算法 |
隱馬爾科夫模型 |
標註 |
生成模型,概率模型 |
觀測序列與狀態序列的聯合概率分佈模型 |
極大似然估計,極大後驗概率估計 |
對數似然損失 |
概率計算公式,EM算法 |
條件隨機場 |
標註 |
判別模型,概率and非概率模型 |
狀態序列條件下觀測序列的條件概率分佈,對數線性模型 |
極大似然估計,正則化極大似然估計 |
對數似然損失 |
改進的迭代尺度算法,梯度下降,擬牛頓法 |
參考資料: