本文總結(jié)了常用的統(tǒng)計學習方法旗扑,包括模型定義,原理慈省,適用場景臀防,模型參數(shù)學習方法等。統(tǒng)計學習是根據(jù)一部分標記好的實例數(shù)據(jù)边败,推斷待分類實例的類別袱衷,所以并不知道數(shù)據(jù)的真實分布函數(shù)。有些場景只能選擇某種統(tǒng)計模型笑窜,也有一些場景可以套用不同的模型致燥,得到待分類實例的不同的分類結(jié)果,哪個模型更好需要根據(jù)實際分類的結(jié)果進行判別排截。下面是最常使用的傳統(tǒng)的統(tǒng)計學習方法嫌蚤,其中有些方法的思路也會被借鑒用于神經(jīng)網(wǎng)絡模型中辐益。
感知機(preceptron):
感知機的思想是用一個超平面把所有訓練數(shù)據(jù)分為兩類。
感知機的使用有一個前提脱吱,就是訓練數(shù)據(jù)集是線性可分的智政。在此前提下,通過訓練數(shù)據(jù)學習感知機的參數(shù)w和b箱蝠,找出一個可將正負實例完全分開的分離超平面续捂。
其中線性可分的定義如下:
感知機定義如下:
也就是說,只要訓練集是線性可分的宦搬,就一定能夠找到w和b牙瓢,從而確定這樣一個分離超平面,而且這樣的超平面不是唯一的间校,有許多解一罩。這些解既依賴于初始值的選擇,也依賴于迭代過程中誤分類點的選擇順序撇簿。
感知機模型訓練過程首先要確定損失函數(shù)的定義,有兩個選擇差购,一個是將誤分類點的總數(shù)作為損失函數(shù)四瘫,但是這樣會使得損失函數(shù)不是參數(shù)w和b的連續(xù)可導函數(shù),不方便對w和b進行優(yōu)化欲逃,所以選擇了第二種方法找蜜,就是將誤分類的點到超平面的總距離作為損失函數(shù),它是連續(xù)可導的稳析。
任一點X0到超平面的距離計算如下:
忽略簽名的參數(shù)項洗做,并將所有誤分類點的距離累加,作為感知機的損失函數(shù):
這樣一來彰居,感知機的訓練過程就是求解w和b使得改損失函數(shù)極小化:
具體的訓練過程采用梯度下降方法诚纸,任意選取一組w和b,確定一個超平面陈惰,然后將改超平面下誤分類的點一次隨機選取一個畦徘,進行梯度下降,更新w和b:
訓練過程算法描述如下:
k臨近方法:
使用和當前用例最近的k個用例抬闯,根據(jù)多數(shù)原則井辆,判別當前用例的分類屬于哪個類。
k臨近方法的三要素:k值的選擇溶握,距離計算的度量方法杯缺,以及判別某個類別的方式。
可以利用kd樹實現(xiàn)對k個最臨近點的快速搜索睡榆。
樸素(naive)貝葉斯法:
屬于生成模型萍肆。
樸素(naive)的由來是因為該方法對條件概率的分布做了條件獨立性的假設袍榆,這是一個很強的假設,可以極大的簡化分析和計算匾鸥,但是由此算出的分類結(jié)果不一定準確蜡塌。
根據(jù)訓練數(shù)據(jù)計算出先驗概率P(X, Y)=P(Y)P(X|Y),然后根據(jù)先驗概率計算待分類的數(shù)據(jù)對各種分類結(jié)果的條件概率勿负,取條件概率最大的那個作為分類結(jié)果馏艾。先驗概率的計算有兩種方法,極大似然估計和貝葉斯估計奴愉,其中極大似然估計可能導致估算的概率為0琅摩,這會影響條件概率的計算結(jié)果,使得在訓練數(shù)據(jù)不均衡的情況下某些事件永遠沒有發(fā)生的機會(發(fā)生概率為0)锭硼;而貝葉斯估計加入了修正項房资,使得概率永遠大于0,可以使得任何事件總有一個發(fā)生的可能檀头。
上面是使用了極大似然估計計算樸素貝葉斯分類器的過程轰异,還可以使用貝葉斯估計計算樸素貝葉斯分類器(注:貝葉斯估計和樸素貝葉斯法是不同的概念),這里略去暑始。
邏輯回歸(logistic regression)
邏輯回歸是一種經(jīng)典的分類方法搭独,既可以用于二分類,也可以用于多分類廊镜。用于多分類的邏輯回歸模型如下:
二項邏輯回歸模型簡化為:
使用二項邏輯回歸進行預測時牙肝,對輸入的x值分別計算P(Y=1)和P(Y=0)兩個概率,選取概率值大的類別作為x的分類嗤朴。
邏輯回歸模型的參數(shù)配椭,可以通過梯度下降法或擬牛頓法進行估算。
支持向量機(Support Vector Machines)
支持向量機(SVM)和感知機原理是類似的雹姊,都是通過一個超平面來劃分正負實例股缸,區(qū)別在于,滿足感知機模型要求的超平面有無數(shù)多個吱雏,而其中將正負實例間隔最大化的超平面才滿足SVM模型的要求乓序,而這個超平面是唯一的。同時坎背,SVM既可以用來處理實例線性可分的情形替劈,也能處理近似線性可分(存在被超平面錯誤分類的誤差實例),甚至非線性可分的情形得滤。所以陨献,可以認為SVM是對感知機模型的擴展和泛化。
間隔最大化的含義是懂更,所選擇的超平面不僅能將正負實例點分開眨业,而且對最難區(qū)分的實例點急膀,也就是距離超平面最近的點,也能以最大的確信度將它們分開龄捡∽可可以證明這個超平面是唯一的。這種模型稱為硬間隔支持向量機(又叫線性可分支持向量機)聘殖。
實際上幾乎不可能滿足所有實例點都線性可分晨雳,噪音點總是存在的。實例整體線性可分奸腺,但是存在噪音點的情況餐禁,稱為近似線性可分。
這時需要在優(yōu)化函數(shù)中添加誤差項突照。這種模型稱為軟間隔支持向量機(又叫線性支持向量機)帮非,具有更廣泛的適用性:
對于非線性可分的實例,能否用支持向量機模型進行分類讹蘑,答案是肯定的末盔。可以利用核函數(shù)將非線性可分的實例轉(zhuǎn)換成某個高維空間的線性可分實例座慰,然后再用支持向量機模型進行分類即可庄岖。
常用的核函數(shù)有多項式核函數(shù),高斯核函數(shù)和字符串核函數(shù)角骤。
SMO算法是學習支持向量機模型參數(shù)的一種快速算法。
隱馬爾科夫模型
先給一個隱馬爾科夫模型的例子心剥,以便有個直觀的概念:
由(A, B, π)這三個參數(shù)構(gòu)成的這個模型邦尊,就是隱馬爾科夫模型,這三個參數(shù)成為隱馬爾科夫模型的三要素优烧。
其中π代表各初始狀態(tài)的概率蝉揍,A代表狀態(tài)轉(zhuǎn)移概率,也就是從一個編號的盒子跳轉(zhuǎn)到另一個編號的盒子的概率畦娄,B表示觀測概率又沾,也就是選定某個盒子后,該盒子里紅球和白球的概率熙卡。這里盒子選擇的狀態(tài)轉(zhuǎn)移序列是隱藏的杖刷,不可觀測的,而只能觀測到觀測序列驳癌,這就是隱馬爾科夫模型中的“隱”的由來滑燃。
隱馬爾科夫模型有三個基本問題:
- 概率計算:模型已知,如何根據(jù)模型計算某個觀測序列的概率
- 模型學習:模型未知颓鲜,如何根據(jù)觀測序列來計算(A, B, π)三個參數(shù)
- 預測(decoding問題):模型已知表窘,如何根據(jù)觀測序列反推條件概率最大的狀態(tài)轉(zhuǎn)移序列
問題一概率的計算通過遞推公式(前向算法)進行典予,看下面的例子:
問題二模型的學習分兩種情況,一種是既有觀測序列乐严,又有狀態(tài)序列瘤袖,這種情況通過監(jiān)督學習方法極大似然估計實現(xiàn),簡單昂验;另一種只有觀測序列捂敌,沒有狀態(tài)序列,這種情況通過非監(jiān)督學習方法Baum-Welch算法實現(xiàn)凛篙,復雜黍匾。
問題三預測方法分為兩種,一種是簡單不準確的近似算法呛梆,另一種是復雜準確的維特比算法锐涯,該方法利用了動態(tài)規(guī)劃的原理來尋找觀測序列對應的概率最大化的狀態(tài)序列,下面是一個維特比算法的例子填物。