【机器学习】感知机

介绍

感知机1957年由Rosenblatt提出,是神经网络与支持向量机的基础,是二分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,去+1和-1二值。

感知机属于判别模型,旨在求出将训练数据进行线性划分的分离超平面。

感知机模型的求得是基于误分类的损失函数,利用梯度下降法对损失函数进行极小化。

感知机学习算法简单易于实现。

感知机模型

由输入空间到输出空间如下函数:

f ( x ) = s i g n ( w · x + b )

w b 为感知机模型参数;
其中,sign是符号函数,即:
s i g n ( x ) = { + 1 , x 0 1 , x<0

感知机的几何解释为线性方程:
w · x + b = 0

对应于特征空间中的一个超平面 S ,其中 w 是超平面的发向量, b 是超平面的截距,这个超平面将特征空间划分为两个部分,位于两个部分的点分别被分为正、负两类。


这里写图片描述

感知机学习,由训练数据集(实例的特征向量及类别),求得感知机模型,即求得模型参数 w , b
感知机预测,通过学习得到的感知机模型,对新的输入实例给出其对应的输出类别。

感知机学习策略

线性可分数据集:存在某个超平面S能够将数据集的正实例和负实例点完全划分到超平面的两侧,则称数据集为线性可分数据集;否则,线性不可分。

我们假设训练数据集是线性可分的,为了找出这样一个超平面,即确定感知机模型参数 w b ,需要确定一个学习策略,即定义(经验)损失函数并将损失函数极小化

感知机所采用的损失函数是误分类点到超平面 S 的总距离。

(1)任意一定 x 0 到超平面 S 的距离为: 1 | | w | | | w · x 0 + b | ;这里 | | w | | w L 2 范数。

(2)对于误分类点来说: y i ( w · x i + b ) > 0 成立。

w · x i + b > 0 时, y i = 1 ,而当 w · x i + b < 0 时, y i = + 1

(3)误分类点 x i 到超平面 S 的距离是: 1 | | w | | y i ( w · x i + b )

(4)假设超平面 S 的误分类点集合为 M ,那么所有误分类点到超平面 S 的总距离为:

1 | | w | | x i M y i ( w · x i + b )

不考虑 1 | | w | | ,就得到感知机学习的损失函数。

L ( w , b ) = x i M y i ( w · x i + b )

损失函数是非负的
如果没有误分类点,损失函数为0,误分类点越少,误分类点离超平面越近,损失函数越小

感知机学习算法

至此,感知机学习问题就转化为了求解损失函数的最优化问题。使用方法:随机梯度下降法

任意选取一个超平面 w 0 b 0 ,然后用梯度下降法不断地极小化损失函数。极小化过程中不是一次使 M 中的所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降。

算法步骤:
输入:训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ( x 3 , y 3 ) , . . . , ( x N , y N ) }
其中 x i X = R n y i Y = { 1 , + 1 } i = 1 , 2 , . . . , N 学习率 η ( 0 < η 1 ) ;
输出: w , b ;感知机模型 f ( x ) = s i g n ( w · x + b )

(1)选取初值 w 0 , b 0
(2)在训练集中选取数据 ( x i , y i )
(3)如果 y i ( w · x i + b ) 0


w w η y i x i

b b + η y i

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

算法解释:
当一个实例点被误分类,即位于分离超平面的错误一侧时,则调整 w , b 的值,是分离超平面向该误分类点的一一侧移动,以减少该误分类点与超平面的距离,直至超平面超越过该误分类点使其被正确分类。
注意:
感知机学习算法由于采用不同的初值或选取不同的误分类点,解可以不同。

感知机学习算法是基于随机梯度下降法对损失函数的最优化算法,算法简单易于实现。当训练数据集线性可分时,感知机学习算法是收敛的;感知机学习算法存在无穷多个解,其解由于不同的初值或不同的迭代顺序而可能有所不同。

参考书籍《统计学习分析》

猜你喜欢

转载自blog.csdn.net/daycym/article/details/81031261