感知机是二分类的线性分类模型,1957年由Rosenblatt提出,是神经网络与支持向量机的基础。总的来说,其具有以下特性:
1)输入为实例的特征向量,输出为实例的类别,取+1和-1;
2)感知机对应于输入空间中将实例划分为正负两类的分离超平面,属于判别模型;
3)导入基于误分类的损失函数,并利用梯度下降法对损失函数进行极小化;
4)感知机学习算法具有简单而易于实现的优点,分为原始形式和对偶形式。
1.感知机模型
定义(感知机): 假设输入空间(特征空间)是,输出空间是
。输入
表示实例的特征向量,对应于输入空间(特征空间)的点,输出
表示实例的类别,由输入空间到输出空间的函数:
称为感知机。
模型参数:w,x,内积,权值向量,偏置;其中符号函数定义如下:
2. 感知机的学习策略
感知机的(经验)损失函数定义为误分类点到分类超平面的总距离。
其中,空间中任意一点X0到分类超平面距离的公式推导见补充内容。
于是,可得感知机损失函数为:
其中,M为误分类点的数目。
显然,损失函数为非负的。若没有误分类点,则损失函数为0。并且,误分类点越少,误分类点距离分类超平面越近,则损失函数越小。
3. 感知机学习算法
感知机学习问题转化为求损失函数的最优化问题,最优化的方法为随机梯度下降法(SGD)。
SGD算法的原理是:
假设误分类点集合M是固定的,则损失函数L的梯度则由以下公式给出(分别对w和b求偏导):
每次分错一个样本,便采用该样本进行梯度更新。随机选取一个误分类样本,对w和b进行更新:
如下图所示,随机梯度下降法原理是朝着与梯度相反的方向更新,使得损失函数更加接近最小值。
感知机学习算法的原始形式:
以上这种算法直观上的解释为:当一个实例点被误分类,即位于分类超平面的错误一侧时,则调整w,b的值,使得分类超平面向该误分类点的一侧移动,以减少该误分类点与超平面间的距离,直至超过该误分类点使得其被正确分类。
补充:感知机模型中,空间中任意一点到超平面距离的推导
在感知机模型中,输入空间中任意一点 到超平面S的距离:
其推导过程如下:
References
[1] 《统计学习方法》,李航著,清华大学出版社
[2] https://blog.youkuaiyun.com/qq_22709065/article/details/71170559