模式識別和機器學習 筆記

第一章 introduction 

首先舉了一個手寫識別的例子,介紹了機器學習的基本概念:訓練集、測試集合、訓練階段/學習階段、泛化能力(generalization)、特徵選擇/抽取、監督式學習:分類、迴歸;無監督式學習:聚類、密度估計、可視化;增強學習(reinforcementlearning). 


1.1 多項式曲線擬合的例子: 

對sin(2 * PI * x)曲線進行多項式擬合,根據sina函數均勻生成帶高斯noise的點,作爲訓練集合以及測試集合。多項式函數是關於w的線性函數,是一種重要的模型,稱爲線性模型,在第三、四章會詳細介紹,與kernal方法結合,是模式識別和機器學習最重要的方法之一。 
定義了錯誤函數:預測值和實際值之間的差的平方和,這個也是在高斯noise下後驗概率的估計結果,作爲最小化優化的目標函數,求出w。錯誤函數是關於w的二次函數,所以有唯一的全局最優解,求導數即可以得到w。 

書中以多項式的階次爲例說明了模型選擇和模型對比的概念。作者以0,1,3,9爲例,過度擬合的問題。指出模式識別和機器學習的最重要的問題是模型的泛化能力。 
在測試集上定義了錯誤函數EMS(root-mean-square error):EMS = sqrt( 2 * E(w) / N ) 繪製了訓練集和測試集的錯誤曲線。 
書中給出了M(階數)的不同值下,可以發現當M很大的時候,高階多項式函數可以精確地與數據匹配,爲了擬合訓練集合的點,係數會出現很大的正數和負數,導致曲線有比較大的波動,從而導致數據點之間的點擬合比較差(sin (2πx) 的冪級數展開包含所有階數的項,所以我們可能會以爲結果會隨着 M 的增⼤⽽單調地變好:有着更⼤的 M 值的更靈活的多項式被過分地調參,使得多項式被調節成了與⽬標值的隨機噪聲相符;也就是當M越大越目標值就越容易產生隨機的噪音。 

解決方法:

1.當訓練集的規模擴大時,複雜的模型的過度擬合問題就會緩解,並達到更好的效果。一般來說訓練集元素的數量要是參數個數的5到10倍以上。當然模型的複雜性不僅僅反映在參數的個數上。同樣我們不應該根據訓練集的大小來選擇模型,而應該根據問題的複雜性來選擇合適的模型。 


2.最小平方方法是最大似然估計的一個特例,過度擬合也是最大似然估計的一個固有特點。採用貝葉斯方法,過度擬合的問題就會被克服,因爲貝葉斯模型的有效參數是根據 訓練集合的大小自動調整的。 

3.採用正則化/規範化(regularization的)方法來解決過度擬合的問題。錯誤函數中添加了 λ* 1 / 2 * sqr( || W || )來避免W中出現過大或過小的正負數值係數。通過對比 選擇合適的λ值來解決過度擬合的問題。 

以下M=9




1.2 概率論 
模式識別的一個核心問題是不確定性,主要是由於測量的誤差和數據集大小的有限性導致的。概率論提供了一致性的框架來定量的描述這種不確定性,是模式識別的一箇中心的基礎。結合決策論,我們可以根據已有的信息,甚至是不完整有歧義的信息,來做出最優的預測。 

書中首先介紹了古典的概率論的基礎知識:事件的概率、聯合概率、邊緣概率、條件概率、加法和乘法法則、先驗概率、後驗概率、貝葉斯公式、離散型概率、連續型概率、概率密度、期望、方差、協方差。 

貝葉斯概率: 
在古典型概率中, 概率是描述可重複的隨機事件發生的頻率。基於頻率來解釋概率被稱爲古典型或者頻率型。貝葉斯概率給出了更一般的視角:定量的描述不確定性。 
使用貝葉斯概率,我們可以描述模型參數比如w的的不確定性或者模型本身的不確定性。貝葉斯理論能夠根據已經觀察的的數據提供的證據來將先驗概率融入到後驗概率的計算中。 
後驗概率 = 似然函數 * 先驗概率 

廣泛使用的基於頻率型估計的是最大似然估計。w被估計爲使似然函數P(D|w)取得最大值的w。 

貝葉斯觀點的一個重要的優勢是很自然的集成了先驗知識:比如一玫均勻的硬幣拋擲了三次,都是正面朝上,使用最大似然估計方法,正面朝上的概率爲1,但是貝葉斯集成合理的先驗概率能夠產生不那麼極端的結論。 

貝葉斯方法通常被批評先驗分佈通常是選擇基於數學上便利的而不是反應事實的先驗信念。基於一個不好的先驗可能會給出更差的結果。 
通過交叉驗證的技術可以評測模型之間的好壞。 

高斯分佈: 
高斯分佈又成爲正態分佈,是一種重要的連續型變量的分佈。分佈函數、期望和方差。 
D-維高斯分佈函數。 

使用最大似然估計μ和σ參數。μ是無偏估計和σ是有偏估計,但當N趨向於無窮時最大似然估計的σ偏差變的不重要,書中給出了σ一個無偏估計。 

曲線擬合revisit: 
假設概率給定的x,相應的值t具有均值爲y(x,w)的高斯分佈: 
p(t|x, w, β) = N (t|y(x, w), β^−1) 
然後使用ML方法估計w和β的值 

隨後引入了一個超參數α然後進行最大後驗概率估計,得到的結果發現,最大化後驗概率的結果和最小化 regularized sum-of-squares error function方法的結果一樣。 

貝葉斯曲線擬合: 
使用貝葉斯理論中的加法和乘法原理,得到 
p(t|x, x, t) = N( t|m(x), s2 (x) ) 

1.3 模型選擇: 
從曲線擬合的例子中,我們可以看到有一個最佳的M似的模型具有最好的泛化能力。多項式的階控制着多項式自由參數的個數,因此控制着模型的複雜性。我們經常會考慮一系列的不同的類型的模型,然後根據特定的應用選擇一個最好的模型,這就是模型選擇問題。 

書中提出了交叉驗證的方法(leave-one-out)來選擇模型的參數或者模型。但是存在的問題訓練的次數隨着參數的增長呈指數級別的增長。 
爲了解決最大似然方法的偏差,可以添加補償因子: 
ln p(D|wML ) − M 
比如Akaike information criterion、AIC 

1.4 維度災難( The Curse of Dimensionality ) 
在多項式擬合的例子只有一個輸入參數x,而在實際中我們可能處理高維的多個輸入參數,這將會帶來巨大的挑戰。 

書中舉了一個類似k臨近的分類的例子,意思是把輸入的空間劃分成一個個的格子空間,然後統計要藥分類數據所在的格子的點數量最多的類別爲該點的類別。這個隨着空間的增加,格子的數量程指數級別增加。 

關於多變量的例子:曲線擬合的例子如果輸入變量爲D個,那麼多項式的係數呈D^M增長,其中M爲多項式的階。 

1.5決策論 
結合我們前面說的概率論,決策理論能夠然我們在不確定的情況下做出最優的決策。 
介紹了最小化分類錯誤率、最小化期望損失 
拒絕區間:如果在一個區間內很難做出決策,那麼最好別拒絕做出決策,而是讓人去做。可以對p(Ck |x)設置一個threshold。 
Inference and decision:給出了三種方式: 
1)生成模型方式:首先建模分佈p(x,Ck),然後得到條件概率,然後做出決策。 
2)判別模型:直接對後驗概率p(Ck|x)進行建模,然後做出決策。 
3)直接給出判別函數,然後將輸入直接映射爲分類的label。 
如果直接對於分類決策問題,使用1方法比較浪費計算資源和需要過多的訓練數據,因爲聯合概率分佈可能有很多和後驗概率不相干的結構。使用2方法是一個比較直接的好方法。組合1和2方法是機器學習方法現在研究 
比較多的。 
方法3無法得到後驗概率,這將會有很多問題: 
a)最小化risk:更新loss矩陣,需要重新從訓練數據中更新分類問題。 
b)拒絕選擇:使用後驗概率,我們可以得到一個最小化分類錯誤的拒絕標準。 
c)先驗類別的補償:類別內數量不對稱情況,通常使用平衡的訓練集合訓練出模型,然後使用先驗概率作爲補償。比如類別的先驗概率。 
d)組合模型:對於一些複雜的問題,我們可能將這個問題分成小的子問題,比如根據不同的屬性做分類: 
p(Ck |xI , xB ) = p(Ck |xI )p(Ck |xB )/p(Ck ) 
迴歸問題也類似。 

