感知机算法
一、感知机模型
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
,其中
二、感知机学习策略
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 感知机学习策略
假定训练集线性可分,感知机学习目标是求得一个能够将训练集正、负样本点完全正确分开的分离超平面。为找出这样的超平面,即确定感知机模型参数
损失函数的一个自然选择是误分类点的总数。另一个合适的选择是误分类点到超平面
S
的总距离,这是感知机采用的。
首先定义输入空间的一点
对于误分类点
(xi,yi)
有
−yi(w∗x+b)>0
成立
误分类点 (xi,yi) 到超平面 S 的距离为:
这样超平面
S
的误分类点集合
−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
为误分类点的集合,这个损失函数就是感知机学习的经验风险函数。损失函数是非负的。一个特定样本点在误分类时是参数
三、感知机学习算法
感知机的学习问题被我们转化成了求解损失函数式的最优化问题,最优化的方法是随机梯度下降。
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=∑Ni=1αiyixi
b=∑Ni=1αiyi
这里, αi>=0,i=1,2,...,N ,当 η=1 时,表示第 i 个实例点由于误分而进行更新的次数。实例点更新次数越多,意味着它距离超平面越近,也就越难正确分类。这样的实例对学习结果影响最大。
感知机学习算法的对偶形式
输入:训练数据集
学习率 η(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 相关,
对偶方法参数数量与训练集中样本数目
两种方法得到的参数不一定完全一致,但是效果接近。
所以在选择训练方法时我们需要考虑样本数与样本特征维度的关系,否则保存最终训练的模型的文件大小可能相差非常大。