感知机详解程序员

感知机(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满足:

感知机详解程序员

这就是感知机学习算法!

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/7212.html

(0)
上一篇 2021年7月17日
下一篇 2021年7月17日

相关推荐

发表回复

登录后才能评论