1.6 信息論 
我們給一個離散的隨機變量x,當我們觀測到這個變量的一些值之後,我們想問我們得到了多少信息。信息的多少可以按照“驚奇度”來度量,越是不可能的事件發生,越能給出更多的信息,一定要發生的事件給的信息量爲0. 
所以度量信息兩藥依賴於概率分佈p(x),所以我們希望找到一種度量,他是p(x)的單調的函數。我們觀察兩個獨立的變量x,y,那麼他們的信息量應該是單獨觀察這兩個變量信息量的和,即:h(x,y) = h(x) + h(y) 而p(x,y) = p(x) * p(y),滿足這種關係的函數h必須是對數形式: 
h(x) = -log p(x) 
在通信模型中,增益代表數據的2進制編碼長度,所以取2爲底的對數。在其他則可以去其他的對數形式,比如自然對數。 

相對增益和互信息: 
相對增益 
對於一個不知道的分佈p(x),我們使用一個近似的分佈q(x)來建模,那麼如果我們使用q(x)來編碼數據,那麼對於指定的x,平均需要多傳輸的信息。 
書中使用了凸函數的性質,證明的KL(p||q) > 0 
可以使用相對增益來描述分佈p(x)和q(x)的不相似性。 
互信息: 
描述兩個隨機變量接近相互獨立的程度: 
I[x, y] = KL(p(x, y)||p(x)p(y)) 

H[x] − H[x|y] = H[y] − H[y|x].

第二章 概率分佈

 這章主要介紹概率分佈及其特性。這些基本的分佈可以像堆積木一樣形成更復雜的模型。討論了一些統計學的關鍵概念,比如 Bayesian inference。概率分佈的一個角色是:給定一個隨機變量x有限集合的觀察值x1,x2….xn,對概率分佈p(x)進行建模,即概率密度估計。首先介紹離散型貝努力分佈、二項式分佈和多項式分佈和連續型的Gaussian分佈。一個特殊 
的問題就是參數化估計問題,根據觀察的值來估計概率分佈的參數,frequentist方式,可以採用似然函數的方法,貝葉斯方式,首先引入一個參數的先驗分佈,然後根據觀察數據計算後驗分佈。本章另一個重要的概念是共軛先驗,它讓後驗分佈具有和先驗一樣的函數形式,這能夠極大的簡化貝葉斯分析。比如多項式的參數的共軛分佈式是Dirichlet分佈,高斯分佈期望參數的共軛先驗仍是高斯分佈。這些分佈都是指數系列的分佈,他們具有很多重要的性質。參數估計的方式的缺陷是首先假定了分佈的函數,這在一些應用中並不適用,一種可選擇的方式是非參數密度估計,它的分佈形式很大程度依賴於現有數據的規模,這些模型仍然有隱含參數,但是它只是用於控制模型的複雜度而不是分佈的形式。本章最後介紹了三個非參數的估計histograms,最鄰近方法,核方法。 

