感知机介绍

定义

感知机(Perceptron)在1957年由Rosenblatt提出,是神经网络和支持向量机的基础。

感知机是一种二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,+1代表正类,-1代表负类。感知机属于判别模型,它的目标是要将输入实例通过分离超平面将正负二类分离。

数学表示1

输入
x ∈ R d 或 x = ( x 1 , x 2 , . . . . , x n ) T x∈R^d或x = (x_1,x_2,....,x_n)^T xRdx=(x1,x2,....,xn)T

输出
y ∈ { + 1 , − 1 } y∈\{+1,-1\} y{+11}

函数表示
f ( x ) = s i g n ( w T x + b ) f(x)=sign(w^Tx+b) f(x)=sign(wTx+b)

分离超平面表示 w T x + b = 0 w^Tx+b=0 wTx+b=0权值表示 w ∈ R d 或 w = ( w 1 , w 2 , . . . . , w n ) T w∈R^d或w= (w_1,w_2,....,w_n)^T wRdw=(w1,w2,....,wn)T ,截距表示为 b ∈ R b∈R bR

学习

我们给定数据集:
D = { ( x ( 1 ) , y ( 1 ) ) , ( x ( 2 ) , y ( 2 ) ) , . . . . , ( x ( n ) , y ( n ) ) } D=\{(x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),....,(x^{(n)},y^{(n)})\} D={(x(1),y(1)),(x(2),y(2)),....,(x(n),y(n))}
我们知道 x ( i ) x^{(i)} x(i) 到超平面的距离可以表示为:
1 ∣ ∣ w ∣ ∣ ( w T x ( i ) + b ) (1) \frac {1} {||w||} (w^Tx^{(i)}+b) \tag{1} w1(wTx(i)+b)(1)
其 中 ∣ ∣ w ∣ ∣ = ( w 1 2 + w 2 2 + . . . + w n 2 ) 其中||w||=\sqrt{(w_1^2+w_2^2+...+w_n^2)} w=(w12+w22+...+wn2)
对于误分类点,因为他们的输出为-1,所以我们可以将公式(1)转换为:
− 1 ∣ ∣ w ∣ ∣ y ( i ) ( w T x ( i ) + b ) (2) -\frac {1} {||w||} y^{(i)}(w^Tx^{(i)}+b) \tag{2} w1y(i)(wTx(i)+b)(2)
那么误分类点到 w T x + b = 0 w^Tx+b=0 wTx+b=0 总距离为:
− 1 ∣ ∣ w ∣ ∣ ∑ x ( i ) ∈ M y ( i ) ( w T x ( i ) + b ) (3) -\frac {1} {||w||} \sum_{x^{(i)}∈M}^{} y^{(i)}(w^Tx^{(i)}+b) \tag{3} w1x(i)My(i)(wTx(i)+b)(3)
其中M表示误分类点的集合。

不考虑 1 ∣ ∣ w ∣ ∣ \frac {1} {||w||} w1,则得到感知机的损失函数为:
E ( w , b ) = − ∑ x ( i ) ∈ M y ( i ) ( w T x ( i ) + b ) E_{(w,b)}=- \sum_{x^{(i)}∈M}^{} y^{(i)}(w^Tx^{(i)}+b) E(w,b)=x(i)My(i)(wTx(i)+b)
那么我们的目的便是:
w , b ← a r g m i n E ( w , b ) w,b\leftarrow argminE_{(w,b)} w,bargminE(w,b)

为什么可以不考虑 1 ∣ ∣ w ∣ ∣ \frac {1} {||w||} w1

1.确定分离超平面是通过法向量w和截距b来确定的, ∣ ∣ w ∣ ∣ ||w|| w的大小对w的方向没有任何影响,所以可以固定 ∣ ∣ w ∣ ∣ ||w|| w为1或不考虑 ∣ ∣ w ∣ ∣ ||w|| w

2.感知机是误分类驱动的,而判断样本点是否为误分类点只需要判断 − y ( i ) ( w T x ( i ) + b ) -y^{(i)}(w^Tx^{(i)}+b) y(i)(wTx(i)+b)的正负即可,而 1 ∣ ∣ w ∣ ∣ \frac {1} {||w||} w1不影响正负的判断,即它不影响算法学习的中间过程。

3.这样做反而还有好处,可以简化运算(分母为w求导会比较麻烦)。2

随机梯度进行优化

分别对 w w w b b b进行求导
∇ w E ( w , b ) = − ∑ x ( i ) ∈ M y ( i ) x ( i ) \nabla_wE_{(w,b)}=- \sum_{x^{(i)}∈M}^{} y^{(i)}x^{(i)} wE(w,b)=x(i)My(i)x(i)
∇ b E ( w , b ) = − ∑ x ( i ) ∈ M y ( i ) \nabla_bE_{(w,b)}=- \sum_{x^{(i)}∈M}^{} y^{(i)} bE(w,b)=x(i)My(i)
随机选择一个误分类点,则有
∇ w E ( w , b ) = − y ( i ) x ( i ) \nabla_wE_{(w,b)}=- y^{(i)}x^{(i)} wE(w,b)=y(i)x(i)
∇ b E ( w , b ) = − y ( i ) \nabla_bE_{(w,b)}=- y^{(i)} bE(w,b)=y(i)
我们的目的

  1. 输入 D D D和学习率 η ( 0 < η < 1 ) \eta{(0<\eta<1)} η(0<η<1)
  2. 输出 w w w b b b

由此我们可以采用下列步骤

  1. 赋初值 w ( 0 ) w^{(0)} w(0) b ( 0 ) b^{(0)} b(0)
  2. D D D中随机选取 ( x ( i ) , y ( i ) ) (x^{(i)},y^{(i)}) (x(i),y(i))
  3. − y ( i ) ( w T x ( i ) + b ) ≤ 0 -y^{(i)}(w^Tx^{(i)}+b)≤0 y(i)(wTx(i)+b)0更新 w w w b b b
    w ← w − η ∇ w E ( w , b ) = w + η y ( i ) x ( i ) w \leftarrow w-\eta\nabla_wE_{(w,b)}=w+\eta y^{(i)}x^{(i)} wwηwE(w,b)=w+ηy(i)x(i)
    b ← b − η ∇ b E ( w , b ) = b + η y ( i ) b \leftarrow b-\eta\nabla_bE_{(w,b)}=b+ \eta y^{(i)} bbηbE(w,b)=b+ηy(i)
  4. 转到2步骤,直到 D D D没有误分点

参考文章


  1. 超平面是什么?——理解超平面(SVM开篇之超平面详解) ↩︎

  2. 一文读懂感知机算法 ↩︎

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

码上夏雨

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

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

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

打赏作者

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

抵扣说明:

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

余额充值