本文總結了《統計學習方法》(李航)中的一些機器學習方法,組織目錄如下:
【第1章】 統計學習方法概論
【第2章】 感知機
【第3章】 k 近鄰法
【第4章】 樸素貝葉斯法
【第5章】 決策樹
【第6章】 邏輯斯諦回歸與最大熵模型
【第7章】 支持向量機
【第8章】 提升方法
【第9章】 EM算法及其推廣
【第10章】 隱馬爾科夫模型
【第11章】 條件隨機場
【第12章】 統計學習方法總結
【第1章】 統計學習方法概論
- 統計學習方法包括監督學習、無監督學習、半監督學習和強化學習。
- 統計學習方法三要素:模型、策略、方法。
- 模型:所要學習的條件概率分布或決策函數。所有可能的條件概率分布或決策函數組成模型的假設空間。
- 策略:
4.1 損失函數:能夠度量模型一次預測的好壞,值越小(接近0)越好。包括0-1損失函數、平方損失函數、絕對損失函數、對數損失函數。
4.2 風險函數:能夠度量平均意義下模型預測的好壞,包括期望風險函數和經驗風險函數。
4.2.1 期望風險函數:損失函數的期望。P(X,Y)
是未知的,因此監督學習就是一個病態問題。
4.2.2 經驗風險函數:模型關于訓練樣本集的平均損失。Rexp(f) = Remp(f)
。
4.3 經驗風險最小化與結構風險最小化:
經驗風險最小化結構風險最小化J(f)
為模型復雜度。結構風險最小化需要經驗風險和模型復雜度同時小(λ
趨于無窮時,后一項的系數收縮作用就增大了,很多系數趨于0,模型復雜度將變小;λ
為0,則后一項沒有起到收縮作用)。 - 算法:求解最優模型的方法,找到全局最優解。
- 使測試誤差達到最小的兩種方法:正則化和交叉驗證。
- 監督學習分為生成方法和判別方法。同時,監督學習也可以分為分類問題(k近鄰法、感知機、樸素貝葉斯、決策樹、決策列表、logistic回歸、SVM、Boosting、貝葉斯網絡、神經網絡、Winnow算法等)、標注問題(隱馬爾科夫模型、條件隨機場)、回歸問題(數值型數據回歸、樹回歸(CART,既可以分類,又可以回歸))。
7.1 生成方法: - 分類問題的評價指標:精確率(P)、召回率(R)、F1(P和R的調和均值:
2/F = 1/P + 1/R
)。
8.1 P是指被判別器預測為正類的樣本(將正類預測為正類TP+將負類預測為正類FP)中正類正確分類(正類預測為正類TP)的個數,如判別器預測有100個正類樣本,但只有90個是真正預測正確(正類預測為正類),則 P=0.9。
8.2 R是指所有正類樣本(正類預測為正類TP+正類預測為負類FN)中,正類正確分類(正類預測為正類TP)的個數,如樣本中有100個正類,但只有80個正類正確分類,則 R=0.8。
8.3 準確率/正確率(A)是指所有樣本(正類預測為正類TP+正類預測為負類FN+負類預測為正類FP+負類預測為負類TN)中,判別器正確預測的樣本數(正類預測為正類TP+負類預測為負類TN)。
8.4 希望P、R、F1、A的值越接近1越好。
【第2章】 感知機
- 感知機是二分類的線性分類模型
f(x) = sign(w · x + b)
,對應于輸入空間(特征空間)中的分離超平面w · x + b = 0
。 - 感知機學習策略是極小化損失函數:
- 感知機的學習算法是基于隨機梯度下降法的對損失函數的優化算法,有原始形式和對偶形式。原始形式中,首先任意選取一個超平面,然后用梯度下降法不斷極小化目標函數。在這個過程中一次隨機選取一個誤分類點使其梯度下降(這也是隨機梯度下降與梯度下降(選取所有點)的區別)。
- 當訓練數據集線性可分時,感知機學習算法存在無窮多個解,其解由于不同的初值或迭代順序而可能有所不同。
【第3章】 k 近鄰法
- k 近鄰點用于分類和回歸,基本做法是:給定訓練實例點和輸入實例點,首先確定輸入實例點 k 個最近鄰訓練實例點,然后利用這 k 個訓練實例點的類的多數來預測輸入實例點的類。
- k 近鄰法三要素:距離度量、k 值的選擇和分類決策規則。k 值小時,k 近鄰模型更復雜,反之亦然。k 值常采用交叉驗證的方法確定,而分類決策函數常采用多數表決。
- kd 樹是一種便于對 k 維空間中的數據進行快速檢索的數據結構。kd 樹是二叉樹,表示對 k 維空間的一個劃分,其每個節點對應于 k 維空間劃分中的一個超矩形區域。利用 kd 樹可以省去對大部分數據點的搜索,從而減少搜索的計算量。
【第4章】 樸素貝葉斯法
- 樸素貝葉斯法通過訓練數據集學習聯合概率分布
P(X,Y)
,具體做法是學習先驗概率分布P(Y)
與條件概率分布P(X|Y)
(二者相乘就是聯合概率分布),所以它屬于生成模型。
先驗概率分布條件概率分布 - 在上述條件概率分布中,假設特征彼此相互獨立,即滿足條件獨立性假設:條件獨立性假設
- 樸素貝葉斯用于分類時,就是通過學習到的模型計算后驗概率分布
P(Y|X)
,將后驗概率最大的類最為x的類輸出:
ck
都是相同的,因此可以轉化為以下求解問題: -
P(Y)
和P(X|Y)
都可以使用極大似然估計法估計相應的概率,但是這種方法會出現所要估計的概率值為0的情況,這回影響到后驗概率的計算結果,使分類產生偏差。因此,采取貝葉斯估計法可以解決這一問題。 -
補充知識: 什么是極大似然估計法?
(個人理解:極大似然估計法就是根據樣本(已知的結果)定好模型(但參數未知),反推最有可能(最大概率)的模型參數,就可以確定參數已知的該模型,即根據結果推斷參數的過程。)
【第5章】 決策樹
- 決策樹可以轉化為一個if-then規則的集合,也可以看做是定義在特征空間劃分上的類的條件概率分布。
- 從可能的決策樹中直接選取最優決策樹是一個NP問題,現實中采用啟發式方法學習次優決策樹。
- 決策樹的生成對應于模型的局部選擇,決策樹的剪枝(自下而上合并過于細分的葉結點,防止過擬合)對應于模型的全局選擇。
- 決策樹的學習包括三部分:特征選擇、樹的生成和樹的剪枝。常用的算法有ID3、C4.5和CART。
- 特征選擇的目的在于選取對訓練數據能夠分類的特征。常用的準則有信息增益(ID3)、信息增益比(C4.5)、基尼指數(CART)。
- 信息增益:信息增益
- 決策樹的生成通常使用信息增益最大、信息增益比最大或基尼指數最小作為特征選擇的準則。決策樹的生成往往通過計算信息增益或其他指標,從根結點開始,遞歸地產生決策樹。這相當于用信息增益或其他準則不斷地選取局部最優的特征,或將訓練集分割為能夠基本正確分類的子集。
-
決策樹的剪枝解決決策樹的過擬合問題,做法是從已生成的樹上減掉一些葉結點或葉結點以上的子樹,并將其父結點或根節點作為新的葉節點,從而簡化生成的決策樹。
- CART算法就是遞歸地構建二叉決策樹的過程,既可以用于分類問題(采取基尼指數最小化準則),又可以用于回歸問題(采取平方誤差最小化準則)。剪枝過程同樣采用損失函數最小化的標準。
【第6章】 邏輯斯諦回歸與最大熵模型
- 邏輯斯諦回歸模型源自邏輯斯諦分布,其分布函數F(x)是S形函數。它是由輸入的線性函數表示的輸出的對數幾率模型。
- 最大熵模型可以由最大熵原理推導得出。最大熵原理認為,在所有可能的概率模型(分布)的集合中,熵最大的模型是最好的模型(均勻分布的熵最大)。
- 邏輯斯蒂模型與最大熵模型的共同點:(1)兩者都可以表示為求解條件概率分布的分類模型;(2)兩者都屬于對數線性模型;(3)兩者學習一般都采用極大似然估計或正則化的極大似然估計;(4)兩者可以學習形式化的無約束優化問題(最大熵模型原本是有約束問題,但可以引入拉格朗日乘子轉化為無約束條件的對偶問題來求解);(5)兩者求解最優化問題的算法有梯度下降法、隨機梯度下降法、改進的迭代尺度法、牛頓法或擬牛頓法等等;(6)兩者都可以用于二分類或多分類問題。
【第7章】 支持向量機
- 支持向量機分類:
類別 | 別名 | 構建條件 |
---|---|---|
線性可分支持向量機 | 硬間隔支持向量機 | 訓練數據線性可分 |
線性支持向量機 | 軟間隔支持向量機 | 訓練數據近似線性可分 |
非線性支持向量機 | NULL | 訓練數據線性不可分 |
- 線性可分支持向量機:
2.1 學習策略是最大間隔法,可表示為以下凸二次規劃問題:w* · x + b* = 0
,分類決策函數為f(x) = sign(w* · x + b*)
。
2.2 最大間隔法中,函數間隔和幾何間隔是重要的概念。
2.3 線性可分支持向量機的最優解存在且唯一。位于間隔邊界的上的實例支持點為支持向量。最優分離超平面由支持向量完全決定。
2.4 二次規劃問題的對偶問題:
- 線性支持向量機:
3.1 最基本的支持向量機,通過引入孫馳變量 ξi,使其“可分”,得到線性支持向量機學習的凸二次規劃問題:
w* · x + b* = 0
,分類決策函數為f(x) = sign(w* · x + b*)
。
其中,C > 0 稱為懲罰系數。C值大時對誤分類的懲罰增大,模型變復雜,趨于過擬合,支持向量的樣本點變少;C值小對誤分類的懲罰減小。
3.2 線性支持向量機的解 w* 唯一,但 b* 不一定唯一。支持向量可在間隔邊界上,也可以在間隔邊界與分離超平面之間,或者在分離超平面誤分一側。最優分離超平面由支持向量完全決定。
3.3 二次規劃問題的對偶問題:
3.4 線性支持向量機學習等價于最小化二階范數正則化的合頁函數:
- 非線性支持向量機:
4.1 對于輸入空間的非線性分類問題,可以通過非線性變換將它轉化為某個高維特征空間中的線性分類問題,在高維特征空間中學習線性支持向量機。
4.2 核函數:通過一個非線性變換后的兩個實例間的內積。在實際應用中往往應用已有的核函數。常見的核函數有多項式核函數(pkf),高斯核函數(rbf,其中參數gamma:隨著gamma參數增大,支持向量先減少后增多,模型更復雜,趨于過擬合),字符串核函數(skf)等。
4.3 非線性支持向量機求解的決策函數:
- SMO(序列最小最優化)算法:支持向量機學習的一種快速算法,其特點是不斷地將原二次規劃問題分解為只有兩個變量的二次規劃子問題,并對子問題進行解析求解,直到所有變量滿足KKT條件為止。這是一種啟發式的方法,得到的解是近似解,但總體上是高效的。
【第8章】 提升方法
- 提升方法是將弱學習算法提升為強學習算法的統計學習方法。在分類學習中,提升方法通過反復修改訓練數據集的權值分布,構建一系列基本分類器(弱分類器),并將這些基本分類器線性組合,構成一個強分類器。代表性的提升方法是 AdaBoost 算法。
-
AdaBoost 算法是弱分類器的線性組合:
- AdaBoost 算法的特點是通過迭代每次學習一個基本分類器。每次迭代中,提高那些被前一輪分類器錯誤分類數據的權值,而降低那些被正確分類的線性數據的權值。最后,AdaBoost 將基本分類器的線性組合作為強分類器,其中給分類誤差率小的基本分類器以大的權值,給分類誤差大的基本分類器以小的權值。
- AdaBoost 算法的一個解釋是該算法實際是前向分步算法的一個實現。在這個方法里,模型是加法模型,函數損失是指數損失,算法是前向分步算法。每一步通過極小化損失函數:
- 提升樹是以分類樹或回歸樹為基本分類器的提升方法。提升樹被認為是統計學習方法中最有效的方法之一。
- 補充知識: RF(隨機森林)、GBDT、XGBoost:RF、GBDT、XGBoost 區別
【第9章】 EM算法及其推廣
- EM (期望極大)算法是含有隱變量的概率模型極大似然估計或極大后驗概率估計的迭代算法。含有隱變量的概率模型的數據表示為 P(Y, Z | θ)。這里,Y 是觀測變量的數據,Z 是隱變量的數據(不可觀測到的變量數據),θ 是模型參數。EM 算法通過迭代求解觀測數據的對數似然函數 L(θ) = log P(Y | θ) 的極大化,實現極大似然估計, 每次迭代包括兩步:E步,求期望。即求 log P(Y, Z | θ) 關于 P(Y | Y, θi) 的期望:
- EM 算法在每次迭代后均能提高觀測數據的似然函數值,即
- EM 算法主要應用于含有隱變量的概率模型的學習。高斯混合模型的參數估計是 EM 算法的一個重要應用,下一章將要介紹的隱馬爾科夫模型的無監督學習也是 EM 算法的一個重要應用。
- EM 算法還可以解釋為 F 函數的極大-極大算法(一次迭代中,兩次極大化 F 函數值)。EM 算法有很多變形,如 GEM 算法。GEM 算法的特點是每次迭代增加 F 函數值(并不一定是極大化 F 函數,因為是兩次極大),從而增加似然函數的 L(θ) 的值。
【第10章】 隱馬爾科夫模型
- 隱馬爾科夫模型是關于時序的概率模型,描述由一個隱藏的馬爾科夫鏈隨機生成不可觀測的狀態序列,再由各個狀態隨機生成一個觀測而產生觀測序列的過程。