機器學習中的線性模型

1、基本形式


給定由d個屬性描述的示例x=(x1, x2, ..., xd),則線性模型(linear mdel)的預測函數f(x)是屬性的線性組合,用向量形式表示爲f(x) = wTx + b。git

線性模型蘊涵了機器學習中一些重要的基本思想。經過在線性模型中引入層次結構或高維映射,就能夠獲得更爲強大的非線性模型(nonlinear model)。此外,線性模型也具備很好的可解釋性(comprehensibility)。算法

針對迴歸任務、二分類任務、多分類任務,下文總結了幾種經典的線性模型。機器學習

2、線性迴歸


給定數據集D = {(x1, y1), (x2, y2), ..., (xm, ym)},其中xi = (xi1; xi2; ...; xid), yi爲實數。線性迴歸(linear regression)試圖學得一個線性模型以儘量準確地預測實值輸出標記(試圖學得f(xi) = wTxi+b,使得f(xi) ≈ yi)。ide

對於輸入的屬性,若k個屬性間存在序關係,則能夠經過連續化轉化爲連續值;若不存在序關係,則一般轉化爲k維向量。函數

對於輸入屬性數目只有一個的狀況,能夠經過最小化均方偏差(亦稱爲平方損失函數,square loss)來肯定w和b,即性能

 

其中(w*, b*)表示w和b的解。學習

使用均方偏差,是由於它對應了經常使用的」歐式距離「(Euclidean distance)。基於均方偏差最小化來求解模型的方法稱爲「最小二乘法」(least square method)。在線性迴歸中,求解w和b使得E(w,b)最小的過程被稱爲線性迴歸模型的最小二乘「參數估計」(parameter estimation)。測試

求解方法:將E(w,b)分別對w和b求導,獲得編碼

 令兩式爲零,便可獲得w和b最優解的閉式(closed-form)解idea

其中

更通常的情形,設樣本由d個屬性描述,此情形被稱爲「多元線性迴歸」(multivariate linear regression)

相似地,能夠用最小二乘法對向量w和b進行估計。設

則X是一個m×(d+1)大小的矩陣。記,標記= (y1; y2; ...; ym)。則相似地,有

 令,對求導得

令上式 = 0。當XTX是滿秩矩陣時,有

不然,利用最小二乘法,求解方程組

此時可能會解出多個。選擇哪個解輸出,將由學習算法的概括偏好決定,常見的作法是引入正則化(regularization)項。

考慮單調可微函數g,令y=g-1(wTx + b),則獲得「廣義線性模型」(generalized linear model),g稱爲「聯繫函數」(link function)。例如,當g(x)=lnx時,對應的模型即爲對數線性迴歸。 順便一提,對廣義線性模型的參數估計,常經過加權最小二乘法或極大似然法進行。

3、對數概率迴歸


對於分類任務,能夠採用廣義線性模型。爲此,但願找到某個可微函數,將分類任務的真實標記y與線性迴歸模型的預測值聯繫起來。好比說,考慮二分類任務,十分理想的是「單位階躍函數」(unit-step function, 亦稱Heaviside function)

可是單位階躍函數並不可微,不能做爲聯繫函數。所以,但願找到必定程度上近似單位階躍函數的「替代函數」(surrogate function),並但願它單調可謂。

一個選擇是「對數概率函數」(logistic function),其定義以下

將對數概率函數做爲g-1(x) 代入y=g-1(wTx + b),即獲得

通過變換獲得

將y視爲樣本x做爲正例的可能性,則1-y是其反例的可能性,二者的比值稱爲「概率」(odds),反映了x做爲正例的相對可能性。對概率取對數,則獲得「對數概率」(log odds, 亦稱logit)。所以,上式其實是在用線性迴歸模型的預測結果去逼近真實標記的對數概率,其對應模型稱爲「對數概率迴歸」(logistic regression,  亦稱logit regression)。雖然名字是迴歸,實際則是一種分類學習方法。

對數概率迴歸的優勢在於:能夠直接對分類可能性建模,無需事先假設數據分佈; 不只能夠預測出類別,還能夠預測近似機率;對率函數任意階可導,有很好的數學性質。

在對數概率迴歸模型中,若將y視爲類後驗機率估計p(y=1|x),則有

因而,能夠用「極大似然法」(maximum likelihood method)估計w和b。詳細計算過程見書p.59。

4、線性判別分析


「線性判別分析」(Linear Discriminant Analysis, LDA)在二分問題上最先由[Fisher, 1936]提出,所以亦稱爲「Fisher判別分析」。

LDA的思想是:設法將樣例投影到一條直線上,使得同類樣例的投影點儘量接近、異樣例投影點儘量遠離;對新樣本進行分類時,將其投影到直線上,再根據投影點的位置來肯定新樣本的分類。

給定數據集,令Xi, μi, ∑i分別表示第i類示例的集合、均值向量、協方差矩陣。將數據投影到直線ω上。則欲使同類樣例投影點儘量接近,即讓儘量小;要讓不一樣類樣例投影點儘量遠離,即讓儘量大。同時考慮而者,則獲得欲最大化目標

 

