1. 程式人生 > >感知機演算法原理及推導

感知機演算法原理及推導

感知機(Perceptron)是二分類問題的線性分類模型,其輸入為例項的特徵向量,輸出為例項的類別,取+1和-1二值。

感知機於輸入空間(特徵空間)中將例項劃分為正負兩類的分離超平面,屬於判別模型。感知機於1957年由Rosenblatt提出,是神經網路和支援向量機的基礎。

在這裡,不用《統計學習方法》書中的變量表示方式,我們用技術分享表示資料集,一共技術分享個樣本,技術分享個維度,用技術分享表示資料集中的第技術分享個樣本,用技術分享表示標記(類別)向量,技術分享代表第技術分享個樣本技術分享的標記。

我們將要學習的目標函式是:

技術分享

稱為感知機。其中,技術分享技術分享為感知機模型引數,技術分享為權值向量,技術分享叫作偏置(bias),技術分享表示技術分享技術分享的內積。技術分享是符號函式,即:

技術分享

所以,在這裡技術分享,根據上式可知技術分享時為分類的邊界(超平面

)。

對於資料集技術分享,如果能夠將資料集的正負樣例完全正確地劃分到超平面的兩側,即對於所有技術分享的例項技術分享技術分享,對於所有技術分享的例項技術分享技術分享,則稱這個資料集為線性可分的資料集,否則資料集線性不可分。

假設資料集是線性可分的,感知機的學習目標是求得一個能夠將訓練集正負樣例能夠完全分開的超平面。找出這樣的超平面,其實就是要確定感知機的模型引數技術分享技術分享。所以我們首先要定義損失函式,再將其最小化。

感知機的損失函式是針對誤分類的點,最小化誤分類的點到超平面的距離,不斷進行調整。

對於輸入空間的任一一個樣例技術分享,所要計算的距離就是這個點到技術分享的距離。

根據點到直線的距離公式:

技術分享

代入其中,可以得到:

技術分享

進一步,進行簡化約等,可以得到如下式子:

技術分享

其中,技術分享

技術分享技術分享範數。

對於誤分類的樣例技術分享來說,技術分享成立。所以誤分類的點到超平面的距離為:

技術分享

假如對於所有的誤分類點集合為技術分享,那麼所有的誤分類點到超平面的總距離為:

技術分享

不考慮技術分享,就得到了感知機的損失函式:

技術分享

顯然,損失函式技術分享是非負的,如果沒有誤分類的點,損失函式的值為0。並且,誤分類點越少,誤分類點離超平面越近,損失函式越小。所以對於完全線性可分的資料集,當損失函式技術分享為0時,即達到了完全正確分類。

這個損失函式可以用梯度下降法來解,對於技術分享技術分享的梯度用偏導可以直接求出來,具體過程不再贅述。

感知機學習策略

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

T={(x1,y1),(x2,y2),...(xN,yN)} 其中xiX=RnyiY={
+1,1}
i=1,2,3,...N
為了確定感知機模型的引數wb,需要確定一個學習策略,即定義一個損失函式並將損失函式極小化。感知機採用的損失函式為誤分類點到超平面的總距離。首先寫出輸入空間Rn中任一點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中所有誤分類點的梯度下降,而是一次隨機選取一個誤分類點使其梯度下降。損失函式L(w,b)的梯度為

wL(w,b)=xiMyixi bL(w,b)=xiMyi 隨機選取一個誤分類點(xi,yi),對w,b進行更新: ww+ηyixi bb+ηyi 式中η(0<η1)是步長,在統計學習中又稱為學習率。

綜上所述,得到如下演算法(感知機學習演算法的原始形式)
輸入:訓練集T={(x1,y1),(x2,y2),...(xN,yN)},其中xiX=RnyiY={+1,1}i=1,2,3,...N ;學習率η(0<η