2.1 二元變量 
    首先介紹二元分佈和二項式分佈,給出了期望和方差,並通過最大似然函數的方法估計參數u的值。 
2.1.1 
    這節介紹了beta分佈,介紹了關於參數引入先驗分佈,然後通過觀察似然函數因子,選擇先驗的形式使其和似然函數具有相似的形式,然後根據先驗概率和似然函數的乘積計算出後驗概率,和先驗具有一樣的形式,這種特性被稱爲共軛。beta分佈是二項分佈的共軛先驗分佈,介紹了超參數的概念。 
       通過共軛分佈,可以每次觀察一個數據,然後計算後驗分佈,並將先驗分佈更新爲後驗分佈,繼續觀察學習,這種方式被稱爲順序學習。 
2.2 多元變量 
    這節首先介紹了使用1 of k的形式表示的多元分佈,通過最大似然函數的方法估計參數u,然後引入k個變量的聯合分佈多項式分佈。 
2.2.1 Dirichlet distribution 
    首先通過研究多項式參數分佈參數uk的先驗分佈,引入了Dirichlet distribution。引入一個simplex的概念,關於simplex,二維的就是以(0,1)和(1,0)爲端點的線段,三維的就是以(0,0,1),(0,1,0),(0,0,1)爲端點的三角形的內部。然後通過將先驗和似然函數相乘得到後驗分佈,仍然是Dirichlet distribution。事實上Dirichlet分佈是多項式分佈的共軛先驗。現在比較火的topic model、LDA就是使用了Dirichlet distribution。 
2.3 高斯分佈 
   在第一章已經介紹了高斯分佈,引入了D-維變量的高斯分佈,給出了期望和協方差矩陣。。高斯分佈的最大增益仍然是高斯分佈。多個隨機變量之和的均值,隨着變量的增加,越趨向於高斯分佈。 
    隨後介紹了高斯分佈的幾何屬性,引入了馬氏距離(Mahalanobis distance)。然後考慮協方差矩陣式對稱矩陣,通過其特徵值和特徵矩陣表示特徵矩陣及其逆矩陣。引入一個新的座標系統,被定義爲正交矩陣ui從xi座標移動並做了旋轉變換,然後介紹在新的座標系下高斯分佈的形式。 
2.3.1 高斯條件分佈 
把一個多維的變量分成兩部分,然後通過分塊矩陣運算,得到 
μa|b = μa + ΣabΣ^−1bb (xb − μb) 
Σa|b = Σaa − ΣabΣ^−1bb Σba. 
2.3.2 高斯邊緣分佈 
聯合分佈p(xa,xb)如果是高斯分佈,那麼條件分佈仍然是高斯分佈。邊緣分佈也是 
高斯分佈。根據聯合分佈的指數二次形式可以有效地得到邊緣分佈,進而得到均值 
和方差。 
聯合分佈的二次形式可以使用精度的分塊矩陣來表示,我們的目的是對xb進行積分, 
首先考慮和xb相關的項,與xb相關的項是一個標準的二次形式。 
我們通過對指數部分積分,然後進行規範化即可,又由於標準的高斯分佈,規範化的 
分母只和方差矩陣相關,和均值無關。我們可以得到很簡潔的使用分塊精度矩陣表示 
的均值和方差: 
E[xa] = μa 
cov[xa] = Σaa 

2.3.3 關於高斯變量的貝葉斯理論 
給定高斯分佈p(x)和條件分佈p(y|x) 
p(x) = N(x|μ,Λ^-1) 
p(y|x) = N(y|Ax + b,L^-1) 
關於y的邊緣分佈和x關於y的條件分佈爲: 
p(y) = N(y|Aμ + b,L?1 + AΛ^-1AT) 
p(x|y) = N(x|Σ{A^T L(y-b)+Λμ},Σ) 
Σ = (Λ + A^T LA)^1 
2.3.4 高斯分佈的最大似然估計(待續) 

第三章 線性迴歸模型 
    這章主要介紹線性迴歸模型,迴歸問題的目標是給一個D-維的輸入變量,預測出一個或者多個目標連續 
變量的值。第一章已經介紹了多項式曲線擬合的問題,這個是特殊的迴歸問題,被稱爲線性迴歸模型。 
通過線性組合基本函數,可以獲得很有用的一類函數,具有很簡單的分析屬性,並且由於基本函數 
可以不是線性函數,所以相對於輸入來說,具有非線性,可以描述相對複雜的問題。 
    給一個由N個觀測值組成的訓練集{Xn},包括相應的目標值{tn},一種簡單的方式是構建恰當的函數y(x), 
給出一個輸入x,可以得到預測的目標值t。然後更一般的,可以從概率的觀點,我們的目標是建模預測分佈p(t|x), 
表達了我們對給定x預測出的目標值t的不確定性。我們可以通過最小化損失函數,從這個條件分佈中得到預測值t。
   3.1 基本線性模型 
   最簡單的線性迴歸模型是輸入參數的線性組合。y(x, w) = w0 + w1 x1 + . . . + wD xD 
