【分類算法】感知機(Perceptron)


0 - 算法描述

  感知機算法是一類二分類算法,其問題描述為,給定一個訓練數據集

$$T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\},$$

其中$x_i\in \mathbb{R}^n,y_i\in\{-1,1\},i=1,2,\cdots,N$,求參數$w,b$,使得以下損失函數極小化問題的解

$$\min_{w,b}L(w,b)=\min -\sum_{x_i\in M}y_i(w\cdot x_i+b),$$

其中$M$為誤分類點的集合。

  下一節給出損失函數的推導過程。

1 - 推導過程

  感知機算法求解的數據集必須具有線性可分性,其定義為,對於數據集

$$T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\},$$

其中$x_i\in \mathbb{R}^n,y_i\in\{-1,1\},i=1,2,\cdots,N$,如果存在某個超平面$S$

$$w\cdot x + b = 0,$$

能夠將數據集的正類和負類完全正確地划分到超平面的兩側,即對所有$y_i=+1$的樣本$i$,有$w\cdot x_i+b>0$,對所有$y_i=-1$的樣本$i$,有$w\cdot x_i + b < 0$,則稱數據集$T$為線性可分數據集(linearly separable dataset)。

  感知機算法即是求解線性可分數據集中的超平面$S$的算法。由於超平面是由$w$和$b$確定的,因此學習超平面的目標即是確定參數$w$和$b$,按照梯度下降法優化要求,需要定義一個關於參數$w$和$b$的損失函數進行優化。

  注意到,損失函數被期望是連續可導的,因此不能直接選取誤分類點個數作為損失函數,在感知機中,選取誤分類點到超平面$S$的總距離作為損失函數。對於輸入空間$\mathbb{R}^n$中任意一點$x_i$到超平面$S$的距離為

$$\frac{1}{\left \|  w\right \|_2}\left | w \cdot x_i + b \right |,$$

其次,對於誤分類點來說,滿足

$$-y_i(w_i\cdot x_i+b)>0,$$

因此可以把距離公式的絕對值替換得到

$$-\frac{1}{\left \|  w\right \|_2}y_i\left ( w \cdot x_i + b \right ),$$

假設超平面$S$的誤分類集合為$M$,那么所有誤分類點到超平面$S$的總距離為

$$-\frac{1}{\left \|  w\right \|_2}\sum_{x_i\in M}y_i\left ( w \cdot x_i + b \right ),$$

不考慮$\frac{1}{\left \|  w\right \|_2}$,則感知機$sign(w\cdot x+b)$的損失函數定義為

$$L(w,b)=-\sum_{x_i\in M}y_i(w\cdot x_i+b).$$

2 - 參考資料

《統計學習方法》,李航


免責聲明!

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



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