感知机算法原理及推导

编程入门 行业动态 更新时间:2024-10-26 08:22:18

感知机<a href=https://www.elefans.com/category/jswz/34/1770096.html style=算法原理及推导"/>

感知机算法原理及推导

感知机(Perceptron)是二分类问题的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1二值。

感知机于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型。感知机于1957年由Rosenblatt提出,是神经网络和支持向量机的基础。

在这里,不用《统计学习方法》书中的变量表示方式,我们用表示数据集,一共个样本,个维度,用表示数据集中的第个样本,用表示标记(类别)向量,代表第个样本的标记。

我们将要学习的目标函数是:

称为感知机。其中,和为感知机模型参数,为权值向量,叫作偏置(bias),表示和的内积。是符号函数,即:

所以,在这里,根据上式可知时为分类的边界(超平面)。

对于数据集,如果能够将数据集的正负样例完全正确地划分到超平面的两侧,即对于所有的实例有,对于所有的实例有,则称这个数据集为线性可分的数据集,否则数据集线性不可分。

假设数据集是线性可分的,感知机的学习目标是求得一个能够将训练集正负样例能够完全分开的超平面。找出这样的超平面,其实就是要确定感知机的模型参数和。所以我们首先要定义损失函数,再将其最小化。

感知机的损失函数是针对误分类的点,最小化误分类的点到超平面的距离,不断进行调整。

对于输入空间的任一一个样例,所要计算的距离就是这个点到的距离。

根据点到直线的距离公式:

代入其中,可以得到:

进一步,进行简化约等,可以得到如下式子:

其中,是的范数。

对于误分类的样例来说,成立。所以误分类的点到超平面的距离为:

假如对于所有的误分类点集合为,那么所有的误分类点到超平面的总距离为:

不考虑,就得到了感知机的损失函数:

显然,损失函数是非负的,如果没有误分类的点,损失函数的值为0。并且,误分类点越少,误分类点离超平面越近,损失函数越小。所以对于完全线性可分的数据集,当损失函数为0时,即达到了完全正确分类。

这个损失函数可以用梯度下降法来解,对于和的梯度用偏导可以直接求出来,具体过程不再赘述。

感知机学习策略

给定一个线性可分的数据集

T={(x1,y1),(x2,y2),...(xN,yN)} 其中 xi∈X=Rn , yi∈Y={+1,−1} , i=1,2,3,...N 。
为了确定感知机模型的参数 w 和 b ,需要确定一个学习策略,即定义一个损失函数并将损失函数极小化。感知机采用的损失函数为误分类点到超平面的总距离。首先写出输入空间 Rn 中任一点 x0 到分离超平面的距离 1∥w∥|w⋅x0+b| 这里 ∥w∥ 是 w 的 L2 范数。
其次对于误分类的数据 (xi,yi) 来说, −yi(w⋅xi+b)>0 因为当 w⋅xi+b>0 , yi=−1 ,而当 w⋅xi+b<0 , yi=+1 。因此误分类点 xi 到超平面的距离是 −1∥w∥yi(w⋅xi+b) 这样假设误分类点的集合为M,那么所有误分类点到超平面的总距离为 −1∥w∥∑xi∈Myi(w⋅xi+b) 不考虑 1∥w∥ ,就得到感知机学习的损失函数 L(w,b)=−∑xi∈Myi(w⋅xi+b) 显然,损失函数 L(w,b) 是非负的。如果没有误分类点,损失函数值为0,而且,误分类点越少,误分类点离超平面越近,损失函数的值越小。
感知机学习的策略是在假设空间中选取使损失函数最小的模型参数 w,b 。

感知机学习算法

感知机学习算法是误分类驱动的,具体采用随机梯度下降法。首先,任意选取一个超平面 w0,b0 ,然后用梯度下降法不断地极小化损失函数。极小化过程中不是一次使M中所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降。损失函数 L(w,b) 的梯度为

∇wL(w,b)=−∑xi∈Myixi ∇bL(w,b)=−∑xi∈Myi 随机选取一个误分类点 (xi,yi) ,对 w,b 进行更新: w←w+ηyixi b←b+ηyi 式中 η(0<η≤1) 是步长,在统计学习中又称为学习率。

综上所述,得到如下算法(感知机学习算法的原始形式)
输入:训练集 T={(x1,y1),(x2,y2),...(xN,yN)} ,其中 xi∈X=Rn , yi∈Y={+1,−1} , i=1,2,3,...N ;学习率 η(0<η≤1) ;
输出: w,b ;感知机模型 f(x)=sign(w⋅x+b)
(1)选取初值 w0,b0
(2)在训练集中选取数据 (xi,yi)
(3)如果 yi(w⋅xi+b)≤0

w←w+ηyixi b←b+ηyi (4)转至(2),直至训练集中没有误分类点。

例子:如图所示,正实例点是 x1=(3,3)T,x2=(4,3)T ,负实例点是 x3=(1,1)T ,使用感知机算法求解感知机模型 f(x)=sign(w⋅x+b)


更多推荐

感知机算法原理及推导

本文发布于:2024-02-12 17:44:21,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1688771.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:算法   原理

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!