找回密码
 立即注册
查看: 707|回复: 11

什么是感知机?

[复制链接]
发表于 2021-12-1 18:50 | 显示全部楼层 |阅读模式
1) 感知机的定义是什么?
感知机(perceptron)是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别。
2) 感知机的取值是什么?
取+1和-1二值。
3) 感知机对应于输入空间(特征空间)中的什么?
感知机对应于输入空间中将实例划分为正负两类的分离超平面,属于判别模型。
4) 感知机学习的目的是什么?
感知机学习旨在求出将训练数据进行线性划分的分离超平面,为此,导入基于误分类的损失函数,利用梯度下降法对损失函数进行极小化,求得感知机模型。
5) 感知机学习算法有什么特点?
感知机学习算法具有简单,并且易于实现的特点,分为原始形式和对偶形式。
6) 什么是感知机预测?
感知机预测是用学习得到的感知机模型对新的输入实例进行分类。它是神经网络与支持向量机的基础。
2.1感知机模型

1) 感知机模型的数学定义是什么?
定义 2.1(感知机) 假设输入空间(特征空间)是   ,输出空间是 y={+1, -1}。输入 表示实例的特征向量,对应于输入空间(特征空间)的点;输出 表示实例的类别。由输入空间到输出空间的如下函数:


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


2) 感知机是什么类型的模型?
感知机是一种线性分类模型,属于判别模型。
3) 感知机的几何解释?
感知机的几何解释是线性方程:


对应于特征空间  中的一个超平面S,其中w是从超平面的法向量,b是超平面的截距。
这个超平面将特征空间划分为两个部分。位于两部分的点(特征向量)分别被分为正、负两类
因此,超平面S成为分离超平面(separating hyperplane),如图2.1所示。


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


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

2.2.1 数据集的线性可分性

1) 什么是感知机的线性可分性?
定义2.2 (数据集的线性可分性) 给定一个数据集


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


能够将数据集的正实例点和负实例点完全正确地划分到超平面的两侧,即对所有的 的实例i,有  对所有  的实例 i,有  ,则称数据集T为线性可分数据集(linearly separable data set); 否则,成数据集T线性不可分。
2.2.2 感知机学习策略

1) 感知机的目的是什么?
假设训练数据集是线性可分的,感知机学习的目的是求得一个能够将训练集整实例点和负实例点完全正确分开的分离超平面
为了找出这样的超平面,即确定感知机模型参数w 和 b, 需要确定一个学习策略,即定义(经验)损失函数并将损失函数极小化
2) 损失函数的选择依据是什么?
损失函数的一个自然选择是误分类点的总数,但是这样损失函数不是参数w和b的连续可到函数,不易优化。
损失函数的另一个选择是误分类点到超平面S的总距离,这是感知机所采用的。为此,首先写出输入空间  中任一点 到超平面S的距离:


这里, 是w的 范数。
其次,对于误分类的数据  来说, 成立。因为当  时,  ,而当  时, 。因此,误分类点 到超平面S的距离是
这样,假设超平面S的误分类点集合为M,那么所有误分类点到超平面S的总距离为
不考虑 ,就得到感知机学习的损失函数。
3) 感知机学习的损失函数如何定义的?和经验风险函数有什么关系?
给定训练数据集
其中, , 。感知机 学习的损失函数定义为


其中M为误分类点的集合。这个损失函数就是感知机学习的经验风险函数
4) 损失函数可以取到负值么?
显然,损失函数是非负的
如果没有误分类点,损失函数值是0;
误分类点越少,误分类点距离超平面越近,损失函数值越小;
一个特定的样本点的损失函数,在误分类时是参数w, b的线性函数,在正确分类时是0。
因此,给定训练数据集T, 损失函数L(w, b)是w, b的连续可导函数
感知机学习的策略是在假设空间中选取使损失函数式(2.4)最小的模型参数w, b,即感知机模型。
2.3 感知机学习算法

感知机的学习问题转化为求解损失函数式(2.4)的最优化问题,最优化的方法是随机梯度下降法
2.3.1 感知机学习算法的原始形式

感知机学习算法是对一下最优化问题的算法,给定一个训练数据集


其中, ,求参数w 和 b,使其为一下损失函数极小化问题的解:


其中M为误分类点的集合。
1) 感知机学习算法是正确分类驱动的么?
不是。感知机学习算法是误分类驱动的。具体采用随机梯度下降法
首先,任意选取一个超平面  ,然后用梯度下降法不断地极小化目标函数(2.5)。极小化过程中不是一次使M中所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降
2) 损失函数的梯度怎么取?
假设误分类点集合M是固定的,那么损失函数L(w, b)的梯度由




给出。
随机选取一个误分类点 ,对w, b进行更新:




式中  是步长,在统计学习中又称为学习率(learning rate)。这样,通过迭代可以期待损失函数L(w, b)不断减小,直到为0。
3) 梯度下降算法的原始形式是什么?
算法 2.1 (感知机学习算法的原始形式)
输入: 训练数据集
输出: w, b; 感知机模型
(1) 选取初值  
(2) 在训练集中选取数据  
(3) 如果




(4) 转至(2),直至训练集中没有误分类点。
这种学习算法直观上有如下解释: 当一个实例点被误分类,及位于分离超平面的错误一侧时,则调整w, b的值,使分离超平面向该误分类点的一侧移动,以减少该误分类点与超平面的距离,直至超平面越过该误分类点使其被正确分类。
算法2.1 是感知机学习的基本算法,对应于后面的对偶形式,成为原始形式,感知机学习算法简单且易于实现。
4) 例举一个感知机算法的例子
例2.1 如图2.2所示的训练数据集,其正实例点是 负实例点是 试用感知机学习算法的原始形式求感知机模型 这里,


  构建最优化问题:


