統計學習方法--感知機模型 (perception)

概念

感知機是一個二類分類的線性分類器,是支持向量機和神經網絡的基礎。它假設數據是線性可分的,目標是通過梯度下降法,極小化損失函數,最後找到一個分割超平面,可以將數據劃分成兩個類別。

決策函數 如下:

f(x)=sign(wx+b)

其中 w 是權值(weight)參數,b 是偏置項(bias)。對 n 維來說,線性方程 wx+b=0 對應特徵空間的一個超平面,其中 w 是超平面的法向量,b 是超平面的截距。wx 是求內積的意思,即各項對應相乘後求和。
在二維空間,即直角座標系中,上面的超平面變成了高中學過的直線的解析式。
{w=(A, B), x=(x1, x2)=(x, y)wx+b=0 Ax+By+b=0

函數 sign 就是符號函數,定義如下:

sign(t)={+1,t01,t<0

即,給出特徵空間的一個例子x={x1,x2,x3,...,xn} ,通過上面的公式得出該輸入的分類結果是f(x) 。對二類分類來說,要麼是正例,要麼是反例。


訓練一個感知機模型

要建立感知機模型,只要確定參數 wb 就行了。我們通過梯度下降法,不斷的調整兩個參數,向最優解靠近。
怎麼評價現在的兩個參數到底是好是壞呢?我們量化一個損失函數(loss function),函數值越小,說明離最好的模型越近。在感知機這裏,最好的解就是最合適的分割超平面,能把數據分割的最好。

定義 損失函數

L(w,b)=xiMyi(wxi+b)

其中 (xi,yi) 爲分類錯誤的一個樣例,M 爲所有分類錯誤樣例的集合。所以在訓練集中沒有樣例分類錯誤的時候,損失函數的最小值就收斂到 0 了。前面加一個負號,是因爲分類錯誤的標籤 yi 和 分類器預測的分類結果 sign(wxi+b) ,正好相反,一個 +1,一個是 -1.

損失函數 L(w,b) 是非負的,且是 w , b 的連續可導函數。其中相加項的意義涉及“函數間隔”和“幾何間隔”的概念,見支持向量機的定義。


梯度下降

下面講感知機的具體學習算法,主要涉及梯度下降法來修改參數 wb
我們要極小化損失函數,即求

minw,bL(w,b)=xiMyi(wxi+b)

wb 分別求偏導數如下:

wL(w,b)=xiMyixibL(w,b)=xiMyi

更新的時候,直接隨便選一個誤分類的點 (xi,yi) ,按下面的公式更新,

{wbw+η yixib+η yi

其中 η (0<η1) 表示學習率,或者步長。

整個過程是這樣子的,每來一個樣本 (xi,yi) ,計算若

yi(wxi+b)0
說明誤分了,要用梯度下降更新權重 w,b 。若大於0,說明分類正確,不用管。這樣直到遍歷整個樣本都沒有誤分點,算法停止。

對偶形式

通過觀察上面梯度下降的更新公式,發現參數 w 最終的取值,其實是初值(初值爲0可以忽略)加上每個樣本的某個整數倍,具體如下:

wb=i=1Nαiyixi=i=1Nαiyi

其中,αi0, i=1,2,...,N 表示每個樣本點在更新過程中被誤分類的次數。從 α 中我們還可以看出來,若該值越大,則說明對應的樣本點被誤分的次數越大,也就離超平面越近,因此難分類。

判斷是否屬於誤分點時,我們用公式

yi(j=1Nαjyjxjxi+b)0
來判斷。對比之前的 w,b 版本,其實只是把 wα 代替而已。注意後面的點乘,即內積,我們可以先事先計算好並存儲在Gram矩陣中(G=[xixj]N×N ),以減少實時計算量。

書裏沒有寫爲何要有對偶模式,我覺得可能是爲了後面的支持向量機的對偶形式做鋪墊。對偶形式的計算量並不比原始形式低,反而更麻煩一點,但是 [xixj] 內積可以更換成核函數 K(xi,xj)=ϕ(xi)ϕ(xj) ,從而能處理非線性可分的問題。


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