美文网首页
感知机 perceptron

感知机 perceptron

作者: 三方斜阳 | 来源:发表于2021-03-22 17:12 被阅读0次

    参考书:《统计学习方法》李航

    简介:

    感知机是二类分类的线性分类模型,输入为实例的特征向量,输出为实例的类别,取 +1 和 -1 ,感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型。

    1. 数据线性可分:

    给定一个数据集:T={(x_{1} ,y_{1} ),(x_{2} ,y_{2}),...,(x_{N} ,y_{N})} 其中 y_{i} = (+1,-1),如果存在某个超平面 S: w*x+b=0 能够将数据集的正实例点和负实例点完全正确的划分到超平面的两侧,即:

    对所有的 y_{i}=+1,有  w*x+b>0, 对所有 y_{i}=-1,有  w*x+b<0

    那么数据集称为线性可分,否则为线性不可分。

    2. 损失函数:

    损失函数的选择定义为:误分类点到超平面的总距离。首先写出输入空间中任一点x_{0} 到超平面的距离:\frac{1}{||w||} |w*x_{0}+b |,插入一条,点到平面的距离:

                                        d=\frac{Ax_{1}+By_{1}+Cz_{1} +D  }{\sqrt{A^2+B^2+C^2 } }

    这个地方 ||w|| 是w 的 L_{2}  范数.

    对于误分类的点来说:-y_{i} (w*x_{i}+b)>0,例如,当 w*x_{i}+b=-2 (函数值要经过sign 变换才转为 +1,-1),但其真实标签是y_{i}=+1,真实值*预测值<0(异号),所以前面乘一个 -1,之后,变为 大于0:-y_{i} (w*x_{i}+b)>0

    因此,误分类点到超平面的距离为:-\frac{1}{||w||} y_{i} (w*x_{i}+b)

    于是所有误分类点到超平面的距离:-\frac{1}{||w||}\sum_{x_{i}\in M }^- y_{i} (w*x_{i}+b),M为误分类点的集合

    于是感知机的损失函数定义为:L(w,b)=-\sum_{x_{i}\in M }^- y_{i} (w*x_{i}+b)

    显然损失函数是非负的,如果没有误分类点,损失函数值是0,而且误分类点越少,误分类点离超平面距离越近,损失函数值越小.

    对损失函数的两个待训练参数分别求偏导:

    随机选择一个误分类点 (x_{i},y_{i} ),对 w,b进行更新:\eta 是步长又称为学习率,\eta \in [0,1]

                                w\leftarrow w+\eta y_{i} x_{i}

                                b\leftarrow b+\eta y_{i}

    这样通过迭代使得损失函数不断减小,直到为0

    下面是伪代码:

    简单实现代码:

    结果可视化图:

    推荐阅读:感知机(Perceptron)-----最详细记录感知机_m0_37957160的博客-CSDN博客_感知机

    相关文章

      网友评论

          本文标题:感知机 perceptron

          本文链接:https://www.haomeiwen.com/subject/ozazcltx.html