感知机

感知机作为二分类的判别模型,通过寻找最佳分离超平面实现线性分类。其学习策略涉及误分点的损失函数最小化,采用随机梯度下降法更新权重w和偏置b。当样本线性可分时,算法能够收敛;否则无法收敛。此外,感知机的对偶形式简化了计算,并通过Gram矩阵加速。迭代过程中,不断调整参数,直至所有样本点正确分类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 概述

感知机可以看成是一种判别模型,适用于二分类的问题。它需要在给定样本点的基础上学习出来一个分离超平面,将已知的样本点分开。感知机是学习支持向量机的基础,因为两者基本上的思想是相似的,都是通过间隔最小化来实现的。

  1. 学习策略

通过给定的样本数据,学习得来一个分离超平面wx+b=0,使得这个平面可以很好的区分数据。对所有的数据分为正例点yi = +1和负例点yi = -1,即wx+b < 0,则yi = -1,wx+b >0,则yi = +1。这个是一些假设的前提。前面也说了是通过间隔最小化实现的,所以下面:

首先给出空间中点到直线的距离公式:

这个是空间距离,下面给出函数间隔:

对于所有的分类正确的点来说, ,|| = ,但是对于所有的误分点来说,,所以|| = 。所以对于误分点来说点到直线的距离为,所以所有误分点到分离超平面的距离为,这里不考虑,因为w是不断迭代的,对于计算过程中的每个w,我们都要重新计算其误分点的距离,所以这个w在当前情况下,都是一样的,所以只计算分子部分即可。即得到损失函数,所以我们的目标就是要最小化上面的损失函数。

 

怎么理解这个函数:由于我们是基于误分点计算的损失函数,所以对于非误分点来说,我们不考虑。对于误分点来说,所以我们要最小化所有误分点的和,从而是损失降到最小,即L(w,b)最小。接下来就涉及到求极值的问题。

由于这里的w和b都是未知数,所以我们分别对w和b求导,得到下面公式:

我们知道对函数中所有的未知数求一阶导数是梯度的概念,梯度是函数值增长最快的方向,而我们这里求的是最小值,所以函数的增长方向是与梯度相反的。所以得到w和b的迭代公式:

其中η是步长,即每次w和b下降的幅度,专业的说法叫学习率。

 

  1. 算法过程

算法采用的是随机梯度下降法。首先要给定步长η,这个是自定义的量。

初始化一个w和b的值,然后随机选取一个点,看是否能对改点进行正确分类。如果不能够正确分类,就按照上面的迭代方式对w和b进行更新,直到改点可以进行正确分类,然后再选取下一个点。依此迭代下去,直到所有的样本点都能够正确分类。

  1. 特点

感知机算法的对象必须是线性可分的,就是一定能够找到一个分离超平面将所有的点分开,如果样本点不是线性可分的,那么以上的算法就不能够收敛。

  1. 对偶形式

根据上面的w和b的迭代过程,我们可以看出其过程就是逐步修改w,b,设修改b次,则w,b关于(xi,yi)的增量分别是aiyixi(i为下标)和aiyi,其中ai =niη,所以可以简化为下面的形式:

得到的感知机模型为:

对于误分的条件为

表达式中有x的內积形式,所以在计算之前,我们可以先计算出来Gram矩阵,就是x的值两两相乘,得到一个N*N的矩阵,可以方便计算。

对于误分条件,我们要更新ai和b的值,更新方式如下:

首先初始化a和b都是0,去第一个x,计算如果是误分,则按照上面方式更新ai的值,直到分类正确,记下来选取第二个值,同样的方法更新对应的ai,在迭代过程中,如果之前的值没有分类正确,就需要继续更新之前的值;若得到到a2时,之前的a1已经是确定好的,但是现在发现更新a2后,第一个点不能正确分类了,这时候就需要继续更新a1的值。。。。一次迭代,直到所有的点都能够正确分类;最后得到一组a的集合,在将其带入到公式中求得w和b,得到最终结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值