介绍
感知机1957年由Rosenblatt提出,是神经网络与支持向量机的基础,是二分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,去+1和-1二值。
感知机属于判别模型,旨在求出将训练数据进行线性划分的分离超平面。
感知机模型的求得是基于误分类的损失函数,利用梯度下降法对损失函数进行极小化。
感知机学习算法简单易于实现。
感知机模型
由输入空间到输出空间如下函数:
w和b w 和 b 为感知机模型参数;
其中,sign是符号函数,即:
感知机的几何解释为线性方程:
对应于特征空间中的一个超平面 S S ,其中是超平面的发向量, b b 是超平面的截距,这个超平面将特征空间划分为两个部分,位于两个部分的点分别被分为正、负两类。
![这里写图片描述](https://i-blog.csdnimg.cn/blog_migrate/fc72773b23d94dbf6d616fcf3b510b66.jpeg)
感知机学习,由训练数据集(实例的特征向量及类别),求得感知机模型,即求得模型参数;
感知机预测,通过学习得到的感知机模型,对新的输入实例给出其对应的输出类别。感知机学习策略
线性可分数据集:存在某个超平面S能够将数据集的正实例和负实例点完全划分到超平面的两侧,则称数据集为线性可分数据集;否则,线性不可分。
我们假设训练数据集是线性可分的,为了找出这样一个超平面,即确定感知机模型参数 w,b w , b ,需要确定一个学习策略,即定义(经验)损失函数并将损失函数极小化。
感知机所采用的损失函数是误分类点到超平面 S S 的总距离。
(1)任意一定到超平面 S S 的距离为:;这里 ||w|| | | w | | 是 w w 的范数。
(2)对于误分类点来说: −yi(w⋅xi+b)>0 − y i ( w · x i + b ) > 0 成立。
当 w⋅xi+b>0 w · x i + b > 0 时, yi=−1 y i = − 1 ,而当 w⋅xi+b<0 w · x i + b < 0 时, yi=+1 y i = + 1
(3)误分类点 xi x i 到超平面 S S 的距离是:
(4)假设超平面 S S 的误分类点集合为,那么所有误分类点到超平面 S S 的总距离为:
不考虑 1||w|| 1 | | w | | ,就得到感知机学习的损失函数。
L(w,b)=−∑xi∈Myi(w⋅xi+b) L ( w , b ) = − ∑ x i ∈ M y i ( w · x i + b )损失函数是非负的
如果没有误分类点,损失函数为0,误分类点越少,误分类点离超平面越近,损失函数越小感知机学习算法
至此,感知机学习问题就转化为了求解损失函数的最优化问题。使用方法:随机梯度下降法
任意选取一个超平面 w0,b0 w 0 , b 0 ,然后用梯度下降法不断地极小化损失函数。极小化过程中不是一次使 M M 中的所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降。
算法步骤:
输入:训练数据集,
其中 xi∈X=Rn,yi∈Y={−1,+1},i=1,2,...,N; x i ∈ X = R n , y i ∈ Y = { − 1 , + 1 } , i = 1 , 2 , . . . , N ; 学习率 η(0<η≤1); η ( 0 < η ≤ 1 ) ;
输出: w,b w , b ;感知机模型 f(x)=sign(w⋅x+b) f ( x ) = s i g n ( w · x + b )(1)选取初值 w0,b0 w 0 , b 0
(2)在训练集中选取数据 (xi,yi) ( x i , y i )
(3)如果 yi(w⋅xi+b)≤0 y i ( w · x i + b ) ≤ 0
w←w+ηyixi w ← w + η y i x i
b←b+ηyi b ← b + η y i(4)转至(2),直至训练集中没有误分类点。
算法解释:
当一个实例点被误分类,即位于分离超平面的错误一侧时,则调整 w,b w , b 的值,是分离超平面向该误分类点的一一侧移动,以减少该误分类点与超平面的距离,直至超平面超越过该误分类点使其被正确分类。
注意:
感知机学习算法由于采用不同的初值或选取不同的误分类点,解可以不同。感知机学习算法是基于随机梯度下降法对损失函数的最优化算法,算法简单易于实现。当训练数据集线性可分时,感知机学习算法是收敛的;感知机学习算法存在无穷多个解,其解由于不同的初值或不同的迭代顺序而可能有所不同。
参考书籍《统计学习分析》