(二)统计学习方法--感知机

本文深入探讨了感知机作为二分类线性模型的基本原理,包括其几何解释、学习策略和损失函数。通过梯度下降法进行优化,详细阐述了感知机的学习算法过程,并给出一个具体的样例说明。此外,还提及了收敛性证明和对偶形式的后续补充内容。
摘要由CSDN通过智能技术生成

(二)统计学习方法–感知机

感知机是二分类的线性分类模型,属于判别模型

感知机模型

感知机定义如下:
f ( x ) = s i g n ( w ⋅ x + b ) f(x) = sign(w\cdot x + b) f(x)=sign(wx+b)
其中 x x x为输入(特征), w w w为权值, b b b为偏置, s i g n sign sign为符号函数:
sign ⁡ ( y ) = { + 1 , y ⩾ 0 − 1 , y < 0 \operatorname{sign}(y)= \begin{cases}+1, & y \geqslant 0 \\ -1, & y<0\end{cases} sign(y)={+1,1,y0y<0

输入维数为2时的几何解释:
感知机模型
线性方程 w ⋅ x + b = 0 w\cdot x + b=0 wx+b=0对应于一个超平面 S S S,其中 w w w是超平面的法向量, b b b是超平面的截距。
当维数为2维时,上述方程可以展开为下式:

w 1 x 1 + w 2 x 2 + b = 0 w_1x_1+w_2x_2 + b=0 w1x1+w2x2+b=0

由上图可以得到一个直观的理解,假定 w 2 > 0 w_2>0 w2>0,当 ( x 1 , x 2 ) (x_1,x_2) (x1,x2)满足 w 1 x 1 + w 2 x 2 + b = 0 w_1x_1+w_2x_2 + b=0 w1x1+w2x2+b=0时, ( x 1 , x 2 ) (x_1,x_2) (x1,x2)会落在 w 1 x 1 + w 2 x 2 + b = 0 w_1x_1+w_2x_2 + b=0 w1x1+w2x2+b=0这一直线上;当 ( x 1 , x 2 ) (x_1,x_2) (x1,x2)满足 w 1 x 1 + w 2 x 2 + b > 0 w_1x_1+w_2x_2 + b>0 w1x1+w2x2+b>0时, x x x会落在 w 1 x 1 + w 2 x 2 + b = 0 w_1x_1+w_2x_2 + b=0 w1x1+w2x2+b=0这一直线的上方区域,即用圆点表示的样本点;反之则落入下方用叉号表示的样本点区域。

感知机学习策略

这里规定分类正确时, w ⋅ x i + b > 0 w\cdot x_i +b>0 wxi+b>0对应 y i = + 1 y_i=+1 yi=+1,反之 y i = − 1 y_i=-1 yi=1

损失函数首先能想到是最小化误分类点的总数,但是这种损失函数通常是离散的形式,不可导,不容易优化。所以这里考虑另一种损失函数,即最小化误分类点到超平面 S S S的总距离

输入空间任一点 x 0 x_0 x0到超平面 S S S的距离:
∣ w ⋅ x 0 + b ∣ ∣ ∣ w ∣ ∣ 2 \frac{|w\cdot x_0 +b|}{||w||_2} w2wx0+b

其中 ∣ ∣ w ∣ ∣ 2 ||w||_2 w2 w w w L 2 L_2 L2范数, ∣ ∣ w ∣ ∣ 2 = w 1 2 + w 2 2 + ⋯ + w n 2 ||w||_2 = \sqrt{w_1^2+w_2^2+\dots +w_n^2} w2=w12+w22++wn2 .

对于误分类的点来说, w ⋅ x i + b > 0 w\cdot x_i +b>0 wxi+b>0对应 y i = − 1 y_i=-1 yi=1,反之 y i = + 1 y_i=+1 yi=+1。所以可得:
− y i ( w ⋅ x i + b ) > 0 -y_i(w\cdot x_i + b)>0 yi(wxi+b)>0

所以我们可以将距离公式分子的绝对值去掉,得到误分类点到超平面的距离:
− y i ( w ⋅ x i + b ) ∣ ∣ w ∣ ∣ 2 \frac{-y_i(w\cdot x_i + b)}{||w||_2} w2yi(wxi+b)
所有误分类点到超平面 S S S的总距离为:
∑ − y i ( w ⋅ x i + b ) ∣ ∣ w ∣ ∣ 2 \sum \frac{-y_i(w\cdot x_i + b)}{||w||_2} w2yi(wxi+b)
因为 ∣ ∣ w ∣ ∣ ||w|| w对于所有样本点对应的距离来说取值相同,所以最小化误分类点到超平面距离也可以等价为:
m i n L ( w , b ) = m i n ∑ − y i ( w ⋅ x i + b ) min \quad L(w,b) = min \quad \sum -y_i(w\cdot x_i + b) minL(w,b)=minyi(wxi+b)

(在实际编程中其实只考虑该式是否小于等于0)

感知机学习算法

通过上述内容将感知机问题转换为优化问题,接下来对优化问题进行求解,求解方法采用梯度下降法

梯度下降法可以简单理解为通过求解损失函数的梯度来找到损失函数取值下降最快的方向,然后进行不断的迭代,最终使得损失函数取值达到最小,这时所对应的参数取值即为我们所需的参数估计值。

损失函数 L ( w , b ) L(w,b) L(w,b)的梯度:
∂ L ( w , b ) ∂ w = − ∑ y i x i \frac{\partial L(w,b)}{\partial w} = -\sum y_ix_i wL(w,b)=yixi
∂ L ( w , b ) ∂ b = − ∑ y i \frac{\partial L(w,b)}{\partial b} = -\sum y_i bL(w,b)=yi

接下来随机选取一个误分类点 ( x i , y i ) (x_i,y_i) (xi,yi),对 w , b w,b w,b进行更新:
w ← w + η y i x i w\leftarrow w+\eta y_ix_i ww+ηyixi
b ← b + η y i b\leftarrow b+\eta y_i bb+ηyi
其中 η ∈ ( 0 , 1 ] \eta\in (0,1] η(0,1]是学习率,是一个可以人为调整的超参数。这样通过迭代可以使得损失函数不断减小直到收敛。

所以可以总结成如下算法形式:

输入: x i ∈ R n , y i ∈ { − 1 , + 1 } , i = 1 , 2 , … , N ; η ∈ ( 0 , 1 ] x_i\in R^n,y_i\in \{-1,+1\},i=1,2,\dots,N;\eta\in(0,1] xiRn,yi{1,+1},i=1,2,,N;η(0,1]

输出(求解得到的未知量): w , b w,b w,b

(1)选取初值 w 0 , b 0 w_0,b_0 w0,b0

(2)在训练集中选取数据 ( x i , y i ) (x_i,y_i) (xi,yi)

(3)如果 y i ( w ⋅ x i + b ) ≤ 0 y_i(w\cdot x_i + b)\le 0 yi(wxi+b)0

w ← w + η y i x i b ← b + η y i w\leftarrow w+\eta y_ix_i \\ b\leftarrow b+\eta y_i ww+ηyixibb+ηyi

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

样例

例子采取的是书中的例2.1,输入有 x 1 = ( 3 , 3 ) T , x 2 = ( 4 , 3 ) T , x 3 = ( 1 , 1 ) T x_1=(3,3)^T,x_2=(4,3)^T,x_3=(1,1)^T x1=(3,3)T,x2=(4,3)T,x3=(1,1)T,对应地, y 1 = + 1 , y 2 = + 1 , y 3 = − 1 y_1=+1,y_2=+1,y_3=-1 y1=+1,y2=+1,y3=1.分开这两类点的过程即是感知机学习训练的过程,迭代过程超平面及参数变化过程如下:
迭代过程

样例实现代码地址


(挖坑)收敛性证明对偶形式之后再进行补充

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值