感知机(perception)是二分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1。感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型。
2.1 感知机模型
f(x)=sign(w⋅x+b)
w和b为感知机模型参数,w∈Rn叫做权重或权值向量,b∈R叫做偏置,w⋅x表示内积。
几何解释:
线性方程w⋅x+b=0对应于特征空间 Rn的一个超平面S,其中w是超平面的法向量,b是超平面的截距。这个超平面S将特征空间划分为正负两类样本的空间。S称为分离超平面。
线性可分性:如果存在某个超平面S能够将正实例点和负实例点完全正确地划分到超平面两侧,则数据集具有线性可分性。
定理(Novikoff):设训练数据集T={(x1,y1),(x2,y2),...,(xN,yN)}是线性可分的,其中xi∈X=Rn,yi∈Y={−1,+1},则:
(1)存在满足条件∣∣w^opt∣∣=1的超平面w^opt⋅x^=wopt⋅x+bopt=0将数据集完全正确分开;且存在γ>0,满足:
yi(w^opt⋅x^i)=yi(wopt⋅xi+bopt)⩾γ
(2)令R=max{∣∣x^i∣∣},则感知算法在训练数据集上的误分类次数k满足不等式:
k⩽(γR)2
2.2 感知机学习策略
对于误分类点(xi,yi), 当w⋅x+b>0时,yi=−1;当w⋅x+b<0时,yi=+1,所以有:
−yi(w⋅x+b)>0
误分类点(xi,yi)到超平面S的距离为:
d=−∣∣w∣∣yi(w⋅x+b)
设所有误分类点到超平面S的集合为M,则总距离(忽略∣∣w∣∣1) 为:
ds=−xi∈M∑yi(w⋅x+b)
因此,感知机sign(w⋅x+b)的损失函数定义为:
L(w,b)=−xi∈M∑yi(w⋅x+b)
即感知机学习的是经验风险最小化的损失函数(经验风险函数)。
2.3 原始形式的感知机学习算法
感知机学习算法是误分类驱动,采用随机梯度下降(SGD)算法。随机选取超平面(w0,b0),采用梯度下降算法最小化损失函数。对于误分类点(xi,yi),满足:yi(w⋅x+b⩽0),采用如下更新方式:
w的梯度计算:∇wL(w,b)=−∑xi∈Myixi;更新公式:w←w+ηyixi;
b的梯度计算:∇bL(w,b)=−∑xi∈Myi;更新公式:b←b+ηyi;
注:感知机学习由于采用不同的初值或选取不同的误分类点,解可以不同。由Novikoff定理可知,误分类次数k存在上界,经过有限次搜索可以找到将训练数据集完全分开的分离超平面,即当数据集线性可分时,感知学习算法是收敛的。为了得到唯一超平面,需要对超平面添加约束条件,即线性支持向量机。当训练数据集线性不可分时,感知机学习算法不收敛,迭代结果会发生振荡。
2.4 对偶形式的感知机学习算法
感知机模型:
f(x)=sign(j=1∑Nαjyjxj⋅x+b)
其中α=(α1,α2,⋯,αN)T,αi=niη,对于yi(∑j=1Nαjyjxj⋅xi+b)⩽0,采用如下更新公式:
w←w+ηyixi,最终学习的w=∑i=1Nαiyixi
b←b+ηyi,最终学习的b=∑i=1Nαiyi
为了方便,可以预定义并存储实例间内积矩阵,即Gram Matrix:G=[xi⋅xj]N×N。