感知机是可进行二分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别(+1,-1)。感知机学习旨在求出将训练样本进行线性分类的分离超平面,也就是说求模型的参数w,b,并能对新的输入实例预测其对应的输出类别。
注:超平面是指在空间Rd上的一个子空间Rd-1,在二维空间中的超平面就是一条直线,三维空间的超平面是平面。超平面是平面中直线、空间中平面的推广。
1)感知机模型
2)感知机学习策略:损失函数
3)感知机学习算法:随机梯度下降法
1.1感知机定义[1]
1.2感知机的几何解释
感知机可看作是一个线性方程:
2.2感知机学习策略
感知机的学习目标是求得一个能够将训练集正确分类的超平面,也就是要确定感知机模型的参数w,b。故需要确定一个学习策略,即定义一个损失函数并将损失函数极小化。
损失函数的一个度量方式是误分类点的总数,但是这样的损失函数不是参数w,b的连续可导函数,不易于优化。所以感知机采用的是另一种方法,即误分类点到超平面S的总距离来作为损失函数。
高中的时候,我们就学习了点到直线的距离公式,大家可否都还记得?
2.2.1损失函数的定义[1]
M为误分类点的集合。这个损失函数是感知机学习的经验风险函数。
损失函数一定是非负的,如果没有误分类的点,则损失函数为0。误分类的点越少,且误分类点离超平面越近,则损失函数就越小。对于一个特定的样本点损失函数:在误分类时其可表示为参数w,b的线性函数,在正确分类时为0,因此,在训练数据集上,损失函数都是连续可导函数。故可以通过随机梯度下降法选取使损失函数最小的感知机模型。怎么进行随机梯度下降呢?
2.3感知机学习算法
2.3.1感知机学习算法的原始形式[1]
感知机学习算法是误分类驱动的,任意选取一个超平面,其参数假设为w0,b0,可采用随机梯度下降法不断地极小化损失函数,极小化过程中不是一次将M中所有误分类点都梯度下降,而是一次随机选取一个误分类点使其梯度下降。
答案是否定的,大家有兴趣的话不妨尝试一下。
由上述可见,感知机学习算法由于采用不同的初值或选取不同的误分类点,解是不同的。
2.3.2感知机学习算法的对偶算法[1]
前面介绍的是感知机学习算法的原始形式,现在介绍一下感知机学习算法的对偶形式。
对偶形式的感知机算法[1]
注:在相同的参数初值和误分类点输入相同的情况下,对偶形式和原始形式的结果一致,迭代步骤也是相互对应的。
2.3.3算法的收敛性[1]
感知机学习算法原理简单,适应于数据线性可分的条件下,且存在无穷多个解,其解由于不同的初值或不同的迭代顺序而可能有所不同。
对于线性可分数据集感知机学习算法原始形式和对偶形式得迭代是收敛的,当线性不可分时,感知机学习算法不收敛,迭代会发生动荡。故感知机学习算法只适应于线性可分的训练数据集。
1.神经网络的基础
2.垃圾分类上的应用
3.模拟混合电路故障诊断中的应用
4.经典数据集鸢尾花上的应用
[1] 李航,《统计学习方法》
[2] https://blog.csdn.net/DawnRanger/article/details/49500025
[3] https://www.cnblogs.com/mengxiangtiankongfenwailan/p/8656753.html
(部分文字、图片来自网络,如涉及侵权,请及时与我们联系,我们会在第一时间删除或处理侵权内容。电话:4006770986 邮箱:zhangming [at]eefung.com 负责人:张明)