首页 > 其他 > 详细

感知机原理及实现

时间:2020-07-11 13:33:36      阅读:74      评论:0      收藏:0      [点我收藏+]

 感知机的原理

  感知机是二分类的线性模型,其输入是实例的特征向量,输出的是事例的类别,分别是+1和-1,属于判别模型。

假设训练数据集是线性可分的,感知机学习的目标是求得一个能够将训练数据集正实例点和负实例点完全正确分开的分离超平面。如果是非线性可分的数据,则最后无法获得超平面。感知机由Rosenblatt于1957年提出的,是神经网络和支持向量机的基础。技术分享图片

1: 感知机模型

 

定义.感知机:假设输入空间 技术分享图片 ,输出空间 技术分享图片 。输入 技术分享图片 表示实例的特征向量,对应于输入空间的点;输出 技术分享图片 表示实例的类别。由输入空间到输出空间的函数

技术分享图片

称为感知机。其中, 技术分享图片 和 技术分享图片 为感知机模型参数, 技术分享图片 叫做权值或权值向量, 技术分享图片 叫偏置, 技术分享图片 表示 技术分享图片 和 技术分享图片 的内积。 技术分享图片 是符号函数,即

技术分享图片

感知机是一种线性分类模型,属于判别模型。感知机模型的假设空间是定义在特征空间中的所有线性分类模型或线性分类器,即函数集合 技术分享图片 。

线性方程

技术分享图片

对应于特征空间 技术分享图片 中的一个超平面 技术分享图片 ,其中 技术分享图片 是超平面的法向量, 技术分享图片 是超平面的截距。超平面 技术分享图片 将特征空间划分为两部分,位于其中的点被分为正、负两类,超平面 技术分享图片 称为分离超平面。

技术分享图片

 

2: 感知机学习策略

2.1 数据集的线性可分

给定数据集

技术分享图片

其中, 技术分享图片 ,如果存在某个超平面 技术分享图片

技术分享图片

能够将数据集的正实例和负实例完全正确地划分到超平面的两侧,即对所有 技术分享图片 的实例 技术分享图片 ,有 技术分享图片 ,对所有 技术分享图片 的实例 技术分享图片 ,有 技术分享图片 ,则称数据集 技术分享图片 为线性可分数据集 linearly separable data set ;否则,称数据集 技术分享图片 线性不可分。

2.2 感知机学习策略

输入空间 技术分享图片 中的任一点 技术分享图片 到超平面 技术分享图片 的距离:

技术分享图片

其中 技术分享图片 是 技术分享图片 的 技术分享图片 范数。

对于误分类数据 技术分享图片 ,当 技术分享图片 时, 技术分享图片 ,当 技术分享图片 时, 技术分享图片 ,有

技术分享图片

误分类点 技术分享图片 到分离超平面的距离:

技术分享图片
假设超平面 技术分享图片 的误分类点集合为 技术分享图片 ,则所有误分类点到超平面 技术分享图片 的总距离:
技术分享图片

给定训练数据集

技术分享图片

其中, 技术分享图片 。感知机 技术分享图片 的损失函数定义为

技术分享图片
其中, 技术分享图片 为误分类点的集合。

注:对于这里损失函数少了 技术分享图片 可以先这么理解:我们目的是要找个超平面 技术分享图片 ,可以增加一个特征: 技术分享图片 ,因此超平面可以简化为 技术分享图片 ,用向量表示为 技术分享图片 ,则所有误分类点到超平面 技术分享图片 的总距离: 技术分享图片 。这样可以发现,分子和分母都含有 技术分享图片 ,当分子的 技术分享图片 扩大 技术分享图片 倍时,分母的 技术分享图片 范数也会扩大 技术分享图片 倍。也就是说,分子和分母有固定的倍数关系。那么我们可以固定分子或者分母为1,然后求另一个即分子自己或者分母的倒数的最小化作为损失函数,这样可以简化我们的损失函数。在感知机模型中,我们采用的是保留分子,即最终感知机模型的损失函数简化为: 技术分享图片

3: 感知机学习算法

3.1 感知机学习算法的原始形式

给定训练数据集

技术分享图片
其中, 技术分享图片 。求参数 技术分享图片 和 技术分享图片 ,使其为以下损失函数极小化问题的解

技术分享图片
其中, 技术分享图片 为误分类点的集合。

感知机学习算法是误分类驱动的,采用随机梯度下降法 stochastic gradient descent。极小化过程中不是一次使用$M$中所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降。

假设误分类点集合 技术分享图片 是固定的,则损失函数 技术分享图片 的梯度

技术分享图片
随机选取一个误分类点 技术分享图片 ,对 技术分享图片 进行更新:

