感知机 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进行更新。

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

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

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

 

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

你可能感兴趣的:(tr)