感知器算法是一種線性分類器(原始形式和對偶形式)
1.首先,我們假定線性方程 wx+b=0 是一個超平面,令 g(x)=wx+b,也就是超平面上的點x都滿足g(x)=0。對於超平面的一側的點滿足:g(x)>0; 同樣的,對於超平面另一側的點滿足:g(x)<0.
結論一:對於不在超平面上的點x,它到超平面的距離:

證明:如下圖所示,O表示原點,Xp表示超平面上的一點,X是超平面外的一點,w是超平面的法向量。




等式1說明:向量的基本運算法則,OX=OXp+XpX. 因為w是法向量,所以w/||w||是垂直於超平面的單位向量。
等式2說明:將等式1帶入g(x)=wx+b;由於Xp在超平面上,所以g(Xp)=w^T*Xp+w0 = 0
以上得證。
2.下面區分一下易混淆的兩個概念,梯度下降和隨機梯度下降:
梯度下降:一次將誤分類集合中所有誤分類點的梯度下降;----對偶形式
隨機梯度下降:隨機選取一個誤分類點使其梯度下降。----原始形式
3.對於誤分類的數據來說,當w*xi + b>0時,yi = -1,也就是,明明是正例,預測成負例。因此,
誤分類點到超平面的距離為:

因此所有誤分類點到超平面的總距離為:


忽略1/||w||,我們就可以得到感知機學習的損失函數。
損失函數:

這個損失函數就是感知機學習的經驗風險函數。
下面我們計算損失函數的梯度:


值得我們注意的是,以上求和都是針對誤分類集合M中的樣本點進行的。對於正確分類的樣本點,則不需要考慮。
下面我們就得到了我們的更新策略:
隨機選取誤分類點(xi,yi),對w,b進行更新:


4.感知器算法的原始形式:
輸出w,b; 感知機模型f(x)=sign(w*x+b)
(1)選取初值w0,b0
(2)在訓練集中選取數據(xi,yi)
(3)若yi*(w*xi+b)<=0, (該樣本點被誤分類了)


(4)轉至(2),直至訓練集中沒有誤分類點。
5感知器對偶形式:
基本思想:
將 w 和 b 表示為實例 xi 和標記 yi線性組合的形式,通過求解其系數而求得 w、b 。假設 w0,b0為0,對誤分類點(xi,yi) 通過
w=w+ηyixi
b=b+ηyi
逐步修改 w,b ,設修改 n 次,則 w,b 關於(xi,yi) 的增量分別為 αiyixi 和 αiyi, 其中αi=niη ,則最后學習到的 w,b可以分別表示為
w=∑αiyixi
b=∑αiyi
這里,αi≥0,=1,2,⋯N, αi=niη ,ni 的意義是樣本 i 被誤分的次數,所以當 η=1 時,表示第 i 個樣本由於被誤分而更新的次數,實例點更新次數越多,表明它距離分離超平面越近,也就越難正確分類。
偽代碼:

為了方便后期的計算,可先求出Gram(格拉姆矩陣)矩陣。

例如,正例:x1 = (3,3)^T, x2 = (4,3)^T, 負例: x3 = (1,1)^T
那么Gram(格拉姆矩陣)矩陣就是:
因為對偶形式中會大量用到xi*xj的值,所以提前求出Gram矩陣會方便很多。
