第二章感知机.2.1 感知机模型

本课程来自深度之眼,部分截图来自课程视频以及李航老师的《统计学习方法》第二版。
公式输入请参考:在线Latex公式

前言

理解感知机模型解决的问题,模型形式、学习策略和求解算法。
详细说明:第2章讲了在数据线性可分的情况下的感知机模型。通过阅读2.1节,理解感知机模型的基本思想和模型形式;通过阅读2.2节了解感知机模型对应的优化问题的原始形式和对偶形式;2.3节对感知机的收敛性进行了证明。

学习目标:
0.导读视频。
1.掌握感知机的模型形式、损失函数及对应的优化问题。
3.理解感知机模型中随机梯度算法的收敛性。
4.掌握感知机的算法实现。
在这里插入图片描述

红豆与绿豆

假设有如下图分布的红豆(点)和绿豆(点),那么如果我们肉眼来划分这两类点,很简单
在这里插入图片描述
但是如何能让计算机学会划分这两类点呢?这里可以看到黄色线,或者说处于第二四象限的无数条直线都可以划分好这两类点,如果平面上没有直线能够划分这些点,如何找到一个能够划分大部分点的直线?也就是要完成以下两个任务:
1.找到一个好的直线(能够完全划分所有点)
2.量化直线分类的效果
对于第2点,我们可以把所有分错的点和直线的距离求和,让这段求和的距离最小,这条直线就是我们要找的。

小结一下就是以下四点:
1.一条直线不分错一个点,这就是好的直线。
2.模型要尽可能找到好的直线。
3.如果没有好的直线,在差的直线中找到较好的直线。
4.判断直线多差的方式:分错的点到直线的距离求和(越小越好)。

感知机模型

