感知机是二类分类的线性分类模型(判别模型)。输入为实例的特征向量,输出类别取值+1或-1。
一、感知机函数
其中,w为权值向量,b为偏置。
二、感知机学习的损失函数
假设数据集是线性可分的,感知机学习的目标是找出将数据集中正实例和负实例完全分开的分离超平面。那么对于上述的函数来说,我们的目的就是求得w和b的参数值,这样我们就能够确定最终的函数从而得到这个超平面。
如何去求w和b呢?我们想把正负实例点正确的分到超平面两侧,如果有错误分类的点出现我们又怎样去衡量它呢?为解决这两个问题,我们需要思考如何建立模型的损失函数。对于点和面来说,我们最容易想到的关联关系就是点到面的距离,因此我们将数据集中任意一点到超平面的距离公式化如下:
(
是w的二范式)
但仅仅这样还不能够被用作损失函数,因为我们想得到的是所有错误分类的点的损失,所以我们再次重新审视数据集,很容易发现它们的类别标签不是+1就是-1。也就是说如果模型预测错误,那么预测的类别将和它实际类别异号。故所有误分类的点一定满足下式:
就此,我们得到感知机模型的损失函数。
三、感知机学习算法的思想
为了极小化损失函数从而得到分离超平面,感知机算法使用梯度下降方法随机选取一个误分类点使其梯度下降。
输入:训练数据集,学习率
输出:
- 选取初值
- 从训练集中选取一个实例点
- 如果
:
- 转至第二步i,直至训练集中没有误分类点
感知机算法的对偶形式:
其思想是将w和b表示为实例和类别
的线性组合形式,然后通过求解其系数而得到w和b。那么假设w已经更新了n次,设
,从而我们便能够使用下述式子代替之前的w和b:
输入:训练数据集,学习率
输出:
- 选取初值
- 从训练集中选取一个实例点
- 如果
:
- 转至第二步i,直至训练集中没有误分类点