1. 感知机模型
感知机是一个二类的线性分类器,输入特征向量,输出+1或-1代表实例的类别。感知机的本质是能在特征空间中将实例划分为正负两类的超平面。从输入空间到输出空间的映射函数为: y=sign(\omega x+b)
y=sign(ωx+b)
其中sign是符号函数:
sign(x)={+1−1x⩾0x<0
只有正样本和负样本完全位于超平面两侧的时候称样本为线性可分的。
2. 感知机的训练
感知机模型学习的目的就是获得参数 ω 和 b 。
2.1 损失函数
在选择损失函数的时候,比较容易想到的是误分类样本的个数,但是这样的损失函数不可导不易优化。因此,感知机常用的损失函数是误分类的点到超平面的距离之和。任意一个点
1∥ω∥|ω⋅x0+b|
对于一个错误分类的样本,满足
−yi(ω⋅xi+b)>0
。所以所有误分类点到超平面的总距离为:
−1∥ω∥Σyi(ω⋅x0+b)
省略常数项,感知机的损失函数写作:
L(ω,b)=−Σyi(ω⋅x0+b)
2.2 学习算法
损失函数
L(ω,b)
是关于
ω
和
b
的可导函数。学习算法采用随机梯度下降法(stochastic gradient descent)。损失函数的梯度表示为:
∇bL(ω,b)=−Σyi
对应的算法步骤如下: 1. 初始化 ω0 , b0 ;
2. 在训练集中选取数据点 (yi,xi) ;
3. 如果 yi(ω⋅xi+b)⩽0
ω←ω+ηyixi
b←b+ηyi
4.重复步骤2和3,直到训练集中没有误分类的点。
2.3 算法的收敛性
当训练数据集是线性可分的时候,感知机的学习算法是收敛的。但是感知机学习算法具有很多种可能的解,取决于初值的选择和迭代过程中误分类点的选择顺序。