我們可以擴展它,考慮輸入變量非線性函數的線性組合。通過使用非線性基本函數,我們可以得到y(x,w) 
是關於x的非線性函數,但是參數是線性的,這個可以很大程度簡化這類模型的分析。通常在模式識別中, 
將最初的變量通過基本函數變換做預處理,被稱爲特徵抽取或者特徵選擇。 
   第一章多項式擬合的例子,基本函數是{x^j},多項式基本函數,它的缺點是它是相對於輸入變量的 
全局函數,在一個區域的變化會影響其他區域。這個可以通過將輸入空間劃分,然後在不同的空間擬合不同 
的多項式。 
   有很多可以選擇的基本函數,比如高斯函數exp{-(x-uj)^2/2s^2},uj控制着基本函數在輸入空間的 
的位置,參數s控制這空間中值的大小。sigmoidal基本函數也經常被使用φj(x)=σ( (x-uj)/s )其中σ(x)是 
logistic sigmoid函數σ(x) = 1/(1+exp(-x)),這個函數和tanh函數相關,並且tanh(x)= 2σ(x)-1.另 
外可以選的函數有傅立葉基本函數,每一個基本函數代表了特定的頻率和有限的空間,在空間和頻率上都具有局部性, 
這對信號處理有很大的用處,比如可用作小波變換的wavelets。本章的內容並不侷限於具體的基本函數。 
  3.1.1 最大似然估計和最小二乘法 
第一章我們通過最小化錯誤平方和函數擬合多項式,並且這個錯誤函數可以通過高斯噪音模型的最大似然估計來得到 
。我們下面更詳細的介紹最小二乘法和最大似然估計的關係。 
假設目標值t爲y(x,w)和額外的高斯噪音,即: 
t = y(x,w) + e 
e是均值爲0的高斯隨機變量,精度爲β,所以t|x,w,β滿足均值爲y(x,w),精度爲β的高斯分佈: 
p(t|x,w,β) = N(t|y(x,w),β^-1) 

高斯noise的假設隱含着條件分佈t|x是單峯的,在一些其他的應用中可能並不適合。一個擴展方式是混合條件高斯分佈,它允許多峯值的條件分佈。 

似然函數: 
p(t|x,w,β) = Mult(1..N){N(tn|wTφ(xn),β^-1)} 
log形式: 
ln p(t|w, β)=N/2*ln β − N/2*ln(2π) − βED(w) 
其中 
ED(w) = 1/2*Sum(1..N){tn - wTφ(xn)}^2 
計算lnp(t|w,β)梯度,得到wML =ΦT * Φ^−1 * ΦT * t 
Φ是N * M的矩陣,被稱爲design matrix。 Φnj = φj(xn), 

我們可以得到bias w0是目標值t的平均值和 基本函數權重和的平均值之差。 
公式(3.19)。 

3.1.2 最小二乘法幾何屬性: 
從幾何方面解釋最小二乘法,最小二乘迴歸函數是通過尋找目標集合t向由基本函數φj(x) 
組成的子空間的垂直投影得到,因爲這個時候y(x,w)和t距離最近。參考圖3.2 

3.1.3 順序學習(sequence learning) 
最大似然的方法,一次處理需要整個的訓練集,如果數據量很大,需要很大的內存和計算。 
在第一章說過如果數據集很大,那麼可以採用順序學習的算法,也被稱爲在線學習算法。 
這種算法每次考慮一個數據,每次模型參數得到更新。順序學習也適用於觀察的值來自於連續的數據流,在所有的數據流觀察完之前能夠做出預測。 
我們可以通過隨機梯度下降法( stochastic gradient descent)來實現這個算法。 
w(τ+1) = w(τ) − η∇En 
在最小二乘法中可以使用: 
w(τ+1) = w(τ) + η(tn − w(τ)Tφn)φn 
這個被稱爲least-mean-squares或者LMS算法。η稱爲學習率。 

3.1.4 規範化的最小二乘化(Regularized least squares) 
在1.1節已經介紹通過給錯誤函數添加規範化因子來控制過度擬合,所以最小化的錯誤函數 
具有如下形式: ED(w) + λEW(w) 
λ是規範化因子的係數,控制了依賴於數據的錯誤函數ED(w)和規範化因子EW(w)。 
最簡單的規範化是權重向量w的平方和: 
EW(w) =1/2 * wT w. 
結合最小化二乘法的錯誤函數: 
E(w) =1/2 sum(1..N){tn − wTφ(xn)}^2 
錯誤函數爲: 
1/2 sum(1..N){tn − wTφ(xn)}^2 + 1/2 * wTw. 
通過使用規範化因子,可以使得參數縮小,趨向於0,這是機器學習和統計學所推薦的, 
能夠避免過度擬合。 
使用這個規範化因子,使得錯誤函數仍然是關於w的二次函數,所以可以得到精確的最小化 
形式。計算其關於w的梯度,使其爲0,我們可以解出w 
w = (λI + ΦTΦ)^−1 * ΦT * t. 
一個更一般的規範化因子可以採用: 
sum(1..N){|wj|^q} 
當q爲二的時候,就是我們採用的二次規範化因子。使用規範化因子可以在少量訓練數據, 
複雜模型的情況下,不至於嚴重的過度擬合。因爲通過它可以限制有效模型的複雜性, 
但是他將選擇恰當的基本函數轉化成爲選擇適當參數λ的問題了。 

3.1.5 多輸出問題: 
前面我們一直考慮單個目標值t的問題,有些情況下我們需要預測多個目標值。我們可以通過 
對於不同的組件t,引入不同的基本函數來做,這就是多值獨立迴歸問題。然而一個比較有趣和常用的方式是,使用相同的基本函數集合來建模目標向量的多個組件: 
y(x,w) = WTφ(x) 
y被是k維列向量。W是M*K個參數的矩陣,φ(x)是M維的列向量,其元素可以用φj(x)表示 
φ0(x) = 1. 
如果我們將目標向量採用isotropic Gaussian條件分佈,那麼: 
p(t|x,W, β) = N(t|WTφ(x), β^−1I). 
我們計算其似然函數,和前面的一樣,我們可以得到: 
WML =(ΦTΦ)^−1 ΦTT. 
3.2 偏置方差分解(Bias-Variance Decomposition) 
我們到現在爲止討論的線性迴歸模型,假設它的形式和基本函數都是固定的。我們在第一章 
看到使用最大似然或者等價的最小二乘法,在很少的數量的訓練集上訓練複雜的模型容易導致過度擬合。然而限制基本函數的數量來避免過度擬合會導致模型只能捕捉到有限的興趣的和重要的特徵。雖然規範化因子可以控制過度擬合,但是這會引起一個問題:我們如何在選擇恰當的規範化係數λ。尋求關於權重向量w和規範化因子λ來最小化規範化錯誤函數並不是 
正確的方法,因爲這將導致非規範化的方法λ = 0. 
我們在前面的章節中,過度擬合現象是最大似然方法一個不幸的固有屬性,但是在貝葉斯的背景下關於參數邊緣化不會引起這個問題。這章我們以貝葉斯的視角深度考慮模型的複雜性問題。在這之前我們先介紹以頻率的觀點討論模型的複雜性,即:偏置方差折中。 
在1.5.5節我們得到期望平方損失函數爲: 
 
我們將第一部分{y(x;D) − h(x)}^2添加減去ED[y(x;D)]展開 
最後得到 
ED{y(x;D) − h(x)}^2 = {ED[y(x;D)] − h(x)}^2 +ED{y(x;D) − ED[y(x;D)]}^2 
第一部分是bias的平方,第二部分是方差。 
我們的目標是最小化期望損失,最終我們將它分解爲bias的平方、variance和常量的噪音。靈活的模型 
會有很低的偏執和很高的方差,而嚴格的模型具有高bias和低variance。一個具有最有的 
預測能力的模型,需要在偏執和方差之間平衡。 

3.3 貝葉斯線性迴歸【待續】 

第四章 線性分類模型

在前面的章節,我們已經看到線性迴歸模型具有很簡單的分析性和計算性。我麼現在我們討論這種類似的模型來解決分類問題。分類的目的是給出一個輸入向量X,將它賦值爲k個離散的類別Ck之一,通常的情景是類別是不想交的,每一個輸入只會有一個類別。這樣輸入空間被分成決策區域,它的邊界被稱爲決策邊界。本章我們考慮用於分類的線性模型,也就是說決策邊界是關於輸入變量x線性函數,它在D維的輸入空間中定義了D-1維的超平面。類別可以被線性決策邊緣分開的數據集合被稱爲線性可分。 
在迴歸問題中,我們可以使用實數的向量來表示預測值t,在分類問題,我們可以採用1-of-K的編碼模式,t是一個長度爲K的向量,如果類別是Cj,那麼除了tj爲1,其他的元素tk都是0.比如K=5,C2可以表示爲t={0,1,0,0,0)T 
在第一章我們已經學習了三種不同的方法來解決分類問題,一種是簡單的判別函數(discriminant function),它直接把輸入變量x映射的特定的類別。另一比較強大的方式,建模條件分佈p(Ck|x)。建模p(ck|x)的方式有兩種:一種是直接建模,比如表示爲參數模型,然後用訓練數據計算出最優的參數,另一用方法是結合類別條件分佈p(x|Ck)和先驗概率p(Ck),然後利用貝葉斯公式計算後驗概率: 
p(Ck|x) = p(x|Ck)p(Ck) / p(x) 
我們在本章討論以上三種方式。 

在第三章的線性迴歸模型中,模型預測函數y(x,w)是一個參數爲w的線性函數,在最簡單的情況,模型對於輸入變量是線性的,具有如下形式: y= wTx + w0,所以y是個實數,對於分類問題我們希望預測離散的類別標籤,或者更一般的區間在[0,1]之間的後驗概率。我們可以利用一個非線性函數f(.)來將關於w的線性函數進行轉換,即y(x) = f(wTx + w0),類別模型y(x)被認爲是線性模型的推廣,相對於迴歸模型而言,由於非線性函數f(.),對於參數已經不是線性的了。這會比迴歸模型具有更復雜的分析和計算性,但是對於一般的非線性的模型,這個模型相對已經比較簡單了。 

本章的算法也會討論想第三章那樣固定非線性基本函數,做一個固定的非線性變換。 

4.1 判別函數 
一個判別函數是將輸入向量x映射到一個K個類別之一Ck。本章我們僅限於線性判別函數,他們的決策邊緣是一個超平面。爲了簡化我們先看2類的問題,然後擴展到K>2的情景。 
4.1.1 兩類問題 
最簡單的線性判別函數是關於輸入向量x的線性函數,即: 
y(x) = wTx + w0 
w被稱爲權重向量,w0被稱爲偏置(bias),偏置的負數被稱爲閾值。 
對於輸入變量x,如果y(x) >= 0那麼分類爲C1,否則爲C2。所以決策邊界定義爲y(x) = 0, 
爲D維輸入空間中的D-1維超平面。考慮兩個點xA和xB,他們都在決策邊緣上,那麼 
y(xA) = y(xB) = 0,wT(xA - xB) = 0,所以向量w正交於決策邊緣,所以w決定了決策邊緣的方向。如果x是決策邊緣上的一點,那麼y(x) = 0,那麼原點到決策邊緣的距離 
爲wTx/||w|| = - w0 / ||w|| 
所以偏置(bias)參數w0決定了決策邊緣的位置。 
任意一點在x和在決策邊緣的x_的關係 
x = x_ + r * w / ||w|| 
我們根據及y(x_) = wTx_ + w0 = 0可以得到 
r = y(x) / ||w|| 
可以將向量w和x,進行擴展得到增廣向量W=(w0,w) X=(x0,x) 
那麼y(x) = WX 