技术分享图片
其中, 技术分享图片 是步长,称为学习率。

感知机算法(原始形式):
输入:训练数据集 技术分享图片 ,其中 技术分享图片 ;学习率 技术分享图片 。
输出: 技术分享图片 ;感知机模型 技术分享图片
1. 选取初值 技术分享图片
2. 在训练集中选取数据 技术分享图片
3. 如果 技术分享图片
技术分享图片
4. 转至2,直至训练集中没有误分类点。

直观解释:当一个实例点被误分类,即位于分离超平面的错误一侧,则调整 技术分享图片 的值,使分离超平面向该误分类点的一侧移动,以减少该误分类点与超平面的距离,直至超平面越过该分类点使其被分类正确。

例1

对于训练数据集,其中正例点是x1=(3,3)T,x2=(4,3)T,负例点为x3=(1,1)T,用感知机学习算法的原始形式求感知机模型f(x)=w·x+b。这里w=(w(1),w(2))T,x=(x(1),x(2))T

:构建最优化问题:

                  技术分享图片

按照算法求解w, b。η=1

(1)取初值w0=0, b0=0

(2)对于(3,3):-(0+0)+0=0未被正确分类。更新w,b

               w1=w0+1*y1·x1 = (0,0)T+1(3,3)T=(3,3)T

               b1=b0+y1=1

         得到线性模型w1x+b1 = 3x(1)+3x(2)+1

(3)返回(2)继续寻找yi(w·xi+b)≤0的点,更新w,b。直到对于所有的点yi(w·xi+b)>0,没有误分类点,损失函数达到最小。

分离超平面为x(1)+x(2)-3=0

感知机模型为 f(x)=sign(x(1)+x(2)-3)

 

    在迭代过程中,出现w·xi+b=-2,此时,取任意一个点,都会是其小于0,不同的取值顺序会导致最终的结果不同,因此解并不是唯一的。为了得到唯一的超平面,需要对分离超平面增加约束条件,这就是支持向量机的想法。

3.2 算法的收敛性

定理.Novikoff 设训练数据集 技术分享图片 是线性可分的,其中, 技术分享图片 ,则:

(1)存在满足条件 技术分享图片 的超平面 技术分享图片 将训练数据集完整正确分开;并存在 技术分享图片 ,对所有 技术分享图片

技术分享图片

(2)令 技术分享图片 ,则感知机算法在训练集上的误分类次数 技术分享图片 满足不等式:

技术分享图片

3.4 感机学习算法的对偶形式

上面的感知机模型的算法形式我们一般称为感知机模型的算法原始形式。对偶形式是对算法执行速度的优化。

通过上一节感知机模型的算法原始形式 技术分享图片 可以看出,我们每次梯度的迭代都是选择的一个样本来更新 技术分享图片 向量。最终经过若干次的迭代得到最终的结果。对于从来都没有误分类过的样本,他被选择参与 技术分享图片 迭代的次数是0,对于被多次误分类而更新的样本 技术分享图片 ,它参与 技术分享图片 迭代的次数我们设置为 技术分享图片 。如果令 技术分享图片 向量初始值为0向量, 技术分享图片 修改n次,则 技术分享图片 关于 技术分享图片 的增量分别是 技术分享图片 和 技术分享图片 ,其中 技术分享图片 。 技术分享图片 可表示为

技术分享图片
其中, 技术分享图片

感知机算法(对偶形式):
输入:训练数据集 技术分享图片 ,其中 技术分享图片 ;学习率 技术分享图片 。
输出: 技术分享图片 ;感知机模型 技术分享图片 ,其中 技术分享图片
1. 技术分享图片
2. 在训练集中选取数据 技术分享图片
3. 如果 技术分享图片
技术分享图片

4. 转至2,直至训练集中没有误分类点。

4.3 原始形式和对偶形式的选择

  • 在向量维数(特征数)过高时,计算内积非常耗时,应选择对偶形式算法加速。
  • 在向量个数(样本数)过多时,每次计算累计和就没有必要,应选择原始算法

5. 训练过程

我们大概从下图看下感知机的训练过程。

线性可分的过程:

技术分享图片

 

 

 

线性不可分

技术分享图片

 

 

6. 小结

感知机算法是一个简单易懂的算法,自己编程实现也不太难。前面提到它是很多算法的鼻祖,比如支持向量机算法,神经网络与深度学习。因此虽然它现在已经不是一个在实践中广泛运用的算法,还是值得好好的去研究一下。感知机算法对偶形式为什么在实际运用中比原始形式快,也值得好好去体会。

 

 

 

 

参考文献:感知机原理小结

 

感知机原理及实现

原文:https://www.cnblogs.com/catxjd/p/13283109.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!