感知機

1.感知機模型算法

  感知器模型只是適用於線性可分的二分類狀況,例若有n個樣本,x是n維的特徵,y是二分標籤{+1, -1},任務是找到一條超平面將樣本中的正負樣本分開。函數

  具體的,若是咱們有m個樣本,每一個樣本都對應與n爲特徵和一個二分類別輸出,以下學習

   

  由輸入空間到輸出空間的函數爲:優化

  稱爲感知機,其中,w和b爲感知機參數模型,w爲一個n維行向量,叫作權值向量,b爲一個標量,叫作偏置。表示w和b的內積。sign是符號函數,即spa

  對於特徵空間Rn中的一個超平面S,其中w是超平面的法向量,b是超平面的截距。這個超平面將特空間劃分爲兩個部分,法向量指向的爲正類,另一類爲負類。3d

2 感知機學習損失函數blog

  感知器的目標是找到一個超平面將訓練集的正負樣本分開,只要肯定了權值向量w和偏置b即肯定了超平面,爲了能夠完成任務的超平面,就要肯定一個學習策略,即定義一個損失函數並將損失函數最小化。循環

  爲了下面敘述方面,接下來作一個約定,即:方法

 

  上面的公式的意思就是說,存在一個分離超平面,正例樣本在超平面的上面,負例在超平面的下面。將上面兩個公式合成一個公式,即:im

  當存在錯分的樣本時,則錯分的樣本知足關係:

  感知器的損失函數爲誤分類點到超平面S的總距離。

  下面是某一個樣本點x0到超平面的距離:

  對於一個誤分類的數據(xi, yi)來講,其到超平面S的距離是:

  這樣,假設超平面S的誤分類點集合爲M,那麼全部誤分類點到超平面S的總距離爲:

  當公式中分子的w擴大N倍時,公式的分母也會擴大N倍,所以能夠固定分母爲1,即將w和b同時縮小至w的二範數爲1,這並不會改變超平。而後求分子的最小化做爲損失函數,這樣就獲得了感知器的損失函數:

 

  其中M爲誤分類點的集合。這個損失函數就是感知機學習的經驗風險函數。

  顯然,損失函數L(w, b)是非負的,若是沒有誤分類點,損失函數值爲0。並且,誤分類點越少,誤分類點離超平面越近,損失函數值就越小。

 3 感知機學習算法

   經過上一節的推導,得出感知機的損失函數,則感知機的學習問題變爲求解損失函數的最優化問題,最優化的方法是隨機梯度降低。

  假如咱們擁有m個樣本,每一個樣本的特徵維度爲n的數據集,以下:

  其中yi是一個二元類別輸出+1或者-1,求參數w和b,使其爲如下損失函數的極小化問題的解:

  其中M爲誤分類點的集合。

  感知機的損害函數只有和誤分類的點有關,是誤分類數據驅動的,具體採用隨機梯度降低,首先先任意選擇一個超平面w0,b0,而後用梯度降低法不斷極小化目標函數,極小化的過程當中不是一次是M中全部全部的誤分類點的梯度降低,而是一次隨機選取一個誤分類點使其梯度降低。

  加入誤分類集合M是固定的,那麼損失函數L(w,b)的梯度是:

  而後隨機選取一個誤分類點(xi, yi),接着對w和b進行更新:

  上式中,是學習率,又叫學習步長,是一個大於0,小於等於1的浮點值,這樣就能夠經過迭代是損失函數不斷減少,直到算法收斂。

  算法的執行步驟以下:

  輸入:線性可分的訓練數據集,其中y爲二分類標籤{+1, -1}, 學習率(0 <  <=1);

  輸出:w和b,感知機模型

  (1)選取初值w0,b0;

  (2)在訓練集中隨機選取一個樣本點(xi,yi);

  (3)若是

  (4)轉至(2), 直到訓練集中沒有誤分類的點。

   算法的直觀解釋:當一個樣本點被誤分類,即位於分離超平面的錯誤的一側時,則調整w, b的值,使分離超平面想該誤分類點的一側移動,以減小該誤分類點與超平面的距離,直到超平面越過該誤分類點使其被正確分類。

4 感知機學習算法的對偶形式

   在上一節算法中:

  是對w和b進行逐個修改,即每個循環迭代就只更新了一次,爲了加速算法的收斂,設修改了n次,則w和b的增量爲,其中ni的意思是經過樣本點i修改了ni次w和b,這裏能夠令。這樣,從學習過程當中就能夠推導出最後學習到的w和b的值:

  其中,m是樣本的總量,當=1時,表示第i個樣本因爲誤分類而進行更新的次數。樣本點更新次數越多,意味着它距離分離超平面越近,也就越難正確分類。換句話說,這樣的樣本對學習的結果影響很大。

  算法的執行步驟以下:

  輸入:線性可分的數據集,其中y爲二分類標籤{+1, -1}, 學習率(0 <  <=1);

  輸出:,b;感知機模型,其中

  (1)

  (2)在訓練集中隨機選取數據(xi, yi);

  (3)若是

  (4)轉至(2)直到沒有誤分樣本數據。

 

 (轉載請註明出處,謝謝!)

相關文章
相關標籤/搜索