機器學習入門學習筆記(二)線性模型

一、基本形式

給定由d個屬性描述的示例x=(x1;x2;…;xd),其中xi是x在第i個屬性上的取值。
線性模型(linear model) 是由學習得到的一個通過 屬性的線性組合 來進行預測的函數,其基本形式如下:
在這裏插入圖片描述
用向量形式表示爲:
在這裏插入圖片描述
其中 w = (w1;w2;…;wd) 是各個屬性的權值係數。一旦 w 和 b 學得之後,模型就得以確定。
由於w直觀表達了各屬性在預測中的重要性,因此線性模型有很好的 可解釋性(comprehensibility)。例如:在挑選好西瓜的問題中,最終學得一下的線性函數:
在這裏插入圖片描述
則意味着可通過綜合考慮色澤、根蒂和敲聲來判斷瓜好不好,其中根蒂最要緊,而敲聲比色澤更重要。

線性模型的主要優點就是:形式簡單、易於建模,許多功能更爲強大的非線性模型(nonlinear mode)也可在線性模型的基礎上通過引入層級結構或高維映射而得。

二、線性迴歸

給定數據集D={ (x1,y1),(x2,y2),…, (xm, ym) },其中xi=(xi1;xi2;…;xid), yi∈R。 線性迴歸(linear regression) 試圖學得一個線性模型以儘可能準確地預測實值輸出標記。

對於離散的屬性,若屬性值間存在“序”(order)關係,可通過連續化將其轉化爲連續值。例如:三值屬性“高度”的取值“高”“中”“低”可轉化爲(1.0,0.5,0.0);若屬性值間不存在序關係,假定有 k 個屬性值,則通常轉化爲 k 維向量,例如屬性“瓜類”的取值“西瓜”“南瓜”“黃瓜”可轉化爲(0,0,1),(0,1,0),(1,0,0)。

最簡單的線性迴歸情形就是輸入屬性的數目只有一個的情況。線性迴歸試圖學得如下形式(只有一個屬性w的情況),即獲取一個接近實際值的線性模型。
在這裏插入圖片描述
確定 w 和 b 的關鍵在於如何衡量 f(x) 與 y 之間的差別。均方誤差 是迴歸任務中最常用的性能度量,因此我們可試圖讓均方誤差最小化。 均方誤差有非常好的幾何意義,它對應了常用的歐幾里得距離或簡稱歐氏距離(Euclidean distance)。基於均方誤差最小化來進行模型求解的方法稱爲“最小二乘法”(least square method)。在線性迴歸中,最小二乘法就是試圖找到一條直線,使所有樣本到直線上的歐氏距離之和最小。

一元線性迴歸方程求解

求解 w 和 b 使 E(w,b) =∑i=1m (yi - wxi - b)2 最小化的過程,稱爲線性迴歸模型的最小二乘“參數估計”(parameter estimation)。我們可將 E(w,b) 分別對 w 和 b 求導,得到
在這裏插入圖片描述
然後兩個求導的式子爲零可得到 w 和 b 最優解的閉式(closed-form)解
在這裏插入圖片描述在這裏插入圖片描述

多元線性迴歸

更一般的線性迴歸情形就是數據集D的樣本由d個屬性描述,此時我們試圖學得以下形式:
在這裏插入圖片描述
同樣可利用最小二乘法來對w和b進行估計。

令向量 w’=(w;b),同時把數據集D表示爲一個m×(d+1)大小的矩陣X,其中每行對應於一個示例,該行前d個元素對應於示例的d個屬性值,最後一個元素恆置爲1,即
在這裏插入圖片描述
同時也將(y1,y2,y3,…,ym) 以向量 y = (y1;y2;…;ym)表示。
其均方誤差函數可定義爲:
在這裏插入圖片描述
同樣,對均方誤差函數關於 w’ 求導,並另導數爲0,解出 w’ ,這相對於一元的計算較爲複雜,涉及到矩陣求導,矩陣逆計算等。矩陣解問題又可能有多解,需根據學習算法的歸納偏好決定,常見的做法是引入正則化(regularization)項。

廣義線性模型