定義「類內散度矩陣」(within-class scatter matrix)

以及「類間散度矩陣」(between-class scatter matrix)

因而

此即LDA欲最大化的目標,即SωSb的「廣義瑞利商」(generalized Rayleigh quotient)。

能夠用拉格朗日乘子法來肯定ω,解得。具體過程詳見書pp.61-63。

5、多分類學習


現實中常遇到多分類學習任務。基於一些基本策略,能夠利用二分類學習器來解決多分類問題。不失通常性,考慮N個類別C1, C2, ..., CN,一個基本思路是「拆解法」,即將多分類任務拆解爲多個二分類任務。

最經典的拆分策略有三種:「一對一」(One vs. One, OvO)「一對其他」(One vs. Rest, OvR),以及「多對多」(Many vs. Many, MvM)

OvO:將N個類別兩兩匹配,在訓練階段爲每一組配對訓練一個分類器,測試階段則將新樣本同時提交給全部分類器。最終經過投票產生被預測得最多的類別做爲最終分類結果。

OvR:將每一個樣例做爲正例,其他樣例做爲反例來訓練N個分類器。測試階段,若僅有一個分類器預測爲正類,則對應類別標記做爲最終結果;如有多個分類器預測爲正類,則考慮各分類器的預測置信度,選擇置信度大的標記做爲分類結果。

比較:OvO的存儲開銷及測試時間開銷高於OvR;但當類別不少時,OvO的訓練時間開銷比OvR小。預測性能則取決於數據分佈,多數情形下二者差很少。

MvM:每次將若干個類做爲正類,若干個其它類做爲反類。值得注意的是,正反例的構造須要特殊的設計,不可隨意選取。

一種經常使用的MvM技術是「糾錯輸出碼」(Error Correcting Output Code, ECOC)。ECOC工做步驟分爲兩步:

  • 編碼:對N個類別作M次劃分,每次劃分將一部分歸爲正類,另外一部分歸爲反類,獲得M個訓練集。
  • 解碼:M個分類器對分類樣本進行預測,預測標記組成一個編碼。將此編碼與每一個類別各自的編碼比較,返回其中距離最小的類別做爲最終預測結果。

類別劃分經過「編碼矩陣」(coding matrix)指定。常見的編碼矩陣的形式主要有:

  • 二元碼:將每一個類別分別指定爲正類和反類
  • 三元碼:在正反類以外,還能夠指定「停用類」

概念比較抽象,有點難以理解。看一下書中給出的示例圖,能夠由更直觀的感覺。

從圖中能夠看出,在測試階段,ECOOC編碼對分類器的錯誤有必定的容忍能力,這也是其名「糾錯輸出碼」的來由。

通常來講,對同一個學習任務,ECOOC編碼越長,糾錯能力越強,代價是分類器增多帶來的計算、存儲開銷;以及對於有限類別,組合數有限,編碼太長也會失去意義。另外一方面,對於長度相同的編碼,距離越遠,糾錯能力越強。編碼較小時能夠此原則肯定理論最優編碼;而當編碼過長時,肯定最優編碼則成爲NP-難問題。不過,並不是編碼的理論性質越好,分類器性能就越好。好比:一個理論性質很好、但致使的二分類問題較難的編碼,與另外一個理論性質稍差、但致使的而分類問題比較簡單的編碼相比,最終產生的模型孰強孰弱很難說。

6、類別不平衡問題


 

類別不平衡(class-imbalance)是指分類任務中不一樣類別的訓練樣例數差異很大的狀況。例如,在拆分法解決多分類學習任務時,即使原始問題的不一樣類別的訓練數據至關,在產生的而分類任務中仍然可能出現類別不平衡現象。所以有必要了解對類別不平衡的處理辦法。

在線性分類器中,一個基本策略是「再縮放」(rescaling),也稱「再平衡」(rebalance)。其思想是:當訓練集中正、反例不一樣時,令m+表示正例數,m-表示反例數,則觀測概率爲m/ m-。假設訓練集是真實樣本整體的無偏採樣,則觀測概率就表明了真實概率。所以,當y / (1 - y) > m/ m-時,預測爲正例。即令,再將閾值設爲1,當預測值大於1時預測爲正例,便可。順便一提,再縮放也是「代價敏感學習」(cost-sensitive learning)的基礎。

然而在現實中,「訓練集是真實樣本整體的無偏採樣」的假設每每並不成立,所以未必能有效地基於訓練集的觀測概率推斷真實概率。現有技術有三類解決辦法:

  • 欠採樣(undersampling):去除一些反例使得正、反例數目相近,再進行學習。
  • 過採樣(oversampling):增長一些正例使得正、反例數目相近,再進行學習。須要考慮過擬合問題。表明性算法是SMOTE,經過對訓練集裏的正例進行插值來產生額外的正例。
  • 「閾值移動」(threshold-moving):基於原始訓練集學習,但在預測時將再縮放策略嵌入到決策過程當中。
相關文章
相關標籤/搜索