第二章 感知机
感知机是二类分类的线性分类模型,输入为特征向量,输出为实例的类别,感知机对应于输入空间(特征空间)中将
实例划分为正负两类的超平面
2.1感知机模型
假设输入空间(特征空间)是
x⊆Rn
,输出空间为
y=+1,−1
,由输入空间到输出空间的如下函数:
f(x)=sign(w⋅x+b)
称为感知机,其中
w
和
b
为感知机模型参数
w∈Rn
叫做权值或者权向量,
b∈R
叫做偏置,
w⋅x
表示
w
和
x
的内积
sign
是符号函数:
sign(x)=⎧⎩⎨+1,−1,x≥0x<0
感知机的解释:
线性方程
w⋅x+b=0
对应于特征空间
Rn
中的一个超平面
S
,其中
w
为超平面的法向量,
−b||w||
为原点到超平面的距离,这个超平面将特征空间划分成两个部分
2.2感知机学习策略
2.2.1
数据集为线性可分数据集
2.2.2
选择损失函数为误分类点到超平面
S
的总距离,特征空间中任意一点
x0
到超平面
S
的距离:
1||w|||w⋅x0+b|
这里的
||w||
是
w
的
L2
范数
对于误分类的数据
(xi,yi)
来说:
−yi(w⋅xi+b)>0
成立,那么误分类点
xi
到超平面
S
的距离:
−1||w||yi(w⋅xi+b)
假设超平面
S
的误分类点集合为
M
,那么所有误分类点到超平面的总距离:
−1||w||∑xi∈Myi(w⋅xi+b)
不考虑
1||w||
得到在给定数据集:
T={(x1,y1),(x2,y2),⋯,(xN,yN)}
其中
xi∈Rn
,
yi∈{+1,−1}
,
i=1,2,⋯,N
感知机的损失函数为:
L(w,b)=−∑xi∈Myi(w⋅xi+b)
2.3感知机学习算法
求解感知机参数也就是损失函数极小化的问题:
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
进行更新:
w←w+ηyixi
b←b+ηyi
其中
η
为学习速率
算法流程
输入:训练数据集
T={(x1,y1),(x2,y2),⋯,(xN,yN)}
其中
xi∈Rn,yi∈{+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⋅xi+b)≤0
w←w+ηyixi
b←b+ηyi
(4)跳转至(2)直至训练集中没有误分类点