按照算法2.1求解w, b ,  .
(1) 取初值
(2) 对 未能被正确分类,更新w, b


得到线性模型


(3) 对于 显然, 被正确分类,不修改w, b;
.


得到线性模型


如此继续下去,直到




对所有数据点 没有误分类点,损失函数达到极小。
     分离超平面为            
     感知机模型为            
     迭代过程见表2.1


这是在计算中误分类点先后取 得到的分离超平面和感知机模型。如果在计算中误分类点依次取 那么得到的分离超平面是
5) 感知机学习算法的初值和解有什么规律?
感知机学习算法由于采用不同的初值或选取不同的误分类点,解可以不同。
2.3.2 算法的收敛性

1) 感知机算法原始形式收敛么?
对于线性可分数据集,感知机学习算法原始形式收敛,即经过有限次迭代可以得到一个将训练数据集完全正确划分的分离超平面及感知机模型。
2) 证明感知机原始形式的收敛性
为了便于叙述 与推到,将偏置b并入权重向量w,记作 ,同样也将输入向量加以扩充,加进常数1,记作 这样, ,显然,
定理 2.1(Novikoff)  设训练数据集

(1) 存在满足条件 的超平面 将训练数据集完全分开;且存在


(2) 令 则感知机算法2.1在训训练数据集上的误分类次数k 满足不等式


证明 (1) 由于训练数据集是线性可分的,按照定义2.2存在超平面将训练数据集完全正确分开,取次超平面为 。由于对有限的 均有


所以存在


使


(2) 感知机算法从 开始,如果实例被误分类,则更新权重。令 是第k个误分类实例之前的扩充权重向量,即


则第k个误分类实例的条件是


误分类的数据,则w 和b的更新是







下面推导两个不等式:
(1)
由式(2.11)及式(2.8)得


由此递推即得不等式(2.12)


(2)


由式(2.11)及(2.10)得










结合不等式(2.12)及式(2.13)即得




于是
定理表明,误分类的次数k是有上界的,经过有限次搜索可以找到将训练数据完全分开的分离超平面,也就是说,当训练数据集线性可分时,感知机学习算法原始形式迭代是收敛的
不过例2.1说明,感知机学习算法存在很多解,而为了得到唯一的超平面,需要对分离超平面增加约束条件,这就是之后会讲解的线性支持向量机的想法,当训练集线性不可分时,感知机学习算法不收敛,迭代结果会发生震荡。
2.3.3 感知机学习算法的对偶形式

1) 什么是感知机学习算法的对偶形式?
对偶形式的基本想法是,将w 和 b表示为实例 的线性组合的形式,通过求解其系数而求得 w 和 b 。
在算法2.1中可假设初始值  均为0,对误分类点  通过




逐步修改w 和 b,设修改n 次,则w , b 关于  的增量分别是 ,这里 。这样,从学习过程不难看出,最后学习到的w , b 可以分别表示为




这里, 当  时,表示第 个实例点由于误分而进行更新的次数,实例点更新次数越多,意味着它距离分离超平面越近,也就越难正确分类。换句话说,这样的实例对学习结果影响最大
2) 请对照原始形式来叙述对偶形式
算法 2.2 (感知机学习算法的对偶形式)
输入:线性可分的数据集 学习率  ;
输出 感知机模型
其中
(1)
(2) 在训练集中选取数据  
(3) 如果




(4) 转至(2)直到没有误分类数据。
对偶形式中训练实例仅以内积的形式出现,为了方便,可以预先将训练集中实例间的内积计算出来并以矩阵形式存储,这个矩阵就是所谓的Gram矩阵(Gram matrix)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2021-12-1 18:57 | 显示全部楼层
emmmmmm简单总结+copy了一下统计学习方法的内容
发表于 2021-12-1 19:00 | 显示全部楼层
对偶形式的基本想法是,将w 和 b表示为实例  的线性组合的形式。此处我个人理解成w=Axi+Byi这种形式,但下文中w=alpha×yi×xi,求解答!
发表于 2021-12-1 19:01 | 显示全部楼层
此处损失函数,最好加上个max(0, -yi(w*xi+b)),不然当选择到一个样本,将其正确分类后,原有的损失函数会小于0
发表于 2021-12-1 19:03 | 显示全部楼层
的确是这样 2333
发表于 2021-12-1 19:07 | 显示全部楼层
你好,想问下loss函数为什么将1/||w||拿掉
发表于 2021-12-1 19:16 | 显示全部楼层
损失函数存在的作用对象是误分类的点。有了1/||w||、没有1/||w||,只要数据集线性可分(前提条件),那么loss的值最终都会收敛到0,因此拿掉也没关系。此外,重要的一点是感知机没有要求最终得到的线性模型唯一,只要最终loss为0即可。如果要求唯一的话,参考SVM的间隔最大化思想。
发表于 2021-12-1 19:20 | 显示全部楼层
谢谢了[微笑]
发表于 2021-12-1 19:21 | 显示全部楼层
站在李航老师的肩膀上,更加简洁清晰
[欢呼]
发表于 2021-12-1 19:28 | 显示全部楼层
请问,这个上界与学习率无关了,难道学习率再小学习次数也不会超过此上界吗,怎么理解这一点?
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-23 03:24 , Processed in 0.163862 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表