感知机
感知机是是二分类线性分类模型,输入为实例的特征向量,输出为实例类别(−1,+1)。
感知机模型
感知机模型属于判别模型,目标是求出将训练样本进行线性划分的分离超平面。
- 感知机
假设输入空间(特征空间)为X,输出空间是Y,x∈X是每个实例的特征向量,则从输入空间到输出空间的映射为:
f(x)=sign(w⋅x+b)
也称之为感知机。其中w,b为模型参数,w是特征属性的权值向量,b为偏置项,sign函数为
sign(x)={+1x≥0−1x<0
- 感知机的几何解释
线性方程w⋅x+b=0对应特征空间中的一个超平面S,其中w是超平面的法向量,b是超平面的截距,如下图所示:
感知机学习策略
数据集的线性可分性
前面我们已经说过了,感知机处理数据的两个特性:二分类、线性。所以我们先来看一下数据的线性可分性。
- 数据的线性可分性
对于一个数据集T={(x1,y1),(x2,y2),⋯,(xN,yN)},其中xi∈X,yi∈Y={−1,+1}【体现了二分类】,i=1,2,⋯,N,如果存在一个超平面S
w⋅x+b=0
能够将聚集的正实例和负实例完全正确地划分,则称数据集为线性可分的,否则则是不可分的。
感知机学习策略
为了找到超平面,需要确定感知机模型参数w,b,需要一个学习策略,也就是所谓的定义并最小化(经验)损失函数。
- 损失函数的选择有两种:
-
误分类点的总数 (此损失函数关于w,b参数不是连续可导的)
- 误分类点到超平面S的总距离
- 损失函数的定义
-
L2范数:向量各元素的平方和然后求平方根,用∥∥表示。
- 推导过程
- 空间中任意点x0到平面S的距离:∥w∥1∣w⋅x0+b∣
- 对误分类的点(xi,yi)则有:−yi(w⋅xi+b)>0
【因为被误分类,所以yi与(w⋅xi+b)必然异号,所以yi(w⋅xi+b)<0,−yi(w⋅xi+b)>0】
- 误分类点xi带S的距离为:−∥w∥1yi(w⋅xi+b)
- 所有误分类点到超平面S的总距离为
−∥w∥1xi∈M∑yi(w⋅xi+b)
- 感知机学习的损失函数
不考虑∥w∥1,就得到感知机学习的损失函数:
L(w,b)=−xi∈M∑yi(w⋅xi+b)
其中M为误分类点的集合。
感知机学习算法
- 感知机学习算法
- 感知机学习算法的目标是(误分类驱动):
w,bminL(w,b)=−xi∈M∑yi(w⋅xi+b)
- 具体算法
- 随机梯度下降法:任取超平面w0,b0,然后每次从M中每次随机选择一个点进行梯度下降。
- 假定误分类点集合M固定,则L(w,b)的梯度为
∇wL(w,b)=−xi∈M∑yixi
∇bL(w,b)=−xi∈M∑yi
- 随机选取一个误分类点(xi,yi),对w,b进行更新
w←w+ηyixi
b←b+ηyi
其中η(0<η≤1)是步长,在统计学习中又称为学习率。
- 通过迭代可以期待损失函数L(w,b)不断减小,直到为0。
【直观上说:当一个实例点被误分类则调整平面以减少该点到平面的距离,知直到全部分类正确】
不同的初值或选取不同的误分类点,解可以不同。

参考文献
《机器学习》
《统计学习方法》