感知机(perceptron)学习——学习笔记

一、感知机
感知机是二分类线性分类模型,输入为实例的特征向量,输出为+1,或者-1.由输入到输出函数为f(x) = sign(w*x+b),w为权值(weight),b叫做偏置(bias)。sign为符号函数。(w是超平面的法向量,b是超平面的截距)。

感知机是通过确定一个超平面来将样本分成两类,也就是说我们通过不断调整w和b来确定这个超平面,直到找到这个超平面为止。简单来说,把他想成二维空间,就是平面上有一些点,这些点一类是+1,一类是-1,我们的目的就是找到一条直线可以将这二类点分开,这条直线的函数解析式w*x+b。我们通过调整斜率w和截距b来调整直线,直到其可以分成二类的点。

我们这里定义一个损失函数,就是衡量分类错误的多少的一个函数(我自己理解的)。那我们就是要使这个损失函数尽量小。

损失函数的自然选择是误分类点的总数,但是这样的损失函数不是参数w,b的可导函数,不容易优化。

x0 x 0 , y0 y 0 )到直线Ax+By+C = 0的距离为:

d=|Ax+By+C|A2+B2 d = | A x + B y + C | A 2 + B 2

所以我们来计算 x0 x 0 到平面S的距离:

1||w|||wx0+b| 1 | | w | | | w ∗ x 0 + b |

||w||是w的L2范数, ||w||=w2 | | w | | = w 2

而对于误分类的数据( xi,yi x i , y i )来说, yi(wxi+b)>0 y i ∗ ( w ∗ x i + b ) > 0 ,所以误分类点 xi x i 到S的距离为:

1||w||yi|wxi+b| − 1 | | w | | ∗ y i | w ∗ x i + b |

所以误分类点到S的总距离为(误分类的距离为M):

1||w||xiMyi|wxi+b| − 1 | | w | | ∑ x i ∈ M y i | w ∗ x i + b |

不考虑 1||w|| 1 | | w | | ,就是感知机学习的损失函数。
所以感知机sign(w*x+b)学习的损失函数为:
L(w,b)=1||w||xiMyi|wxi+b| L ( w , b ) = − 1 | | w | | ∑ x i ∈ M y i | w ∗ x i + b |

我们通过对这个损失函数进行梯度下降算法,即:
minw,bL(w,b)=1||w||xiMyi|wxi+b| m i n w , b L ( w , b ) = − 1 | | w | | ∑ x i ∈ M y i | w ∗ x i + b |

对这个损失函数分别对w和b求导,得到梯度,w的梯度为- yixi y i x i ,b的梯度 yi − y i ,所以更新公式为:
ww+ηyixi w ← w + η y i x i
bb+ηyi b ← b + η y i

η η 是步长,也称为学习率。然后不断更新直到符合某个停止条件,得到这个感知机模型。

你可能感兴趣的:(机器学习笔记)