感知器学习笔记

感知器学习笔记

感知器(Perceptron) 是一种用于线性可分数据集的二类分类器算法。这种算法的局限性很大:

  1. 只能将数据分为 2 类
  2. 数据必须是线性可分的

虽然有这些局限,但是感知器是 ANN 和 SVM 的基础,理解了感知器的原理,对学习ANN 和 SVM 会有帮助,所以还是值得花些时间的。

感知器可以表示为 f:RN{1,1} 的映射函数。其中 f 的形式如下:

f(x)=sign(w.x+b)

其中, w b 都是 N 维向量,是感知器的模型参数。感知器的训练过程其实就是求解w b 的过程。正确的 w b 所构成的超平面 w.x+b=0 恰好将两类数据点分割在这个平面的两侧。

感知器的训练算法

误分类的点 (xi,yi) ,则 xi 距离超平面的距离为:

1||w|||wxi+b|

,其中 ||w|| w L2 范数。

由于 |yi|=1 ,因此上式恰好等于

yi(wxi+b)||w||

定义损失函数为所有误分类数据点到超平面的距离之和。

L0(w,b)=1||w||xiMyi(wxi+b)

如果没有误分类点,则 L(w,b)=0 。感知器的训练算法就是求取使得 L(w,b)=0 w b

大多数教科书上给出的感知机 sign(wx+b) 学习的损失函数定义为:

L(w,b)=xiMyi(wxi+b)

可以看到这个定义去掉了分母的 ||w|| 。当 ||w||0 时, L0(w,b)=0 L(w,b)=0 是等价的。而感知器的训练算法可以保证最终求得的 w 满足条件 ||w|| 。所以这样定义损失函数倒也没有问题。

感知机学习算法

1.感知机学习算法的原始形式:

训练集:

T={(x1,y1),(x2,y2),,(xN,yN)},xiRn,yi{+1,1}

,求参数 w,b ,使得
minw,bL(w,b)=minw,bxiMyi(wxi+b)

- 假设误分类点集合 M 是固定的,则损失函数 L(w,b) 的梯度由:
wL(w,b)=xiMyixibL(w,b)=xiMyi

这两个梯度给出的是损失函数增长的方向。后面使用时需用反方向。

  • 梯度下降法:随机选取一个误分类点 (xi,yi) ,对 w,b 进行更新:
    ww+η.yixibb+η.yi

    其中 η(0,1] 是学习率。通过迭代可以使得损失函数 L(w,b) 不断减小直到 0。

可以证明,如果数据是线性可分的,那么这种算法是收敛的。也就是说经过有限步迭代,会求出能够正确分类的 w,b

除了原始算法外,感知器还有所谓的对偶形式。这里就不多介绍了。需要进一步了解的可以参考李航写的《统计学习方法》一书。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值