感知机

简介

感知机是二分类的线性分类模型,在特征空间中将实例划分为正负两类的分离超平面,属于判别式模型

模型

假设输入空间是 x ⊆ R x\subseteq R xR,输出空间是 Y = { − 1 , + 1 } Y=\lbrace-1,+1\rbrace Y={1,+1}。由输入空间到输出空间的如下函数:
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 , x > = 0 sign(x)=1, x>=0 sign(x)=1,x>=0
s i g n ( x ) = − 1 , x < 0 sign(x)=-1, x<0 sign(x)=1,x<0
线性方程 w x + b = 0 wx+b=0 wx+b=0对应于输入空间的一个超平面 s s s,其中 w w w是其法向量, b b b是截距。这个超平面将空间划分为正负2个部分。

损失函数的一个自然选择是误分类点的总数,但是这样的损失函数不是参数 w w w b b b的连续可导函数,不易优化。损失函数的另一个选择是误分类点到超平面 s s s的总距离。
推导:点 x 0 x_0 x0到超平面 s s s距离 d d d
x 0 x_0 x0在平面 s s s上的投影为 x 1 x_1 x1,则 w ∗ x 1 + b = 0 w*x1+b=0 wx1+b=0
由于向量 x 0 x 1 → \overrightarrow{x_0x_1} x0x1 与法向量 w w w平行,所以
∣ w ∗ x 0 x 1 → ∣ = ∣ w ∣ ∣ x 0 x 1 → ∣ = w 1 2 + w 2 2 + . . . + w n 2 ∗ d = ∣ ∣ w ∣ ∣ d |w*\overrightarrow{x_0x_1}|=|w||\overrightarrow{x_0x_1}|=\sqrt{{w_1}^2+{w_2}^2+...+{w_n}^2}*d=||w||d wx0x1 =wx0x1 =w12+w22+...+wn2 d=wd
又因为 w ∗ x 0 x 1 → = w 1 ( x 0 1 − x 1 1 ) + w 2 ( x 0 2 − x 1 2 ) + . . . + w N ( x 0 N − x 1 N ) w*\overrightarrow{x_0x_1}=w_1({x_0}^1-{x_1}^1)+w_2({x_0}^2-{x_1}^2)+...+w_N({x_0}^N-{x_1}^N) wx0x1 =w1(x01x11)+w2(x02x12)+...+wN(x0Nx1N)
= w 1 x 0 1 + w 2 x 0 2 + . . . + w N x 0 N − ( w 1 x 0 1 + w 2 x 1 2 + . . . + w N x 1 N ) =w_1{x_0}^1+w_2{x_0}^2+...+w_N{x_0}^N-(w_1{x_0}^1+w_2{x_1}^2+...+w_N{x_1}^N) =w1x01+w2x02+...+wNx0N(w1x01+w2x12+...+wNx1N)
= w 1 x 0 1 + w 2 x 0 2 + . . . + w N x 0 N + b = ∣ w x 0 + b ∣ =w_1{x_0}^1+w_2{x_0}^2+...+w_N{x_0}^N+b =|wx_0+b| =w1x01+w2x02+...+wNx0N+b=wx0+b
所以
∣ ∣ w ∣ ∣ d = ∣ w x 0 + b ∣ ||w||d=|wx_0+b| wd=wx0+b
d = 1 ∣ ∣ w ∣ ∣ ∣ w x 0 + b ∣ d=\frac{1}{||w||}|wx_0+b| d=w1wx0+b
其次对于误分类数据 ( x i , y i ) (x_i, y_i) (xi,yi)来说, − y i ( w x i + b ) > 0 -y_i(wx_i+b)>0 yi(wxi+b)>0,到超平面 s s s的距离为 − 1 ∣ ∣ w ∣ ∣ y i ( w x i + b ) -\frac{1}{||w||}y_i(wx_i+b) w1yi(wxi+b),假设误分类点集合为M,那么所有误分类点到 s s s的总距离为: − 1 ∣ ∣ w ∣ ∣ ∑ x i ∈ M y i ( w x i + b ) -\frac{1}{||w||}\sum_{x_i\in{M}}y_i(wx_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(wx_i+b) L(w,b)=xiMyi(wxi+b)
显然,损失函数是 w w w, b b b的连续可导函数。因为如果没有误分类点,损失函数值是0,而且,误分类点越少,误分类点离超平面越近,损失函数值就越小。

算法

采用随机梯度下降法来解决 m i n L ( w , b ) minL(w,b) minL(w,b)
首先任意选取一个超平面 w 0 , b 0 w_0, b_0 w0,b0,然后用梯度下降法不断地极小化目标函数。极小化过程中不是一次使 M M M中所有误分类点的梯度下降,而是一次随机采取一个误分类点使其梯度下降。
损失函数的梯度: ∇ w L ( w , b ) = − ∑ x i ∈ M y i x i \nabla_wL(w,b)=-\sum_{x_i\in{M}}y_ix_i wL(w,b)=xiMyixi ∇ w L ( w , b ) = − ∑ x i ∈ M y i \nabla_wL(w,b)=-\sum_{x_i\in{M}}y_i wL(w,b)=xiMyi

具体算法
输入:训练数据集 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),其中 x ∈ R N , y ∈ { − 1 , + 1 } x\in{R^N}, y\in{\{-1,+1\}} xRN,y{1,+1},学习率 η \eta η
输出: w , b w,b w,b;感知机模型 f ( x ) = s i g n ( w x + b ) f(x)=sign(wx+b) f(x)=sign(wx+b)
step1. 选取初值 w 0 , b 0 w_0,b_0 w0,b0
step2. 在训练集中选取数据 ( x i , y i ) (x_i, y_i) (xi,yi)
step3. 如果 y i ( w x i + b ) < 0 y_i(wx_i+b)<0 yi(wxi+b)<0,更新:
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
step4. 转至step2,直至训练集中没有误分类点
直观解释:当一个实例点被误分类,即位于分离超平面的错误一侧时,则调整 w , b w,b w,b的值,使分离超平面越过该误分类点,使其被正确分类。

参考文献

《统计学习方法》 李航

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值