IT虾米网

感知机详解

shasha 2018年07月04日 程序员 115 0

感知机(perceptron)是二分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别。取+1和-1二值,感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型。感知机是为了求出将线性数据进行线性判别的分离超平面,为此,导入基于误分类的损失函数,利用梯度下降法对损失函数进行极小化,求得感知机模型。

1.感知机模型

假设输入空间是,输出空间是,x和y分属这两个空间,那么由输入空间到输出空间的如下函数:

称为感知机。其中,w和b称为感知机模型参数,叫做权值或权值向量,叫做偏置,w·x表示向量w和x的内积。sign是一个函数:

感知机的几何解释是,线性方程

将特征空间划分为正负两个部分:

这个平面(2维时退化为直线)称为分离超平面。

感知机学习,由训练数据集(实例的特征向量和类别):

其中,求得感知机模型,即求得模型参数w,b。感知机预测,通过学习得到感知机模型,对于新的输入实例给出其对应的输出类别。

2.感知机学习策略

数据集的线性可分性:

给定数据集

其中如果存在某个超平面S

能够完全正确地将正负实例点全部分割开来,则称T线性可分,否则称T线性不可分。

感知机学习策略

假定数据集线性可分,我们希望找到一个合理的损失函数。

一个朴素的想法是采用误分类点的总数,但是这样的损失函数不是参数w,b的连续可导函数,不可导自然不能把握函数的变化,也就不易优化(不知道什么时候该终止训练,或终止的时机不是最优的)。

另一个想法是选择所有误分类点到超平面S的总距离。为此,先定义点x0到平面S的距离:

分母是w的L2范数,所谓L2范数,指的是向量各元素的平方和然后求平方根(长度)。这个式子很好理解,回忆中学学过的点到平面的距离:

此处的点到超平面S的距离的几何意义就是上述距离在多维空间的推广。

又因为,如果点i被误分类,一定有

成立,所以我们去掉了绝对值符号,得到误分类点到超平面S的距离公式:

假设所有误分类点构成集合M,那么所有误分类点到超平面S的总距离为

分母作用不大,反正一定是正的,不考虑分母,就得到了感知机学习的损失函数:

3.感知机学习算法

原始形式

感知机学习算法是对以下最优化问题的算法:

感知机学习算法是误分类驱动的,先随机选取一个超平面,然后用梯度下降法不断极小化上述损失函数。损失函数的梯度由:

给出。所谓梯度,是一个向量,指向的是标量场增长最快的方向,长度是最大变化率。所谓标量场,指的是空间中任意一个点的属性都可以用一个标量表示的场(个人理解该标量为函数的输出)。

随机选一个误分类点i,对参数w,b进行更新:

上式是学习率。损失函数的参数加上梯度上升的反方向,于是就梯度下降了。所以,上述迭代可以使损失函数不断减小,直到为0。于是得到了原始形式的感知机学习算法:


           由算法的描述我们可以得知,当数据集线性不可分时,会导致算法训练不收敛以及训练过程中会发生震荡的情况!那么感知机学习的收敛性就是值得讨论的!


4.算法的收敛性

记输入向量加进常数1的拓充形式,其最大长度为,记感知机的参数向量,设满足条件的超平面可以将数据集完全正确地分类,定义最小值伽马:

则误分类次数k满足:

这就是感知机学习算法!




发布评论

分享到:

IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

对数据的认识(二)详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。