我們可以讓線性模型的預測值f(x)逼近真實標記y,也可以讓線性模型的預測值f(x)通過聯繫函數g(·)來逼近不同情況下的目標。
舉個例子:如果我們認爲樣本對應的輸出標記是在指數尺度上變化的,那麼我們可以令
在這裏插入圖片描述
這就是“對數線性迴歸”(log-linear regression),這裏的對數函數起到了將線性迴歸模型的預測值與真實標記聯繫起來的作用。
一般化來定義:
在這裏插入圖片描述
其中 g(·)爲單調可微函數 ,這樣得到的模型稱爲“廣義線性模型”(generalized linear model)。

三、對數機率迴歸

我們可用線性模型進行迴歸學習,但若要做的是分類任務該怎麼辦?
答案是分析分類任務的真實標記y與線性迴歸模型的預測值之間的聯繫,求出聯繫函數g(·),建立廣義線性模型。

對於二分類任務來說,其輸出標記y∈{0, 1},而線性迴歸模型產生的預測值 z =wTx+b 是實值,所以需將實值z 轉換爲0/1值。

最理想的是“單位階躍函數”(unit-step function),但它不連續,因此不能直接當作 聯繫函數 g(·) 來用。於是我們考慮用 對數機率函數(logisticfunction) 來作爲替代函數:
在這裏插入圖片描述
將線性模型的預測實值z 帶入可得:
在這裏插入圖片描述
進一步變換得到:
在這裏插入圖片描述
如果將 y 視爲樣本 x 作爲正例的可能性,則 1-y 就是其作爲反例的可能性。兩者的比值y/(1-y) 是稱爲“機率”(odds),反映了 x 作爲正例的相對可能性。對機率取對數則得到“對數機率”(log odds,亦稱logit)。

實際上我們是在用線性模型的預測實值去逼近真實標記的對數機率,該模型稱爲“對數機率迴歸”,是一種分類學習方法。其優點包括:
1、直接對分類可能性進行建模,無需事先假設數據分佈,這樣就避免了假設分佈不準確所帶來的問題
2、它不是僅預測出“類別”,而是可得到近似概率預測,這對許多需利用概率輔助決策的任務很有用
3、對率函數是任意階可導的凸函數,有很好的數學性質,現有的許多數值優化算法都可直接用於求取最優解。

對數機率迴歸求解

對數機率迴歸可以進行分類學習,該模型的確定同樣是求解 w 以及b。
由上述假設,我們視 y 爲正例的可能性,1-y 爲反例的可能性。令 y = p(y=1|x),1-y = p(y=0|x),則得:
在這裏插入圖片描述
通過變形,顯然有:
在這裏插入圖片描述
我們可通過“極大似然法”(maximum likelihood method)來估計 w 和 b。在給定數據集上,對率迴歸模型最大化“對數似然”(log-likelihood):
在這裏插入圖片描述
關於p的高階可導連續凸函數,可以根據凸優化理論[Boyd andVandenberghe, 2004],經典的數值優化算法如梯度下降法(gradient descentmethod)、牛頓法(Newton method)等都可求得其最優解。

小結:在線性迴歸分析中,我們是通過均方誤差最小化來求解出w和b的,而在對數機率迴歸這個分類學習中,爲了能夠讓訓練集中樣本屬於其真實標記的概率越大越好,我們可以應用極大似然法,估計出w和b,從而達到這個目的。

四、線性判別分析(LDA)

線性判別分析(Linear Discriminant Analysis, 簡稱 LDA)是一種經典的線性學習方法,在二分類問題上因爲最早由 [Fisher, 1936] 提出,亦稱“Fisher 判別分析”。

LDA的思想非常樸素:給定訓練樣例集,設法將樣例投影到一條直線上,使得同類樣例的投影點儘可能接近、異類樣例的投影點儘可能遠離。

在對新樣本進行分類時,將其投影到同樣的這條直線上,再根據投影點的位置來確定新樣本的類別。
在這裏插入圖片描述
對給定數據集
在這裏插入圖片描述
令 Xi 、μi 、Σi 分別表示第 i∈{0,1} 類示例的集合、均值向量、協方差矩陣。

若將數據投影到直線w上,則兩類樣本的 中心在直線上的投影 分別爲 wTμ0 和 wTμ1
若將所有樣本點都投影到直線上,則兩類樣本的協方差分別爲wTΣ0w 和 wTΣ1w。
因爲直線是一維空間,所以中心以及協方差都是實值。

