感知机是简单的线性二分类机器,是支持向量机和神经网络的基础,其输入空间是实例的特征向量,输出空间为 { − 1 , + 1 } \lbrace-1,+1\rbrace {−1,+1},作为监督学习的分类工具,它的学习目标是通过数据找到一个超平面可以把数据分成两类,超平面的形式为: w ∗ x + b ∗ = 0 w^*x+b^*=0 w∗x+b∗=0,分类函数为: f ( x ) = s i g n ( w ∗ x + b ∗ ) f(x)=sign(w^*x+b^*) f(x)=sign(w∗x+b∗),
s i g n ( x ) = { 1 , x ≥ 0 — 1 , x < 0 sign(x)= \begin{cases} 1, & \text {$x\geq0$} \\ —1, & \text{$x<0$ } \end{cases} sign(x)={1,—1,x≥0x<0
假设有数据集 T = { ( x 1 , y i ) , ( x 2 , y 2 ) , . . . , ( x n , y n ) } T=\lbrace(x_1,y_i),(x_2,y_2),...,(x_n,y_n)\rbrace T={(x1,yi),(x2,y2),...,(xn,yn)},其中 x i x_i xi代表第 i i i个实例的特征向量, y i y_i yi代表类别,一般有 y i ∈ { − 1 , + 1 } y_i\in\lbrace-1,+1\rbrace yi∈{−1,+1}。假设点 ( x j , y j ) (x_j,y_j) (xj,yj)被错误分类,比如 y j = 1 y_j=1 yj=1时,如果 w x j + b < 0 wx_j+b<0 wxj+b<0就出现分类错误,总上分类错误的点满足不等式:
− y j ( w x j + b ) > 0 -y_j(wx_j+b)>0 −yj(wxj+b)>0
同时该点到超平面的距离为:
− 1 ∣ ∣ w ∣ ∣ y j ( w x j + b ) -\frac{1}{||w||}y_j(wx_j+b) −∣∣w∣∣1yj(wxj+b)
设分类错误的集合为M,错误结合中所有点到超平面的距离之和为:
L = − 1 ∣ ∣ w ∣ ∣ ∑ x j ∈ M y j ( w x j + b ) L=-\frac{1}{||w||}\sum_{x_j\in M}y_j(wx_j+b) L=−∣∣w∣∣1xj∈M∑yj(wxj+b)
定义函数L为损失函数,而且 ∣ ∣ w ∣ ∣ ||w|| ∣∣w∣∣是一个对所有分类错误点都一样,在损失函数中不再讨论。求损失函数最小化就代表分类错误点越少,学习效果越好,求最优化的过程中采用梯度下降法。首先任选一个超平面 ( w 0 , b 0 ) (w_0,b_0) (w0,b0),然后采用梯度下降法不断极小化损失函数,在极小化过程中是一次随机任选一个误分类点进行优化。
d L d w = − ∑ x j ∈ M y j x j \frac{dL}{dw}=-\sum_{x_j\in M}y_jx_j dwdL=−xj∈M∑yjxj
d L d b = − ∑ x j ∈ M y j \frac{dL}{db}=-\sum_{x_j\in M}y_j dbdL=−xj∈M∑yj
随机选取一个误分类点 ( x j , y j ) (x_j,y_j) (xj,yj)对 ( w , b ) (w,b) (w,b)进行优化, η \eta η代表学习率。
w ⟵ w + x j y j w\longleftarrow w+x_jy_j w⟵w+xjyj
b ⟵ b + y j b\longleftarrow b+y_j b⟵b+yj
通过迭代使得损失函数不断减小,直到没有误分类点。