感知机 perceptron

几天前一个同学问我感知机是啥?我随口就说,感知机还不简单,就是那种对线性可分的数据进行分类的分类器吗!然后发现自己很肤浅。还是需要总结一下吧!

一、感知机模型是一种要对线性可分的数据进行分类的一种分类器。产生于上世纪50年代,具有简单容易实现的特点。

$f(x)=sign(w*x+b)$

从数学我们知道w实际上就是这个超平面的法向量,b为截距。

对于所有的训练样本,如果为正类标记为+1,如果为负类标记为-1.

二、损失函数

所有误分类点到感知机超平面的距离之和, 定义为

$-\sum_{i \in M}y_{i}*(w*x_{i}+b)$

现在问题转化为了

$min_{w,b}L(w,b) = -\sum_{i \in M}y_{i}*(w*x_{i}+b)$

三、优化方法——随机梯度下降法

实际上上述损失函数可以看做关于w和b的一个线性多维函数,如果我们对w和b进行求导

$\nabla_{w}L(w,b) = -\sum_{i \in M}y_{i}*x_{i}$

$\nabla_{b}L(w,b) = -\sum_{i \in M}y_{i}$

 

我们知道随着梯度方向可以使损失函数下降最快,我们在这里随机选择一个误分类点,假设是$(x_{i},y_{i})$

我们对w和b进行更新。

那么应该想那个方向更新呢? 课本告诉我们是负梯度方向,为啥呢?我也解释不清楚,可以举个简单的例子

比如$y=x^{2}$

这里的梯度实际上就是导数了$2*x$

在x小于0的时候,这个值是小于零的,这是x坐标显然要向右移,即增大,所以应该减去这个负值

在x大于0的时候,这个值是大于零的,这是x坐标显然要向左溢,即减小,所以应该减去这个正值。

总结之,就是应该减去梯度。

上面的例子是对于极值是最小值的情况如果是最大值,我们会得到结果仍然是减去梯度,也就是加上负梯度。

 

$w=w+\alpha * y_{i}*x_{i}$

$b=b+\alpha * y_{i}$

算就可以这样设计,在更新完w,b之后再次计算误分类点,如果有随机找一个进行进一步的调整,最后一定会将所有的点正确分队,当然前提是数据是线性可分的,如果不可分会出现循环往复的情况,算法可能不会停止。

 

[1] “统计学习方法”,李航

转载于:https://www.cnblogs.com/deepblueme/p/4600054.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值