根據LDA的總體思想,相同類別的樣例接近,不同類別的樣本遠離。
所以可以讓 同類別的樣例協方差儘量小,不同類別的投影中心距離儘量大,即讓 wTΣ0w + wTΣ1w 儘量小, ||wTμ0 - wTμ1||22 儘量大。

同時考慮二者,則可得到最大化目標J:
在這裏插入圖片描述
定義“類內散度矩陣”:
在這裏插入圖片描述
再定義“類間散度矩陣”:
在這裏插入圖片描述
重寫 J 爲:
在這裏插入圖片描述
這就是 LDA欲最大化的目標,即Sb與Sw的“廣義瑞利商”(generalizedRayleigh quotient)。

LDA 求解 w

可以將 求最大化目標J的問題 轉化爲
在 條件 wTSww=1下,求 -wTSbw 最小值 的極值問題。

由拉格朗日乘子法,上述極值問題等價於求:
在這裏插入圖片描述
其中入是拉格朗日乘子.注意到Sыw 的方向恆爲 μ0 - μ1,不妨令
在這裏插入圖片描述
最後可解得:
在這裏插入圖片描述

五、多分類學習

上面提到的分類都是二分類任務,但現實中更常遇到多分類學習問題。有些二分類學習方法可直接推廣到多分類,但在更多情形下,我們是基於一些基本策略,利用二分類學習器來解決多分類問題

基本思路:“拆解法”,即將多分類任務拆爲若干個二分類任務求解。所以對於多分類問題,關鍵在於如何拆分。

最經典的拆分策略有三種:
給定數據集D={(x1,y1),(x2,y2),…., (xm, ym)},yi∈{C1,C2,…, CN}。C1,C2,…, CN 是 N 個類別。

1、“一對一”(One vs.One,簡稱 OvO)

OvO策略是將這N個類別,將這N個類別兩兩配對,產生 N(N-1)/2 個二分類任務。

訓練階段: OvO爲區分類別 Ci 和 Cj 訓練一個分類器,該分類器把D中的 Ci 類樣例作爲正例,Cj 類樣例作爲反例。

測試階段: 經過每個二分類器都會有一個類別結果輸出,將預測最多的類別作爲最終分類結輸出。

開銷問題: OvO需訓練 N(N-1)/2 個分類器,帶來的一個問題就是會造成存儲開銷較大,並且測試時間也較長。
在這裏插入圖片描述

2、“一對其餘”(One vs. Rest,簡稱 OvR)

訓練階段: 將一個類的樣例作爲正例,剩餘其他類的樣例都作爲反例來訓練。估有N個類別的話共能產生N個二分類器。

測試階段: 當新樣本測試時,若只有一個分類器預測爲正類,則該預測作爲最終結果。若有多個分類器預測爲正類,則此時應考慮各個分類器的預測置信度,選擇置信度最大的類別標記作爲分類結果。

開銷問題: OvR需要使用到反例的所有樣例,所以該策略的訓練時間開銷較大。

3、“多對多”(Many vs. Many,簡稱 MvM)

MvM策略是每次將若干個類視爲正類,若干個類視爲反類,但並不是隨意選取的,介紹一種最常用的MvM技術:“糾錯輸出碼”(Error CorrectingOutput Codes,簡稱 ECOC)

ECOC工作過程主要分爲兩步:
(1)編碼,對N個類別進行M次劃分,每次劃分將一部分類別作爲正類,一部分類別作爲反類,形成一個二分類訓練集。這樣一共可以產生M個訓練集,可以訓練出M個分類器。

(2)解碼,M個分類器分別對測試樣本進行預測,預測標記組成一個編碼,將該預測標記編碼與各個類別各自的編碼進行比較,返回其中距離(歐氏距離,海明距離)最小的類別作爲最終預測結果。

ECOC的類別劃分主要通過“編碼矩陣”指定,而編碼矩陣有多種形式,常見的有:
二元碼(-1,+1)將每個類別分別指定爲正類和反類。
三元碼(-1,0,+1)在正、反類之外,還可指定“停用類”。

ECOC工作過程示例:

如圖3.5(a)所示,共4個類別,進行了M=5次劃分,共有f1,f2,f3,f4,f5 這5個分類器。