4.1.2 多類問題: 
現在我們考慮K > 2的線性判別函數的擴展。我們可以組合一些兩類的判別函數得到K類 
的判別函數,但是這會導致一些困難。 
如果我們使用K-1個分類器,每一個解決2類問題,這被稱爲one-versus-the-rest分類器。但是有一些區域沒有被分類(見圖4.2的例子)。 

另一種選擇是引入K(k-1)/2個二元分類器,每一個對應一對類別,這被稱爲one-versus-one分類器。但是仍然有一些區域不能分開(見圖4.2) 

我們可以考慮一個單個的k-class的一起函數,他組合了K個線性函數: 
yk(x) = wkTx + wk0 
如果yk(x) > yj(x),j!=k,那麼將點x賦值給類Ck。這個在Ck和Cj的決策邊界 
由yk(x) = yj(x)給出,因此(D-1)維的超平面被定義爲: 
(wk - wj)Tx + (wk0 - wj0) = 0 
這和2-class的決策邊緣類似。 
這種判別的決策區域是單聯通的,並且是凸。考慮兩個點xA和xB,他們都在決策邊緣Rk上,任何在連接xA和xB的線上的點x^,可以表示爲: 
x^ = λxA + (1 − λ)xB 其中 0=< λ <= 1 
對於線性的判別函數: 
yk(x^) = λyk(xA) + (1-λ)yk(xB) 
由於xA和xB都在決策區域Rk內,那麼對於所有的j != k, 
yk(xA) > yj(xA),yk(xB) > yj(xB) 
因此yk(x^) > yj(x^) 
所以x^也在決策區域內Rk內。所以Rk是單連通並且是凸的。 

我們下面將要介紹三種學習線性判別函數的方法:最小二乘法、Fisher線性判別函數, 
感知器算法。 
4.1.3 用於分類的最小二乘法 
我們在第三章看到,我們考慮了關於參數的線性函數的模型,我們使用最小化錯誤平方函數的方法得到了簡單的關於參數的解,因爲我們可以可以看一下是否這種方法可以應用於分類問題。 
  考慮一般的分類問題,有k個類別,對於目標向量t使用1-of-k的二元編碼方式.一種可以證明可以使用最小二乘法的情形是,給定輸入向量x的目標值t逼近條件期望E(t|x)。 
對於二元編碼,條件期望由後驗分類概率給出。不幸的是這種概率的逼近非常的差,事實上這種逼近可能會超出(0,1)的區間,由於線性模型有限的靈活性導致的。 
  對於每個類Ck都有他們自己的線性模型,所以 
