感知机1957年由Rosenblatt提出,是神经网络与支持向量机的基础。感知机是二分类线性分类模型,输入是实例特征向量,输出是实例的类别。感知机对应分离超平面,导入基于误分类的损失函数,梯度下降法对损失函数极小化,得到感知机模型。感知机学习算法简单易于实现,分为原始形式和对偶形式。
一、感知机模型
假设输入空间是 X⊆Rn,输出空间是 Y={+1,-1},输入x∈X 特征向量,对应输入空间一个点。输出y∈Y 实例类别。由输入空间到输出空间如下函数:
称感知机。w 和 b 为参数,w∈Rn 为权值向量,b∈R 为偏置,sign 为符号函数:
感知机模型的假设空间是定义在特征空间中的所有线性分类模型或线性分类器,即函数集合:
感知机模型的几何解释:线性方程
对应特征空间中一个分离超平面 S,w 是超平面法向量,b 是超平面的截距。超平面将特征空间化分为两个部分,位于两个部分的点分别分为 +1,-1 两类。图示如下:
感知机由训练数据集 T 求得感知机模型,即求得模型参数 w,b。
二、感知机学习策略
1、数据集线性可分
对给定数据集 T ,如果存在某个超平面 S 能够将数据集的两类实例点完全正确划分到超平面两侧,则称数据集 T 为线性可分数据集,否则称数据集 T 线性不可分。
2、感知机学习策略
假定训练数据集线性可分,感知机学习的目标是求得分离超平面,即求得模型参数 w,b。需要定义损失函数,并且将损失函数极小化。
损失函数额一个自然选择是误分类点的总数,但是这样不是参数 w,b 的连续可导函数,不易优化。另一个选择是误分类点到超平面的总距离,这是感知及所采用的。
任一点到超平面的距离公式:
其中 ||w|| 是 w 的 L2 范数。
对误分类数据 (xi,yi) 而言,因当 w·xi+b>0 时,有 yi = -1,当 w·xi+b<0时, yi = +1,故有
因此误分类点到超平面 S 距离为:
所有误分类点集合 M 到超平面 S 的总距离为:
不考虑 ,得到感知机学习的损失函数,也是感知机学习的经验风险函数:
损失函数 L(w,b) 非负,没有误分类点时损失函数值为 0 ,误分类点数越少,误分类点距离超平面越近,损失函数值越小。对于一个特定的样本损失函数,误分类时是参数 w,b 的线性函数,正确分类是为 0。故对给定数据集 T ,损失函数 L(w,b) 是连续可导函数。取损失函数最小的模型参数 w,b 即感知机模型。
三、感知机学习算法
1、原始形式
感知机学习算法求解参数 w,b 得到以下损失函数最小化问题的解:
感知机学习算法是误分类驱动的,采用梯度下降法。首先任意选取一个超平面,参数为 w0,b0,然后使用梯度下降法不断极小化目标函数,极小化过程中每次选取一个误分类点,梯度为:
随机选取一个误分类点(xi,yi),对 w,b 更新:
这里为步长,称为学习率。如此迭代可以期待损失函数 L(w,b) 不断减小直到为 0。
具体算法如下:
2、对偶形式
将 w 和 b 表示为实例 xi 和标记 yi 线性组合的形式,求解其系数得到 w,b ,不失一般性假设初值 w0 = 0,b0 = 0 ,对误分类点 (xi,yi)通过以下赋值方法逐步修改 w,b:
修改n次,w,b 关于 (xi,yi)的增量分别为 和 ,此处,最终的 w,b 可以表示为:
此处:,当,表示第 i 个实例点因误分类进行更新的次数,更新次数越多意味着距离超平面越近,越难正确分类,这样的实例对学习结果影响最大。
具体算法如下:
对偶形式中训练实例出现都是内积的形式,方便起见,可以预先将训练集中实例间的内积计算出来以矩阵的形式存储,这个矩阵就是 Gram 矩阵:
3、算法的收敛性
经过有限次迭代可以得到一个将训练数据集完全正确划分的分离超平面及感知机模型。
便于叙述,将偏置 b 并入权重向量 w ,记作 ,将输入向量也扩充,增加常数 1,。有,显然的,有。
对给定线性可分训练数据集 T 有以下定理:
证明略。
四、重点总结
感知机是二类分类线性分类模型,模型对应输入空间(特征空间)中的分离超平面。
学习策略是极小化损失函数,损失函数对应误分类点到分离超平面的总距离。
感知机学习算法基于随机梯度下降法的对损失函数的最优化算法,算法简单易实现,分原始形式和对偶形式。一次选取一个误分类点时期梯度下降。
训练数据集线性可分的时候,感知机学习算法收敛,且存在无限多个解,因初值不同或迭代顺序不同而得到不同的解。