統計學習方法總結

本文總結了常用的統計學習方法,包括模型定義,原理,適用場景,模型參數學習方法等。統計學習是根據一部分標記好的實例數據,推斷待分類實例的類別,所以並不知道數據的真實分佈函數。有些場景只能選擇某種統計模型,也有一些場景可以套用不同的模型,得到待分類實例的不同的分類結果,哪個模型更好需要根據實際分類的結果進行判別。下面是最常使用的傳統的統計學習方法,其中有些方法的思路也會被借鑑用於神經網絡模型中。

感知機(preceptron):

感知機的思想是用一個超平面把所有訓練數據分爲兩類。


感知機的使用有一個前提,就是訓練數據集是線性可分的。在此前提下,通過訓練數據學習感知機的參數w和b,找出一個可將正負實例完全分開的分離超平面。

其中線性可分的定義如下:


感知機定義如下:


也就是說,只要訓練集是線性可分的,就一定能夠找到w和b,從而確定這樣一個分離超平面,而且這樣的超平面不是唯一的,有許多解。這些解既依賴於初始值的選擇,也依賴於迭代過程中誤分類點的選擇順序。

感知機模型訓練過程首先要確定損失函數的定義,有兩個選擇,一個是將誤分類點的總數作爲損失函數,但是這樣會使得損失函數不是參數w和b的連續可導函數,不方便對w和b進行優化,所以選擇了第二種方法,就是將誤分類的點到超平面的總距離作爲損失函數,它是連續可導的。

任一點X0到超平面的距離計算如下:


忽略簽名的參數項,並將所有誤分類點的距離累加,作爲感知機的損失函數:


這樣一來,感知機的訓練過程就是求解w和b使得改損失函數極小化:


具體的訓練過程採用梯度下降方法,任意選取一組w和b,確定一個超平面,然後將改超平面下誤分類的點一次隨機選取一個,進行梯度下降,更新w和b:


訓練過程算法描述如下:


k臨近方法:

使用和當前用例最近的k個用例,根據多數原則,判別當前用例的分類屬於哪個類。
k臨近方法的三要素:k值的選擇,距離計算的度量方法,以及判別某個類別的方式。
可以利用kd樹實現對k個最臨近點的快速搜索。

樸素(naive)貝葉斯法:

屬於生成模型。

樸素(naive)的由來是因爲該方法對條件概率的分佈做了條件獨立性的假設,這是一個很強的假設,可以極大的簡化分析和計算,但是由此算出的分類結果不一定準確。

根據訓練數據計算出先驗概率P(X, Y)=P(Y)P(X|Y),然後根據先驗概率計算待分類的數據對各種分類結果的條件概率,取條件概率最大的那個作爲分類結果。先驗概率的計算有兩種方法,極大似然估計和貝葉斯估計,其中極大似然估計可能導致估算的概率爲0,這會影響條件概率的計算結果,使得在訓練數據不均衡的情況下某些事件永遠沒有發生的機會(發生概率爲0);而貝葉斯估計加入了修正項,使得概率永遠大於0,可以使得任何事件總有一個發生的可能。

上面是使用了極大似然估計計算樸素貝葉斯分類器的過程,還可以使用貝葉斯估計計算樸素貝葉斯分類器(注:貝葉斯估計和樸素貝葉斯法是不同的概念),這裏略去。

邏輯迴歸(logistic regression)

邏輯迴歸是一種經典的分類方法,既可以用於二分類,也可以用於多分類。用於多分類的邏輯迴歸模型如下:


二項邏輯迴歸模型簡化爲:


使用二項邏輯迴歸進行預測時,對輸入的x值分別計算P(Y=1)和P(Y=0)兩個概率,選取概率值大的類別作爲x的分類。

邏輯迴歸模型的參數,可以通過梯度下降法或擬牛頓法進行估算。

支持向量機(Support Vector Machines)

支持向量機(SVM)和感知機原理是類似的,都是通過一個超平面來劃分正負實例,區別在於,滿足感知機模型要求的超平面有無數多個,而其中將正負實例間隔最大化的超平面才滿足SVM模型的要求,而這個超平面是唯一的。同時,SVM既可以用來處理實例線性可分的情形,也能處理近似線性可分(存在被超平面錯誤分類的誤差實例),甚至非線性可分的情形。所以,可以認爲SVM是對感知機模型的擴展和泛化。



間隔最大化的含義是,所選擇的超平面不僅能將正負實例點分開,而且對最難區分的實例點,也就是距離超平面最近的點,也能以最大的確信度將它們分開。可以證明這個超平面是唯一的。這種模型稱爲硬間隔支持向量機(又叫線性可分支持向量機)。


實際上幾乎不可能滿足所有實例點都線性可分,噪音點總是存在的。實例整體線性可分,但是存在噪音點的情況,稱爲近似線性可分。


這時需要在優化函數中添加誤差項。這種模型稱爲軟間隔支持向量機(又叫線性支持向量機),具有更廣泛的適用性:


對於非線性可分的實例,能否用支持向量機模型進行分類,答案是肯定的。可以利用核函數將非線性可分的實例轉換成某個高維空間的線性可分實例,然後再用支持向量機模型進行分類即可。


常用的核函數有多項式核函數,高斯核函數和字符串核函數。
SMO算法是學習支持向量機模型參數的一種快速算法。

隱馬爾科夫模型

先給一個隱馬爾科夫模型的例子,以便有個直觀的概念:


由(A, B, π)這三個參數構成的這個模型,就是隱馬爾科夫模型,這三個參數成爲隱馬爾科夫模型的三要素。
其中π代表各初始狀態的概率,A代表狀態轉移概率,也就是從一個編號的盒子跳轉到另一個編號的盒子的概率,B表示觀測概率,也就是選定某個盒子後,該盒子裏紅球和白球的概率。這裏盒子選擇的狀態轉移序列是隱藏的,不可觀測的,而只能觀測到觀測序列,這就是隱馬爾科夫模型中的“隱”的由來。
隱馬爾科夫模型有三個基本問題:

  1. 概率計算:模型已知,如何根據模型計算某個觀測序列的概率
  2. 模型學習:模型未知,如何根據觀測序列來計算(A, B, π)三個參數
  3. 預測(decoding問題):模型已知,如何根據觀測序列反推條件概率最大的狀態轉移序列

問題一概率的計算通過遞推公式(前向算法)進行,看下面的例子:


問題二模型的學習分兩種情況,一種是既有觀測序列,又有狀態序列,這種情況通過監督學習方法極大似然估計實現,簡單;另一種只有觀測序列,沒有狀態序列,這種情況通過非監督學習方法Baum-Welch算法實現,複雜。

問題三預測方法分爲兩種,一種是簡單不準確的近似算法,另一種是複雜準確的維特比算法,該方法利用了動態規劃的原理來尋找觀測序列對應的概率最大化的狀態序列,下面是一個維特比算法的例子。

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