【机器学习】感知机

介绍

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

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

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

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

感知机模型

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

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

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

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

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


【机器学习】感知机_第1张图片

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

感知机学习策略

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

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

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

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

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

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

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

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

1||w||xiMyi(wxi+b) − 1 | | w | | ∑ x i ∈ M y i ( w · x i + b )

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

L(w,b)=xiMyi(wxi+b) L ( w , b ) = − ∑ x i ∈ M y i ( w · x i + b )

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

感知机学习算法

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

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

算法步骤:
输入:训练数据集 T={(x1,y1),(x2,y2),(x3,y3),...,(xN,yN)} T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ( x 3 , y 3 ) , . . . , ( x N , y N ) }
其中 xiX=RnyiY={1,+1}i=1,2,...,N x i ∈ X = R n , y i ∈ Y = { − 1 , + 1 } , i = 1 , 2 , . . . , N ; 学习率 η(0<η1); η ( 0 < η ≤ 1 ) ;
输出: w,b w , b ;感知机模型 f(x)=sign(wx+b) f ( x ) = s i g n ( w · x + b )

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


wwηyixi w ← w + η y i x i

bb+ηyi b ← b + η y i

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

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

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

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

你可能感兴趣的:(机器学习)