author : Peter
date: 2019-08-18
感知机Perceptron
导读
感知机是二分类的线性
分类模型
,输入是实例的特征向量(每个属性),输出是实例的类别。感知机对应于输入空间中将实例划分为正负两类的分离超平面
,属于判别模型。
- 目的:找出将训练数据进行线性划分的分离超平面
- 导入基于误分类的损失函数,利用
梯度下降法
对损失函数进行极小化,求出最小值 - 有
原始形式
和对偶形式
两种 - 感知机是种线性分类模型,属于判别模型。
应用实例
比如说我们有一个坐标轴(图中的黑色线),横的为x1轴,竖的x2轴。图中的每一个点都是由(x1,x2)决定的。
- 如果我们将这张图应用在判断零件是否合格上,x1表示零件长度,x2表示零件质量,坐标轴表示零件的均值长度和均值重量,并且蓝色的为合格产品,黄色为劣质产品,需要剔除。
- 那么很显然如果零件的长度和重量都大于均值,说明这个零件是合格的。也就是在第一象限的所有蓝色点。反之如果两项都小于均值,就是劣质的,比如在第三象限的黄色点。
在预测上很简单,拿到一个新的零件,我们测出它的长度x1,质量x2,如果两项都大于均值,说明零件合格。这就是我们人的人工智能。
image.png
定义
现在假设输入空间是,输出空间
。输入
表示实例的特征向量,输出
表示实例的类别,其中输入到输出的函数表示如下:
,称为感知机
-
w,b
称为感知机模型参数
;w
称为权值
或者权值向量
;称为偏置
bias
。表示二者的内机,
sign
表示符号函数:
感知机的几何解释为线性方程:这条直线就是最好的那条线,最优解。特征空间
对应一个超平面S,其中
w
是超平面的法向量
,b
是超平面的截距
。超平面将特征空间划分为两个部分。位于两部分的点分为正负两个类别。正类为+1,父类为-1。
栗子(图2.1):

策略
给定一个数据集
其中
是输入空间实例的特征向量,
是实例的输出类别,如果存在超平面S满足将数据集的正负实例完全分开,即满足:当
,有
;当
,有
。此时,将所有的数据分为线性可分数据集,否则称为线性不可分。
- 感知机中的损失函数误分类点到超平面S的总距离,输入空间中任意一个点
到距离是
,其中||w||表示w的
范数,即:
对于误分类的点,总有如下结论:
因为在误分类的时候,每个实例点满足:当
,有
;当
,有
。因此,误分类的点到超平面的距离:
,假设超平面中的所有误分类的集合M,所有误分类的点到S的总距离为:
,不考虑
得到了感知机
的损失函数为:
- M是误分类点的集合
- 损失函数就是感知机学习的经验风险函数
- 梯度只是向量,代表下降的方向
- 通过学习率来控制下降的大小
- 如果没有误分类点,损失函数是0
- 误分类点越少,总距离越小,损失函数越小
- L是参数(w,b)的连续可导函数
算法
原始形式
算法思想
感知机学习算法的最优化问题就是求解损失函数的最小值,即:。感知机的算法是误分类驱动的,具体采用的是随机梯度下降法(stochastic gradient descent),大致过程如下:
- 选取任意的超平面
- 利用梯度下降方法去不断地极小化目标损失函数L(w, b)
- 在不断极小化的过程中,不是一次性使用M中所有误分类点进行梯度下降,而是一次随机选取一个误分类点进行梯度下降。
- 损失函数
的梯度由如下的式子决定:
每次随机选取一个误分类点,对
进行更新:
其中
表示学习率或者步长。通过不断地迭代损失函数
使其不断的减小,直至为0
算法描述
输入:训练数据集,其中
,
;学习率
输出:w,b;感知机模型
- 选取初值
,一般是0
- 在训练集中选取数据
- 如果存在误分类点,即满足:
或者
,进行
的更新:
- 转到第二步,直至训练集中没有误分类点停止
直观解释:当有一个误分类点在超平面的错误一侧,调整w,b的值,使得分离超平面向着该误分类点的一侧移动,从而较小误分类点和超平面的距离,直至超平面越过该点,使其被正确地分类
栗子(2.1):




对偶形式:
算法思想
对偶形式的基本思想是将
w,b
表示为实例和输出类别
的线性组合的形式,通过求解系数从而求得
w
和b
。
假设的初值是都是0,对于误分类点通过:
逐步地去修改
,设修改n次,则
关于
的增量分别是
和
,其中
,通过不断地迭代过程,最终学习到的
分别表示为:
在上面两个迭代式子中,;当
时,表示第i个实例点由于误分类而进行更新的次数。
算法描述
输入:给定线性可分的训练数据集,其中
,
;学习率
输出:;感知机模型
其中,
;训练过程为:
1.给定初值
2.在训练数据集中选取数据
3.如果,进行
的更新:
4.转到第二步,直至训练集中没有误分类点停止
对偶形式中训练实例仅仅是以内积的形式出现,著名的Gram矩阵
栗子(2.2):


算法收敛性
对于原始形式的感知机学习算法,经过有限次迭代之后可以得到一个将训练数据集完全分离的超平面和感知机模型。为了证明过程方便,将偏置b加入权重w中,记作,同样的输入向量中也加入常数1,记作
。显然有:
,则
,具体证明过程加入下图:





网友评论