感知机算法
一、感知机模型
1.1 感知机
假定输入空间(特征空间)是 χ⊆Rn ,输出空间是 Y={+1,−1} .输出 x∈Y 表示实例的类别。有输入空间到输出空间的函数定义为感知机:
f(x)=sign(w∗x+b)
其中,w∈Rn为权值或权值向量,b∈Rn叫做偏置。sign 叫做符号函数。即
sign(x)=+1,x>=0;−1,x<0
感知机是一种线性分类器模型,属于判别模型。感知机的假设空间是定义在特征空间中的所有线性分类模型或线性分类器,即函数集合{f|f(x)=w∗x+b}.
感知机学习就是由训练数据集(样本的特征向量及其对应的类别标签)求得感知机模型的 w,b 参数。
感知机预测就是通过学得的感知机模型,对于新的输入样本给出其对应的类别标签。
1.2 感知机几何解释
线性方程 w∗x+b=0 对应于特征空间 Rn 中的一个超平面 S,其中 w是超平面的法向量,b 是超平面的截距。这个超平面将特征空间分为两部分。位于两部分的点(特征向量)分别被分为正、负两类。因此超平面S也被称为分离超平面。

二、感知机学习策略
2.1 数据集线性可分性
线性可分性的定义:给定一个数据集
T={(x1,y1),(x2,y2),...,(xN,yN)},其中xi∈X=Rn,yi∈Y={+1,−1},i=1,2,...,N,如果存在某个超平面S:w∗x+b=0 能够将数据集的正样本点和负样本点完全正确的划分到超平面的两侧,即对所有样本i:yi=+1有w∗xi+b>0,对所有样本i:yi=−1 ,有 w∗xi+b<0.
不满足以上条件,则称数据集 T 线性不可分。
2.2 感知机学习策略
假定训练集线性可分,感知机学习目标是求得一个能够将训练集正、负样本点完全正确分开的分离超平面。为找出这样的超平面,即确定感知机模型参数 w,b ,需要确定一个学习策略,即定义(经验)损失函数极小化。
损失函数的一个自然选择是误分类点的总数。另一个合适的选择是误分类点到超平面S 的总距离,这是感知机采用的。
首先定义输入空间的一点x0∈Rn到超平面S的距离:
1||w|||w∗x0+b| , 其中 ||w||是其L2范数
对于误分类点 (xi,yi) 有
−yi(w∗x+b)>0 成立
误分类点 (xi,yi) 到超平面 S 的距离为:
−1||w||yi(w∗xi+b)
这样超平面S的误分类点集合M里所有元素道超平面的总距离为:
−1||w||∑xi∈Myi(w∗xi+b)
不考虑前面的分子,就得到感知机学习的损失函数。
给定训练数据集
T={(x1,y1),(x2,y2),...,(xN,yN)},其中xi∈X=Rn,yi∈Y={+1,−1},i=1,2,...,N
感知机f(x)=sign(w∗x+b) 学习的损失函数定义为
L(w,b)=−∑xi∈Myi(w∗xi+b)
其中M 为误分类点的集合,这个损失函数就是感知机学习的经验风险函数。损失函数是非负的。一个特定样本点在误分类时是参数w,b的线性函数,在正确分类时是0。感知机的学习策略就是在假设空间中选取使损失函数最小的w,b参数,即感知机模型。
三、感知机学习算法
感知机的学习问题被我们转化成了求解损失函数式的最优化问题,最优化的方法是随机梯度下降。
3.1 感知机学习算法的原始形式
感知机学习算法是对以下最优化问题——损失函数极小化问题的解
minw,bL(w,b)=−∑xi∈Myi(w∗xi+b)
感知机学习算法由误分类驱动,通过随机梯度下降法求解。
首先,任意选取一组参数(一个超平面) w0,b0 ,然后用梯度下降法不断地极小化目标函数。极小化过程并不是一次使用到所有的误分类点,而是随机选择一个误分类点使其梯度下降。
损失函数L(w,b)的梯度为
∇wL(w,b)=−∑xi∈Myixi
∇bL(w,b)=−∑xi∈Myi
随机选取一个误分类点(xi,yi),对w,b 沿负梯度方向进行更新:
wnext←wcurrent+ηyixi
bnext←bcurrent+ηyi
其中η是学习率,通过迭代可以使损失函数逐轮减小(可能也和设置的学习率有关,或许会出现震荡的现象)。
感知机学习算法
输入:训练数据集
T={(x1,y1),(x2,y2),...,(xN,yN)},其中xi∈X=Rn,yi∈Y={+1,−1},i=1,2,...,N;学习率η(0<η<=1);
输出:
w,b,f(x)=sign(w∗x+b)
(1)选取初值w0,b0
(2)在训练集中选取数据(xi,yi)
(3)如果yi(w∗x+b)<=0
wnext←wcurrent+ηyixi
bnext←bcurrent+ηyi
(4)转至(2),直到训练集中没有误分类点
感知机学习算法的解释
当一个样本点被误分类时,即位于分离超平面的错误一侧时,则调整 w,b 的值,使分离超平面向该误分类样本点的一侧移动,以减少该误分类点与超平面间的距离,直至超平面越过该分类点并使其被正确分类。
3.2 感知机学习算法的对偶形式
对偶形式基本思想:将w,b 表示为实例xi和yi 的线性组合的形式,通过求解其系数而求得w,b。假设初始值w0,b0 均为0.对误分类点(xi,yi)通过
wnext←wcurrent+ηyixi
bnext←bcurrent+ηyi
逐步修改w,b,设修改n次,则w,b 关于(xi,yi) 的增量分别是αiyixi和αiyi,这里αi=niη.这样从学习过程不难看出,最后学习到的w,b 可分别表示为
w=∑Ni=1αiyixi
b=∑Ni=1αiyi
这里,αi>=0,i=1,2,...,N,当η=1时,表示第i个实例点由于误分而进行更新的次数。实例点更新次数越多,意味着它距离超平面越近,也就越难正确分类。这样的实例对学习结果影响最大。
感知机学习算法的对偶形式
输入:训练数据集
T={(x1,y1),(x2,y2),...,(xN,yN)},其中xi∈X=Rn,yi∈Y={+1,−1},i=1,2,...,N;
学习率η(0<η<=1);
输出:α,b ; 感知机模型f(x)=sign(∑Nj=1αjxjyj∗x+b)
其中α=(α1,α2,...,αN)T
(1)α←0,b←0
(2)在训练集中选取数据(xi,yi)
(3)如果yi(∑Nj=1αjyjxj∗xi+b)<=0
αi←αi+η
b←b+ηyi
(4)转至(2)直到没有误分类数据。
对偶形式中训练实例仅以内积的形式出现。可以预先将训练集中实例间的内积计算出来并以矩阵的形式存储,这个矩阵就是所谓的 Gram矩阵。
G=[xi⋅xj]N×N
补充
可以发现原始方法参数数量与每个训练样本特征维数n相关,
对偶方法参数数量与训练集中样本数目N相关。
两种方法得到的参数不一定完全一致,但是效果接近。
所以在选择训练方法时我们需要考虑样本数与样本特征维度的关系,否则保存最终训练的模型的文件大小可能相差非常大。