1. 程式人生 > >《李航:統計學習方法》--- 感知機演算法原理與實現

《李航:統計學習方法》--- 感知機演算法原理與實現

感知機模型

感知機是一個二類分類的線性分類模型。所謂二類分類就是它只能將例項分為正類和負類兩個類別。那麼為什麼是線性分類模型呢,我的理解是感知機學習旨在求出可以將資料進行劃分的分離超平面,而分離超平面的方程

wx+b=0 為線性方程,所以感知機為線性分類模型。感知機模型如下圖所示:
感知機模型

圈圈表示正類,而叉叉表示負類。圈圈與叉叉之間的直線即上文所說的分離超平面(注意分離超平面並不是唯一的!)它將所有的樣本劃分為兩部分。位於分離超平面上方的為正類,記為+1,位於分離超平面下方的為負類,記為-1。也就是說,假設給一個樣本的特徵向量x,如果wx+b>0, 那麼樣本為正類(+1),反之若wx

+b<0, 樣本則屬於負類(-1)。我們 引入符號函式sign(x),即

sign(x)={+1x01x<0由此我們可以得到由輸入空間到輸出空間的函式f(x)=sign(wx+b)這就叫做感知機。其中,wb為感知機引數,wRn叫做權值或權值向量,bR叫做偏置,wx表示wx的內積。感知機學習的目的就在於確定引數wb的值。

感知機學習策略

給定一個線性可分的資料集

T={(x1,y1),(x2,y2),...(xN,yN)}其中xiX=RnyiY={+1,1}i=1,2,3,...N
為了確定感知機模型的引數wb,需要確定一個學習策略,即定義一個損失函式並將損失函式極小化。感知機採用的損失函式為誤分類點到超平面的總距離。首先寫出輸入空間R
n
中任一點x0到分離超平面的距離1w|wx0+b| 這裡wwL2範數。
其次對於誤分類的資料(xi,yi)來說,yi(wxi+b)>0因為當wxi+b>0yi=1,而當wxi+b<0yi=+1。因此誤分類點xi到超平面的距離是1wyi(wxi+b)這樣假設誤分類點的集合為M,那麼所有誤分類點到超平面的總距離為1wxiMyi(wxi+b)不考慮1w,就得到感知機學習的損失函式L(w,b)=xiMyi(wxi+b)顯然,損失函式L(w,b)是非負的。如果沒有誤分類點,損失函式值為0,而且,誤分類點越少,誤分類點離超平面越近,損失函式的值越小。
感知機學習的策略是在假設空間中選取使損失函式最小的模型引數w
,b

感知機學習演算法

感知機學習演算法是誤分類驅動的,具體採用隨機梯度下降法。首先,任意選取一個超平面w0,b0,然後用梯度下降法不斷地極小化損失函式。極小化過程中不是一次使M中所有誤分類點的