感知机
感知机是二分类的线性分类模型,输入为实例的特征向量,输出为实例的类别(取+1和-1)。感知机对应于输入空间中将实例划分为两类的分离超平面。感知机旨在求出该超平面,为求得超平面导入了基于误分类的损失函数,利用梯度下降法对损失函数进行最优化(最优化)。感知机的学习算法具有简单而易于实现的优点,分为原始形式 和 对偶形式。感知机预测是用学习得到的感知机模型对新的实例进行预测的,因此属于判别模型。感知机是一种线性分类模型,只适应于线性可分的数据,对于线性不可分的数据模型训练是不会收敛的。
感知机模型
假设输入空间(特征向量)是 x∈Rn
输出空间为 Y={−1,+1},输入 x∈X表示表示实例的特征向量,对应于输入空间的点,输出 y∈Y
表示实例的类别,则由输入空间到输出空间的表达形式为:
f(x)=sign(w⋅x+b)
该函数称为感知机,其中w和b 称为模型的参数,w∈Rn称为权值,b 称为偏置,w⋅x 表示 w和x 的内积
这里
sign(x)={+1,x>0−1,x<0
如果我们将sign称之为激活函数的话,感知机与logistic regression的差别就是感知机激活函数是sign,logistic regression的激活函数是sigmoid。sign(x)将大于0的分为1,小于0的分为-1;sigmoid将大于0.5的分为1,小于0.5的分为0。因此sign又被称为单位阶跃函数,logistic regression也被看作是一种概率估计。
在神经网络以及DeepLearning中会使用其他如tanh,relu等其他激活函数。
感知机的学习策略
如下图: 线性可分数据集
对于一个给定的线性可分的数据集,如上面的数据点,红色代表正类,蓝色代表负类,感知机的主要工作就是寻找一个线性可分的超平面 S:{w⋅x+b=0}
, 该超平面能够将所有的正类和负类完全划分到超平面的两侧。而这就是上图中的红色直线,也就是说,感知机算法实际上就是找一条直线将数据集进行正确划分。
如果数据集可以被一个超平面完全划分,则称该数据集是线性可分的数据集,否则称为线性不可分的数据集,如下图:
非线性可分数据集
感知机分类效果:
logistic regression分类效果:
为了寻找上面那条能够将数据集完全划分的超平面 S:w⋅x+b=0
我们需要确定一个学习策略,也就是常说的loss function 以及梯度下降法迭代求解。
为了使用梯度下降法求解 w和b
,我们的loss function必须是 w和b 的连续可导函数,因此可以选择loss function为:误分类点到超平面 S 的总距离。令输入 x0 到超平面 S 的距离为 1||w|||w⋅x0+b| ,其中 ||w|| 为 w 的L2
范数。
对误分类点(xi,yi)
来说,有 −yi(w⋅xi+b)>0
,则可得loss function为:
L(w,b)=−1||w||∑xi∈Myi(w⋅xi+b)
测重点讲下损失函数【
1.损失函数
根据w与b,定义一个损失函数,并使得损失函数最小化。首先,Rn空间中任意一点x0
到超平面的距离为
1||w|||ωx0+b|
学习过程中,当点发生错误分类时,yi与(ωx0+b)的符号相反,且其乘积为1。那么假设超平面S的所有错误分类的点的集合为M,那么所有错误分类的点到超平面的距离总和为
−1||ω||∑xi∈Myi(ωxi+b)
不考虑||ω||,即得到了感知机学习的损失函数。对于给定的训练集T={(x1,y1),(x2,y2)...(xN,yN)}感知机sign(ωx+b)学习的损失函数定义为
L(ω,b)=−∑xi∈Myi(ωxi+b)
显然,损失函数是非负的,并且错误分类的点越少,错误分类的点离超平面的距离越小,损失函数的值越小。一个特定的样本点的损失函数,错误分类时是ω,b的线性函数,在正确分类时是0,因此,损失函数是ω,b的连续可到函数。
】
感知机学习算法及对偶形式【
1.原始形式
对于给定的训练集T={(x1,y1),(x2,y2)...(xN,yN)}求解参数ω,b
是损失函数极小化。
minω,bL(ω,b)=−∑xi∈Myi(ωxi+b)
采用随机梯度下降算法,首先确定一个初始值,损失函数的梯度表示为:
∇ωL(ω,b)=−∑xi∈Myixi
∇bL(ω,b)=−∑xi∈Myi
则根据梯度下降规则, 当出现一个错误分类点时,更新ω=ω+ηyixi, b=b+ηyi其中η为学习率,通过迭代使得损失函数L(ω,b)不断减小,直至为零。
2.对偶形式
更新ω=ω+ηyixi
,b=b+ηyi其中η为学习率。逐步修改参数的过程中,易知对于一个点(xi,yi),其对参数的增量分别是αiyixi与αiyi,这里的αi=niη
.
则有
ω=∑i=1Nαiyixi
b=∑i=1Nαiyi
感知机的模型可表述为f(x)=sign(∑Nj=1αjyjxjx+b)其中α=(α1,α2...αN)T
对于一个实例(xi,yi)如果yi∑Nj=1αjyjxjx+b<=0即发生错误分类时,更新αi=αi+η, b=b+ηyi
在算法过程中,涉及到计算xixj,可以预处理Gram矩阵存储任意两个训练实例向量的内积。
感知机作为一个二分类线性分类器,同时也是支持向量机和神经网络的基础,可以推广到多分类和非线性分类。
】
感知机的对偶形式
基本思想:
将 w
和 b 表示为实例 xi 和标记 yi线性组合的形式,通过求解其系数而求得 w、b 。假设 w0,b0为0,对误分类点(xi,yi)
通过
w=w+ηyixi
b=b+ηyi
逐步修改 w,b
,设修改 n 次,则 w,b 关于(xi,yi) 的增量分别为 αiyixi 和 αiyi, 其中αi=niη ,则最后学习到的 w,b
可以分别表示为
w=∑i=1Nαiyixi
b=∑i=1Nαiyi
这里,αi≥0,=1,2,⋯N
, αi=niη ,ni 的意义是样本 i 被误分的次数,所以当 η=1 时,表示第 i 个样本由于被误分而更新的次数,实例点更新次数越多,表明它距离分离超平面越近,也就越难正确分类。