在圖3.5(a)中,分類器f2將C1類和 C3 類的樣例作爲正例,C2 類和 C4 類的樣例作爲反例;在圖3.5(b)中,分類器 f4 將 C1 類和 C4 類的樣例作爲正例,C3 類的樣例作爲反例。
在這裏插入圖片描述
圖3.5(a)中每個類別經過這5個分類器都會輸出一個編碼,如中的C1類的輸出編碼爲(-1,+1,-1,+1,+1),同理每個測試新樣本也會輸出一個5位的編碼,通過測試編碼與各個類別編碼之間的距離,例如歐式距離,海明距離,將距離最小的編碼所對應的類別作爲預測結果。例如在圖3.5(a)中,若基於歐氏距離,預測結果將是 C3

注:
1、海明距離:兩個合法代碼對應位上編碼不同的位數稱爲碼距,又稱海明距離。舉例如下:10101和00110從第一位開始依次有第一位、第四、第五位不同,則海明距離爲3。
2、歐氏距離:歐幾里得度量(euclidean metric)是一個通常採用的距離定義,指在m維空間中兩個點之間的真實距離。常見的二維空間公式和三維空間公式如下:
在這裏插入圖片描述
在這裏插入圖片描述
ECOC方法的特點:

1、有多位編碼,存在一定的容錯能力,如果訓練類別與類別之間海明距離很大,那麼即使測試樣本在輸出編碼的時在某個或者某幾個分類器輸出的編碼出錯了,還是有可能能歸到正確的類別中的。

2、ECOC編碼越長,糾錯能力越強,但同時對分類器的訓練存儲開銷也都會增大,同時ECOC編碼也不可能無限長,因爲類別的組合是有限的,超過一定範圍後的編碼是沒有意義的。

六、類別不平衡問題

以上問題在訓練時必須儘量滿足:不同類別的訓練樣本數目相當。
如果不同類別的訓練樣本數目稍有差別,那麼問題不會很大,但是如果差別很大,則存在很大問題。例如1000個樣例中有998個反例,2個正例,那麼學習方法只需要一直輸出反例,則可達99.8%的精度。

類別不平衡問題不僅僅出現在原始數據集D中,而且也有可能出現在經過OvR,MvM策略後產生的二分類任務中。

基本處理方法:
從線性分類器的角度討論容易理解,在我們用 y= wT+b對新樣本x進行分類時,事實上是在用預測出的y值與一個閾值進行比較,例如通常在y>0.5時判別爲正例,否則爲反例。

y實際上表達了正例的可能性,機率 y/1-y 則反映了正例可能性與反例可能性之比值,閾值設置爲0.5恰表明分類器認爲真實正、反例可能性相同,即分類器決策規則爲
在這裏插入圖片描述
當訓練集中正、反例的數目不同時, 令 m+ 表示正例數目,m- 表示反例數目,則觀測機率是 m+/ m-

我們通常假設訓練集是真實樣本總體的無偏採樣,因此觀測機率就代表了真實機率。於是,只要分類器的預測機率高於觀測機率就應判定爲正例,即
在這裏插入圖片描述

以上解決方法是基於訓練集是從真實樣本總體中無偏採樣,而實際中這個假設往往不成立。因此除了上述解決方法之外,常用的應對類別不平衡問題的策略大體上有三類:

1、“欠採樣”(undersampling) :對訓練集裏的反類樣例進行欠採樣,即去除一些反例使得正、反例數目接近,然後再進行學習。

欠採樣法若隨機丟棄反例,可能丟失一些重要信息。
代表性算法EasyEnsemble [Liu et al, 2009]是利用集成學習機制,將反例劃分爲若干個集合供不同學習器使用,這樣對每個學習器來看都進行了欠採樣,但在全局來看卻不會丟失重要信息。

2、“過採樣”(oversampling) :對訓練集裏的正類樣例進行過採樣,即增加一些正例使得正、反例數目接近,然後再進行學習。

過採樣法不能簡單地對初始正例樣本進行重複採樣,否則會招致嚴重的過擬合。
代表性算法SMOTE [Chawlaet al., 2002)是通過對訓練集裏的正例進行插值來產生額外的正例。

對比:欠採樣法的時間開銷通常遠小於過採樣法,因爲前者直接丟棄了很多反例,後者需要增加很多正。

3、“閾值移動”(threshold-moving):直接基於原始訓練集進行學習,但在用訓練好的分類器進行預測時,將下式嵌入到其決策過程中。

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