通过上面的例子我们知道,我们需要找到一个模型(函数) f ( x ) f(x) f(x),吃一个输入(豆子),然后模型给出输出(豆子的类型是红豆还是绿豆)
这个函数可以写为:
f ( x ) = s i g n ( w x + b ) f(x)=sign(wx+b) f(x)=sign(wx+b)
其中
s i g n ( x ) = { + 1 ,  if  x ≥ 0 − 1 ,  if  x < 0 sign(x)=\begin{cases} &+1, \text{ if } x\ge 0 \\ &-1, \text{ if } x<0 \end{cases} sign(x)={+1, if x01, if x<0
w x + b wx+b wx+b则可以看做是超平面,在二维平面中是一条直线,在三维空间是一个面,在四维空间是一个三维空间,在五维空间是一个思维空间。
例如,考虑不同维度的豆子的特征:
直径: ( x 1 ) → ( w 1 ) ⋅ ( x 1 ) (x_1)→(w_1)·(x_1) (x1)(w1)(x1)
直径-质量: ( x 1 , x 2 ) → ( w 1 , w 2 ) ⋅ ( x 1 , x 2 ) (x_1,x_2)→(w_1,w_2)·(x_1,x_2) (x1,x2)(w1,w2)(x1,x2)
直径-质量-光滑度: ( x 1 , x 2 , x 3 ) → ( w 1 , w 2 , w 3 ) ⋅ ( x 1 , x 2 , x 3 ) (x_1,x_2,x_3)→(w_1,w_2,w_3)·(x_1,x_2,x_3) (x1,x2,x3)(w1,w2,w3)(x1,x2,x3)
这个时候w和x可认为是向量。
下面是正式定义:
w ⋅ x + b w·x+b wx+b是一个 n n n维空间中的超平面 S S S,其中 w w w是超平面的法向量, b b b是超平面的截距,这个超平面将特征空间划分成两部分,位于两部分的点分别被分为正负两类,所以,超平面 S S S称为分离超平面。
其中
w w w是超平面的法向量;
b b b是超平面的截距;
特征空间也就是整个 n n n维空间,样本的每个属性都叫一个特征,特征空间的意思是在这个空间中可以找到样本所有的属性组合。

感知机的学习策略

既然前面说了判断直线多差的方法。方法中提到了要计算点到超平面的距离,这里看下这个矩阵如何度量比较稳妥
一种是函数间距, x 0 x_0 x0到超平面的公式为:
∣ w ⋅ x 0 + b ∣ |w\cdot x_0+b| wx0+b
模型目标就是要最小化:
∑ i = 1 n ∣ w ⋅ x i + b ∣ \sum_{i=1}^n|w\cdot x_i+b| i=1nwxi+b
点在线的两侧,其中一侧的值为负,而距离是不能为负数,所以外面套上绝对值,这个距离实际上就是 ∣ w ⋅ x 0 + b ∣ = ∣ y ∣ |w\cdot x_0+b|=|y| wx0+b=y
如果将这个超平面的系数进行缩放,超平面是不变的,例如: 1 2 w x + 1 2 b = 0 \cfrac{1}{2}wx+\cfrac{1}{2}b=0 21wx+21b=0 2 w x + 2 b = 0 2wx+2b=0 2wx+2b=0,这两个直线和 w x + b = 0 wx+b=0 wx+b=0是同一条,没有任何变化,但是如果用缩放后的直线去求函数间距,会发现间距有变化, 1 2 w x + 1 2 b = 1 2 y \cfrac{1}{2}wx+\cfrac{1}{2}b=\cfrac{1}{2}y 21wx+21b=21y 2 w x + 2 b = 2 y 2wx+2b=2y 2wx+2b=2y,也就是说模型就不用优化参数了,作弊直接把w和b等比例弄小,模型目标就实现了。
另外一种是几何间距, x 0 x_0 x0到超平面的公式为:
1 ∣ ∣ w ∣ ∣ 2 ∣ w ⋅ x 0 + b ∣ \cfrac{1}{||w||_2}|w\cdot x_0+b| w21wx0+b
就是整体除以L2-norm,即(有时候2不写):
∣ ∣ w ∣ ∣ 2 = ∑ i = 1 N w i 2 ||w||_2=\sqrt{\sum_{i=1}^N}w_i^2 w2=i=1N wi2
再看下放大系数会发生什么:
1 ∣ ∣ 2 w ∣ ∣ 2 ∣ 2 w x 0 + 2 b ∣ = 1 ( 2 w ) 2 ∣ 2 w x 0 + 2 b ∣ = 1 w 2 ∣ w ⋅ x 0 + b ∣ \cfrac{1}{||2w||_2}|2wx_0+2b|=\cfrac{1}{\sqrt{(2w)^2}}|2wx_0+2b|=\cfrac{1}{\sqrt{w^2}}|w\cdot x_0+b| 2w212wx0+2b=(2w)2 12wx0+2b=w2 1wx0+b
不变。

原始形式

对于误分类数据而言:
− y i ( w ⋅ x i + b ) > 0 -y_i(w\cdot x_i+b)>0 yi(wxi+b)>0


上式的推导,以红绿豆为例:
假设模型用 w ⋅ x i + b > 0 w\cdot x_i+b>0 wxi+b>0表示红豆; w ⋅ x i + b < 0 w\cdot x_i+b<0 wxi+b<0表示绿豆。同样的,对于标签而言, y = 1 y=1 y=1表示红豆; y = − 1 y=-1 y=1表示绿豆。
当模型预测为绿豆,实际上也是绿豆的时候:
− y i ( w ⋅ x i + b ) = − ( − 1 ) ( w ⋅ x i + b ) = w ⋅ x i + b < 0 -y_i(w\cdot x_i+b)=-(-1)(w\cdot x_i+b)=w\cdot x_i+b<0 yi(wxi+b)=(1)(wxi+b)=wxi+b<0
当模型预测为红豆,实际上也是红豆的时候:
− y i ( w ⋅ x i + b ) = − ( 1 ) ( w ⋅ x i + b ) = − ( w ⋅ x i + b ) < 0 -y_i(w\cdot x_i+b)=-(1)(w\cdot x_i+b)=-(w\cdot x_i+b)<0 yi(wxi+b)=(1)(wxi+b)=(wxi+b)<0
以上是正确分类的情况,下面看误分类的情况:
当模型预测为绿豆,实际上是红豆的时候:
− y i ( w ⋅ x i + b ) = − ( 1 ) ( w ⋅ x i + b ) = − ( w ⋅ x i + b ) > 0 -y_i(w\cdot x_i+b)=-(1)(w\cdot x_i+b)=-(w\cdot x_i+b)>0 yi(wxi+b)=(1)(wxi+b)=(wxi+b)>0
当模型预测为红豆,实际上是绿豆的时候:
− y i ( w ⋅ x i + b ) = − ( − 1 ) ( w ⋅ x i + b ) = w ⋅ x i + b > 0 -y_i(w\cdot x_i+b)=-(-1)(w\cdot x_i+b)=w\cdot x_i+b>0 yi(wxi+b)=(1)(wxi+b)=wxi+b>0


误分类点 x i x_i xi到超平面 S S S的距离(几何间距):
− 1 ∣ ∣ w ∣ ∣ 2 y i ( w ⋅ x i + b ) -\cfrac{1}{||w||_2}y_i(w\cdot x_i+b) w21yi(wxi+b)
因此,所有误分类点到超平面 S S S的距离为( M M M为误分类点的集合):
− 1 ∣ ∣ w ∣ ∣ 2 ∑ x i ∈ M y i ( w ⋅ x i + b ) -\cfrac{1}{||w||_2}\sum_{x_i \in M}y_i(w\cdot x_i+b) w21xiMyi(wxi+b)
损失函数可以写为(这里由于感知机是误分类驱动的,目标是没有分错的点,因此可以使用函数间隔来简化计算,因为没有分错的点也不会存在距离的计算了):
L ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x i + b ) (1) L(w,b)=-\sum_{x_i \in M}y_i(w\cdot x_i+b)\tag 1 L(w,b)=xiMyi(wxi+b)(1)

算法步骤

1.任意选取超平面 w 0 , b 0 w_0,b_0 w0,b0
2.使用梯度下降法最小化损失函数(公式1),就是分别对 w , b w,b w,b求偏导
∂ L ( w , b ) ∂ w = − ∑ x i ∈ M y i x i \cfrac{\partial L(w,b)}{\partial w} = -\sum_{x_i \in M}y_ix_i wL(w,b)=xiMyixi
∂ L ( w , b ) ∂ b = − ∑ x i ∈ M y i \cfrac{\partial L(w,b)}{\partial b} = -\sum_{x_i \in M}y_i bL(w,b)=xiMyi
3.令上面的偏导等于0,求解后更新 w , b w,b w,b(注意,这里如果对所有误分类点进行遍历求和就是普通梯度下降,如果每次更新只随机取一个误分类点进行处理那么就是SGD,就是把求和符号去掉)
w ← w + η ∑ x i ∈ M y i x i b ← b + η ∑ x i ∈ M y i w\leftarrow w+\eta \sum_{x_i \in M}y_ix_i\\ b\leftarrow b+\eta \sum_{x_i \in M}y_i ww+ηxiMyixibb+ηxiMyi

例2.1

训练数据集中,正例点为 x 1 = ( 3 , 3 ) T , x 2 = ( 4 , 3 ) T x_1=(3,3)^T,x_2=(4,3)^T x1=(3,3)T,x2=(4,3)T,负例点为 x 3 = ( 1 , 1 ) T x_3=(1,1)^T x3=(11)T求解感知机模型 f ( x ) = s i g n ( w ⋅ x + b ) f(x)=sign(w·x+b) f(x)=sign(wx+b).其中 w = ( w ( 1 ) , w ( 2 ) ) T , x = ( x ( 1 ) , x ( 2 ) ) T w=(w^{(1)},w^{(2)})^T,x=(x^{(1)},x^{(2)})^T w=(w(1),w(2))Tx=(x(1),x(2))T
解:

  1. 构建目标函数
    min ⁡ L ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x i + b ) \min L(w,b)=-\sum_{x_i \in M}y_i(w\cdot x_i+b) minL(w,b)=xiMyi(wxi+b)
  2. 梯度下降法求解 w , b w,b w,b,假设步长为1
    1)取初始值 w 0 = 0 , b 0 = 0 w_0=0,b_0=0 w0=0,b0=0
    2)对于 x 1 x_1 x1 y 1 ( w 0 ⋅ x 1 + b 0 ) = 0 y_1(w_0\cdot x_1+b_0)=0 y1(w0x1+b0)=0未被正确分类,更新 w , b w,b w,b(用上面第3步的公式)
    w 1 = w 0 + η y 1 x 1 = 0 + 1 × 1 × ( 3 , 3 ) T = ( 3 , 3 ) T b 1 = b 0 + η y 1 = 0 + 1 × 1 = 1 w_1=w_0+\eta y_1x_1=0+1\times 1\times (3,3)^T=(3,3)^T\\ b_1 = b_0+\eta y_1=0+1\times1=1 w1=w0+ηy1x1=0+1×1×(3,3)T=(3,3)Tb1=b0+ηy1=0+1×1=1
    更新后的模型为:
    w 1 ⋅ x + b 1 = 3 x ( 1 ) + 3 x ( 2 ) + 1 w_1\cdot x +b_1=3x^{(1)}+3x^{(2)}+1 w1x+b1=3x(1)+3x(2)+1
  3. 对于 x 1 , x 2 x_1,x_2 x1,x2 − y i ( w 1 ⋅ x i + b ) < 0 -y_i(w_1\cdot x_i+b)<0 yi(w1xi+b)<0,说明是正确分类,对于 x 3 x_3 x3 y 3 ( w 1 ⋅ x 3 + b 1 ) < 0 y_3(w_1\cdot x_3+b1)<0 y3(w1x3+b1)<0,说明是误分类,更新 w , b w,b w,b
    w 2 = w 1 + η y 3 x 3 = ( 3 , 3 ) T + 1 × ( − 1 ) × ( 1 , 1 ) T = ( 2 , 2 ) T b 2 = b 1 + η y 3 = 1 + 1 × ( − 1 ) = 0 w_2=w_1+\eta y_3x_3=(3,3)^T+1\times (-1)\times (1,1)^T=(2,2)^T\\ b_2 = b_1+\eta y_3=1+1\times (-1)=0 w2=w1+ηy3x3=(3,3)T+1×(1)×(1,1)T=(2,2)Tb2=b1+ηy3=1+1×(1)=0
    更新后的模型为:
    w 2 ⋅ x + b 2 = 2 x ( 1 ) + 2 x ( 2 ) w_2\cdot x +b_2=2x^{(1)}+2x^{(2)} w2x+b2=2x(1)+2x(2)
  4. 以此往复,直到没有误分类点,损失函数达到极小。
    在这里插入图片描述

小结

1.感知机通过构造超平面的形式划分不同类的点。(单个感知机只能做二分类)
2.感知机属于线性判别模型,因为它的判别边界是线性的。
3.函数间隔和几何间隔的区别。要知道为什么感知机为什么能用函数间隔?
4.这里的梯度更新一般用随机梯度下降(每次随机取一个误分类点更新模型梯度)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oldmao_2000

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值