感知机

匿名 (未验证) 提交于 2019-12-03 00:29:01

感知机是一个二类分类的线性分类模型。所谓二类分类就是它只能将实例分为正类和负类两个类别。那么为什么是线性分类模型呢,我的理解是感知机学习旨在求出可以将数据进行划分的分离超平面,而分离超平面的方程:

为线性方程,所以感知机为线性分类模型。

模型如下图所示:


sign(x)={+1,x≥0

由此我们可以得到由输入空间到输出空间的函数

感知机学习的目的就在于确定参数w和b的值。

给定一个线性可分的数据集:
T={(x1,y1),(x2,y2),...(xN,yN)}

为了确定感知机模型的参数w和b,需要确定一个学习策略,即定义一个损失函数并将损失函数极小化。感知机采用的损失函数为误分类点到超平面的总距离。首先写出输入空间Rn中任一点x0到分离超平面的距离:
1w|wx0+b|

这里wwL2范数。

其次对于误分类的数据(xi,yi)来说,yi(wxi+b)>0
因为当wxi+b>0,yi=1,而当 wxi+b<0,yi=+1,
因此误分类点x_i到超平面的距离是:
1wyi(wxi+b)

这样假设误分类点的集合为M,那么所有误分类点到超平面的总距离为:
1wxiMyi(wxi+b)

不考虑1w,就得到感知机学习的损失函数
L(w,b)=xiMyi(wxi+b)

显然,损失函数L(w,b)是非负的。如果没有误分类点,损失函数值为0,而且,误分类点越少,误分类点离超平面越近,损失函数的值越小。 感知机学习的策略是在假设空间中选取使损失函数最小的模型参数w,b

感知机学习算法是误分类驱动的,具体采用随机梯度下降法。首先,任意选取一个超平面w0,b0,然后用梯度下降法不断地极小化损失函数。极小化过程中不是一次使M中所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降。损失函数L(w,b)的梯度为:
wL(w,b)=xiMyixi
bL(w,b)=xiMyi
随机选取一个误分类点(xi,yi),对w,b进行更新:
ww+ηyixi
bb+ηyi

综上所述,得到如下算法(感知机学习算法的原始形式)
输入:训练集T=(x1,y1),(x2,y2),...(xN,yN),其中xiX=RnyiY=(+1,1)i=1,2,3,...N;学习率η(0<η1)
输出:w,b;感知机模型f(x)=sign(wx

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!