yk(x) = wkTx + w0 k=1,...,k。 
我們可以寫成: 
y(x) = WX 
其中W = (wk0,wkT)T, X = (1,XT)T 
對於新的輸入x被賦值爲ck,如果yk=WkTXT最大。 
我們通過最小化錯誤平方和,我們可以得出參數矩陣W,就像我們第三章回歸中所做的。 
對於訓練集{xn,tn),n=1,...,N,我們定義一個矩陣T,他的第n行是向量tnT,矩陣 
X的第n行是xTn。那麼平方和錯誤函數可以寫成: 
Ed(W) = 1/2 Tr{(XW-T)^T(XW-T) 
將關於W的導數設置爲0,我們得到 
W = (WTW)-1X^TT = X† T 
其中X† 是矩陣X的pseduo-inverse,因爲W可能不是方陣。 
這樣我們得到了判別函數: 
y(x) = WTX = T^T(X†)^Tx. 
另外一個有趣的特性是多目標變量的最小二乘法的解,如果訓練集每一個目標向量滿足某個線性約束 aTtn + b = 0
那麼對於末個常量a和b,對於任意x的模型預測值也滿足相同的約束 
aTy(x) + b = 0 
因此如果我們使用k-class的1-of-k的編碼模式,那麼模型預測具有以下特性, 
對於任意的x,y(x)的元素之和是1 
但是這個約束並不能將模型的輸出解釋爲概率,因爲他們每個值並不一定在(0,1) 
之間。 

最小二乘法給出了精確的判別函數參數的解,然而判別函數存在很嚴重的問題。我們已經看到最小二乘法對離羣點(outliers)缺乏健壯性,這個同樣適應於分類的應用程序。在第7.1.2節我們會討論幾種對於分類可選的錯誤函數,他們不會遭受現在的困難。 

由於我們假設最大似然函數是高斯條件分佈,而二元目標向量的分佈和高斯分佈差別很大。 
所以導致最小二乘法的失敗。我們通過採取更恰當的概率模型,會得到比最小二乘法更好的分類技術。然而,現在我們繼續介紹可選的非概率的參數化的線性分類模型。 

4.1.4 Fisher's 線性判別函數 
一種線性分類模型的方法被稱爲降維。首先考慮一下兩類問題,假設我們的輸入具有D維,我們y=wTx將其映射到一維,那麼 
如果對y設置一個閾值:當y >= -w0時分類爲C1,否則爲C2,我們得到了一個標準的線性分類函數。然而,一般的我們映射到一維會丟失很多信息,在D維能夠分開的,在一維空間可能會重疊。然而我們可以通過調整w的權重,選擇一個映射能夠最大化分類的間隔。 
我們考慮二類問題類C1有N1個點,類C2有N2個點,所以這兩個類的均值向量爲: 
m1 = 1/N1 * sum(xn) n∈C1 
m2 = 1/N2 * sum(xn) n∈C2 
當我們映射到w上,最簡單的測量類別間隔的方法是映射類的期望的偏離程度,這樣我們選擇w,去最大化 m2 - m1 = wT(M2 - M1) 
其中mk = wT * Mk是類Ck映射的均值。這個表達式可以通過擴大w來任意增大,所以我們限制w具有單位長度,即sum(wi * wi) = 1 
可以使用拉格朗日乘子來解決具有約束條件的最大值。我們發現w∝ M2-M1. 
4.1.5 
4.1.6 
4.1.7 感知機算法 
另一個線性判別模型的例子是感知機,這個在模式識別的歷史上佔據了重要的地位。對於2類的問題,輸入矩陣首先通過一個固定的非線性函數轉換爲特徵向量矩陣,然後用來構建一個更一般的線性模型的形式: 
y(x) = f(wTφ(x)) 
這個非線性的函數f由分段函數形式給出: 
f(a) = if a >= 0 then +1 else -1 end 
向量φ(x)包含偏置組件φ0(x) = 1. 

在概率的模型中,我們對目標次的編碼t∈{0,1},對於感知機來說使用 
t = if c1 then +1 else -1 end 
的編碼更方便 

感知機的參數w可以通過最小化錯誤函數來決定,一個很自然的錯誤函數的選擇是錯誤分類的模式的個數。但是這並不是一個簡單的算法,因爲這是一個分段不連續的常數函數,這種根據錯誤函數的梯度來跟新w的算法不能適用,因爲梯度幾乎處處爲0。 

我們考慮另外的錯誤函數:感知器標準(perceptron criterion)。我們注意到我們在尋找一個權重矩陣w,它能夠使類c1的模式xn滿足wT * φ(xn) > 0,在c2中的模式xn滿足wTφ(xn) < 0,如果我們使用t∈{-1,+1}的編碼方式,那麼wT * φ(xn) * tn > 0 
如果每一個模式都能夠被正確分類,那麼錯誤爲0.即努力去最小化 
-wT * φ(xn) * tn 
Ep(w) = - sum(wT * φ(xn) * tn) where n ∈ M 
M表示所有分類錯誤的模式。 
我們可以對錯誤函數使用梯度算法(stochastic gradient descent algorithm) 
權重向量w每次跟新由下面的式子給出: 
w(τ +1) = w(τ ) − η∇EP (w) = w(τ ) + ηφn tn 
η是學習率。因爲我們將w乘以一個常量,函數y(x,w)不會改變,所以我們可以去η爲1 
我們可以看到: 
−w(τ +1)T φn tn = −w(τ )T φn tn − (φn tn )T φn tn < −w(τ )T φn tn 
更新w之後錯誤分類的模式的貢獻將會被減少。但是w的修改可能導致前面正確分類的模式被錯誤分類,所以在這個學習規則不能夠保證每個步驟中都減少錯誤總和的大小。 

然而感知機收斂的理論證明如果有一個精確的解,那麼感知機器可以在有限的步驟中找到它。 
但是有的收斂很慢,我們無法區分不可分的問題和很慢收斂的問題,即使是線性可分的,它也依賴於最初的參數和點的順序,對於非線性可分的問題,這個算法是不收斂的。 

感知機給出概率輸出,也不能泛化成爲k > 2的分類,這也是感知機的缺點。 
Large Margin Classification Using the Perceptron Algorithm給出一個基於投票的感知機器: 
訓練: 
輸入: 標記好的訓練集<(x1,y1),...,(xm,ym)>,迭代次數T 
輸入: 權重感知機<(v1,c1),...,(vk,ck)>列表 
1.初始化 k = 0, v1 = 0, c1=0 
2.重複T次迭代: 
1.upto(m) do 
  * 計算預測值 y^ = sign(vk * xi) 
  * if y^ = y then ck = ck + 1 
              else vk+1 = vk + yixi; 
                   ck+1 = 1; 
                   k = k+ 1 
               end 
end 
預測: 
輸入:權重感知機<(v1,c1),...,(vk,ck)>列表 和 未標註的實例 x 
計算 
s = sum(ci * sign(vi * x)) for i = 1..k 
y^ = sign(s) 


4.2 概率生成模型 
我們開始轉向概率觀點的分類問題,我們通過對數據分佈的簡單假設,展示如何使用線性決策邊緣去建模。 
對於二元分類的問題,C1的後驗概率: 
p(c1|x) = p(x|c1) * p(c1) / p(x|c1) * p(c1) + p(x|c2) * p(c2) 
= 1 / 1 + exp(-a) = σ(a) 
其中 a = ln( p(x|c1) * p(c1) / p(x|c2) * p(c2) ) 
σ(a)是logistic sigmoid函數: 
σ(a) = 1 / 1 + exp(-a) 
我們可以得到: 
a = ln ( σ / 1 - σ ) 
被稱爲logit函數,他代表了概率比的log值:ln( p(c1|x) / p(c2|x) ) 

對於多類問題 
p(ck|x) = p(x|ck) * p(ck) / sum( p(x|cj) * p(cj) = exp(ak) / sum( exp(aj) ) 
其中ak = ln( p(x|ck) * p(ck) ) 

4.2.1連續型輸入ian 
如果我們假設類別的條件密度是高斯函數,然後導出其後驗概率的形式,我們首先假設所有的類別都有都有相同的協方差矩陣,那麼類別Ck的條件概率: 
f(x|Ck) = 1 / (2π)^D/2 * 1 / |Σ|1/2 exp {-1/2(x-μk)T * Σ^−1 * (x-μk)} 
考慮二元分類問題,我們得到: 
p(c1|x) = σ(wTx + w0) 
其中 
w = Σ−1 * (x-μk) 
w0 = −1/2 * μ1T * Σ^−1 * μ1 + 1 / 2 * μ2T * Σ^−1 * μ2 + ln p(C1) 
p(C2) . 
我們可以看到x關於w是線性的,所以決策邊緣在輸入空間內是線性的。 

對於多類問題 
ak(x) = wkT + wk0 
其中 
wk = Σ^−1 * μk 
wk0 = −1 / 2 * μkT * Σ^−1 * μk + lnp(Ck) 

看到x關於w是線性的,決策邊緣在輸入空間內是線性的 

如果每個類條件概率p(x|Ck)都有自己的協方差矩陣,那麼我們將得到x二次函數。 

4.2.2 最大似然法 
一旦我們有了關於類別的參數化的條件分佈p(x|Ck),我們就可以使用最大似然發來求出 
參數的值,包括類別的先驗概率p(Ck) 

我們考慮兩類的問題,每一個都具有關於類別的條件密度,他們共享協方差矩陣,假如我們具有數據集{xn, tn}其中n=1,...,N,tn = 1表示類別C1,tn=0表示類C2。我們用p(c1) = π來表示類別的先驗概率,所以p(C2) = 1 - π。 
那麼,對於c1: 
p(xn, c1) = p(c1) * p(xn|c1) = π * N(xn|μ1,Σ) 
對於c2: 
p(xn, c2) = p(c2) * p(xn|c2) = (1 - π) * N(xn|μ2,Σ) 
我們得到似然函數: 
p(t|π,μ1,μ2) = mult(1..n){ π * N(xn|μ1,Σ) }^tn {(1 - π) * N(xn|μ2,Σ)}^(1-tn) 
依賴於π的似然函數 
mult(1..n){ tn * lnπ + (1-tn) * ln(1-π) } 
我們對π求導,並使其爲0,得到 
π = 1/N * sum(1..n)tn = N1 / N = N1 / (N1 + N2) 
我們現在考慮關於μ1,我們找出和μ1相關的部分,對μ1求導並使其爲0得到: 
μ1 = 1 / N1 * sum(1..N)tn * xn 
μ2 = 1 / N2 * sum(1..N)tn * xn 

我們找出和Σ相關的部分,對Σ求導並使其爲0得到: 
s = N1 / N s1 + N2 / N * s2 
s1 = 1/N1 sum(n∈C1){(xn - μ1)(xn - μ1)^T } 
s1 = 1/N2 sum(n∈C2){(xn - μ2)(xn - μ2)^T } 
Σ = S,表示兩個類別協方差的加權平均 

我們很容易將其擴展到k類的問題。由於最大似然估計高斯分佈不是很魯棒,所以這種方法 
對離羣點不是很健壯。 

4.2.3 離散的特徵 
現在我們考慮離散的特徵值xi。爲了簡化我們先看二元的特徵值xi ∈ {0,1},然後在擴展到一般的離散值的情況。如果有D個輸入,對於每一個類對應應2^D個元素的表,他的分佈包含 
2^D-1個獨立的變量。由於這和特徵數量成指數級增長,我們需要尋找一個更多限制的表示。 
我們對Naive Bayes分佈假設其對Ck的條件分佈,其特徵值之間是獨立的。所以我們有: 
p(x|Ck) = multiple(1..D){μki^xi * (1-μki)^1-xi 
每一個類包含D個獨立的參數,替換(4.63)我們得到: 
ak(x) = sum{1..D}{xi * ln * ki + (l-xi)*ln(1-μki)} + ln p(Ck) 
仍然是輸入變量xi的線性函數。 

4.2.4 指數族分佈 
我們前面看到,不管高斯分佈還是離散輸入,後驗類概率都是線性模型在logistic sigmoid (K = 2) 或者 softmax (K > 2) activation 函數的推廣。 
我們通過假設類條件密度p(x|Ck)是指數族分佈,我們得到了一個更一般的結果。 
在(2.194)我們可以將指數族分佈寫成: 
p(x|λk) = h(x)g(λk)exp{λkTu(x)}. 
現在我們考慮限制u(x)= x得到這類分佈的子集。 
我們引入一個比例參數s,我們獲得受限的指數族條件分佈的概率密度形式: 
p(x|λk, s) = 1/s * h(1/s * x) * g(λk) * exp{1/s * λkT * x} 
我們假設每個類別都有自己的參數向量λk,但是我們假設他們共享比例參數s。 
  對於兩類問題,我們替換這個表達式到類條件概率密度函數,我們發現類的後驗概率仍然 
是相對於logistic sigmoid的線性函數: 
a(x) = (λ1 − λ2)T *x + lng(λ1) − ln g(λ2) + lnp(C1) − ln p(C2). 
類似的對於k-類問題。我們得到: 
ak(x) = λkT x + lng(λk) + lnp(Ck) 
仍然是關於x的線性函數。 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章