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 - 參考資料
《統計學習方法》,李航