感知器算法


感知器算法是一種線性分類器(原始形式和對偶形式)

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線性組合的形式,通過求解其系數而求得 wb 。假設 w0,b00,對誤分類點(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矩陣會方便很多。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM