二类线性分类模型-感知机

1.感知机模型

输出空间 y = { + 1 , − 1 } y=\{+1,-1\} y={ +1,1},由输入空间到输出空间的如下函数:
f ( x ) = s i g n ( w ⋅ x + b ) f(x)=sign(w\cdot x+b) f(x)=sign(wx+b)
称之为感知机。
符号函数:
s i g n ( x ) = { + 1 x >=0 − 1 x < 0 sign(x)= \begin{cases} +1 & \text{x >=0}\\ -1 & \text{x < 0} \end{cases} sign(x)={ +11x >=0x < 0

感知机有如下几何解释:线性方程:
w ⋅ x + b = 0 w\cdot x+b=0 wx+b=0
对应于特征空间 R n R^n Rn的一个超平面S,其中 w w w是超平面的法向量,b是超平面的截距。这个超平面将特征空间划分为两个部分。位于两部分的点(特征向量)分别被分为正、负两类。所以S被称为分离超平面。

2.感知机学习策略

2.1 数据集的线性可分

对于 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . . . . ( x n , y n ) } T=\{(x_1,y_1),(x_2,y_2),......(x_n,y_n)\} T={ (x1,y1),(x2,y2),......(xn,yn)},如果存在一个分离超平面能将数据集的正负实例正确划分到两侧,则这个数据集为线性可分数据集。

2.2 感知机学习策略

为了找出一个分离超平面,即确定感知机模型参数 w , b w,b w,b,需要确定一个学习策略,即定义损失函数并将损失函数极小化。

损失函数的一个自然选择是误分类点的总数。但是,这样的损失函数不是参数 w , b w,b w,b的连续可导函数,不易优化。

损失函数的另外选则是误分类点到超平面的总距离。
任一点 x 0 x_0 x0到超平面的距离:
1 ∣ ∣ w ∣ ∣ ∣ w ⋅ x 0 + b ∣ \frac {1}{||w||}|w\cdot x_0+b| w1wx0+b
其次,对于误分类的数据 ( x i , y i ) (x_i,y_i) (xi,yi)来说,
− y i ( w ⋅ x i + b ) > 0 -y_i(w\cdot x_i+b)>0 yi(wxi+b)>0
因此,误分类点 x i x_i xi到超平面的距离是:
− 1 ∣ ∣ w ∣ ∣ y i ( w ⋅ x i + b ) -\frac{1}{||w||}y_i(w\cdot x_i+b) w1yi(wxi+b)
假设超平面的误分类点集合为 M M M,那么所有误分类点到超平面的总距离为:
− 1 ∣ ∣ w ∣ ∣ ∑ x i ∈ M y i ( w ⋅ x i + b ) -\frac{1}{||w||}\sum_{x_i \in M}y_i(w\cdot x_i+b) w1xiMyi(wxi+b)
不考虑 1 ∣ ∣ w ∣ ∣ \frac{1}{||w||} w1,这就是感知机学习的损失函数:
L ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x i + b ) L(w,b)=-\sum_{x_i \in M}y_i(w\cdot x_i+b) L(w,b)=xiMyi(wxi+b)
感知机的学习策略是在假设空间中选取使损失函数最小的模型参数 w , b w,b w,b,即感知机模型。

3.感知机学习算法

3.1 原始形式

求参数 w , b w,b w,b,使其为以下损失函数极小化问题的解:
m i n w , b L ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x i + b ) min_{w,b}L(w,b)=-\sum_{x_i \in M}y_i(w \cdot x_i+b) minw,bL(w,b)=xiMyi(wxi+b)

感知机学习算法是误差分类驱动的,具体采用随机梯度下降法。
首先,任意选取一个超平面 w 0 , b 0 w_0,b_0 w0,b0,然后用梯度下降法不断极小化目标函数。极小化过程不是一次使 M M M中所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降。

此算法可以这么直观的理解:当一个实例点被误分类,即位于分离超平面的错误一侧时,则调整 w , b w,b w,b的值,使分离超平面向该误分类点的一侧移动,以减少误分类点与超平面间的距离,直至超平面越过该分类点使其正确分类。

3.2 感知机学习算法的对偶形式

由前面原始形式可知,感知机模型:
f ( x ) = s i g n ( ∑ j = 1 N α j y j x j ⋅ x + b ) f(x)=sign(\sum_{j=1}^N\alpha_jy_jx_j \cdot x+b) f(x)=sign(j=1Nαjyjxjx+b)

  • 1. α , b = 0 \alpha ,b=0 α,b=0
  • 2.在训练集中选取数据 ( x i , y i ) (x_i,y_i) (xi,yi)
  • 3.如果 y i ( ∑ j = 1 N α j y j x j ⋅ x + b ) ≤ 0 y_i(\sum_{j=1}^N\alpha_jy_jx_j \cdot x+b) \leq0 yi(j=1Nαjyjxjx+b)0,则 α i = α i + η \alpha_i=\alpha_i+\eta αi=αi+η, b = b + η y i b=b+\eta y_i b=b+ηyi
  • 4.直至所有数据都被正确分类

参考:统计学习方法第二版

猜你喜欢

转载自blog.csdn.net/weixin_44127327/article/details/110184733
今日推荐