感知机模型

文章介绍了感知机模型,它是一个用于二分类的线性分类器。感知机的损失函数是误分类点到超平面的总距离,通过随机梯度下降法求解最优超平面。在给定训练数据集的情况下,通过迭代更新权重和偏置,最终找到能使损失函数最小化的超平面。

1. 提出问题

问题:有一组训练数据集
T={(x1,y1),(x2,y2),…,(xN,yN)}T=\{(x_1,y_1), (x_2,y_2), \ldots ,(x_N,y_N)\}T={(x1,y1),(x2,y2),,(xN,yN)}
其中xi∈X=Rnx_i\in\mathcal{X}=R^nxiX=Rnyi∈Y={+1,−1}y_i\in\mathcal{Y}=\{+1,-1\}yiY={+1,1}i=1,2,…,Ni=1,2,\ldots,Ni=1,2,,N,求一个超平面 SSS 使其能够完全将yi=+1y_i=+1yi=+1yi=−1y_i=-1yi=1 的点分开。

2. 感知机及其损失函数

一个线性平面的方程为y=w⋅x+by=w\cdot x+by=wx+b,要将yi=+1y_i=+1yi=+1yi=−1y_i=-1yi=1 的点分开则需要让求解方程的的因变量为±1\pm 1±1,所以需要一个sign函数,sign函数的表达式为:

sign(x)={+1−1…………………………………………(2.1)sign(x)=\begin{cases} +1\\ -1 \end{cases}\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots(2.1)sign(x)={+11…………………………………………(2.1)

所以求解方程为:

f(x)=sign(w⋅x+b)……………………………………(2.2)f(x)=sign(w\cdot x+b)\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots(2.2)f(x)=sign(wx+b)……………………………………(2.2)

这个求解方程即被称为感知机。要求解这个方程只需要确定wwwbbb 的值,为了确定参数值,就需要定义一个损失函数并将损失函数及小化。

在这里插入图片描述

感知机所用的损失函数为误分类点到超平面 SSS 的总距离。首先写出空间 RnR^nRn 中任意一点 x0x_0x0 到超平面 SSS 的距离:

1∣∣w∣∣∣w⋅x0+b∣………………………………………(2.3)\frac{1}{||w||}|w\cdot x_0+b|\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots(2.3)∣∣w∣∣1wx0+b………………………………………(2.3)

这里 ∣∣w∣∣||w||∣∣w∣∣wwwL2L_2L2 范数。

对于误分类的数据 (xi,yi)(x_i,y_i)(xi,yi) 来说,−yi(wi⋅xi+b)>0-y_i(w_i\cdot x_i + b)>0yi(wixi+b)>0 成立。因为当 w⋅xi+b>0w\cdot x_i+b>0wxi+b>0 时,yi=−1y_i=-1yi=1,而当 w⋅xi+b<0w\cdot x_i+b<0wxi+b<0 时,yi=+1y_i=+1yi=+1 ,因此,误分类点 xix_ixi 到超平面 SSS 的距离是:

−1∣∣w∣∣yi(w⋅xi+b)…………………………………(2.4)-\frac{1}{||w||}y_i(w\cdot x_i+b)\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots(2.4)∣∣w∣∣1yi(wxi+b)…………………………………(2.4)

这样,假设超平面 SSS 的误分类点集合为 MMM ,那么所有误分类点到超平面 SSS 的总距离为:

−1∣∣w∣∣∑xi∈Myi(w⋅xi+b)…………………………(2.5)-\frac{1}{||w||}\sum_{x_i\in M} y_i(w\cdot x_i+b)\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots(2.5)∣∣w∣∣1xiMyi(wxi+b)…………………………(2.5)

不考虑1∣∣w∣∣\frac{1}{||w||}∣∣w∣∣1 ,就得到感知机学习的损失函数。

给定训练数据集 T=(x1,y1),(x2,y2),…,(xN,yN)T={(x_1,y_1),(x_2,y_2),\dots,(x_N, y_N)}T=(x1,y1),(x2,y2),,(xN,yN),其中,xi∈X=Rnx_i\in \mathcal{X}=R^nxiX=Rnyi∈Y={+1,−1}y_i\in \mathcal{Y}=\{+1, -1\}yiY={+1,1}i=1,2,…,Ni=1,2,\dots,Ni=1,2,,N . 感知机sign(w⋅x+b)sign(w\cdot x+b)sign(wx+b) 学习的损失函数定义为:

L(w,b)=−∑xi∈Myi(w⋅xi+b)……………………(2.6)L(w,b)=-\sum_{x_i\in M}y_i(w\cdot x_i+b)\dots\dots\dots\dots\dots\dots\dots\dots(2.6)L(w,b)=xiMyi(wxi+b)……………………(2.6)

其中 MMM 为误分类点的集合,这个损失函数就是感知机学习的经验风险函数。

3. 求解

给定训练数据集 T=(x1,y1),(x2,y2),…,(xN,yN)T={(x_1,y_1),(x_2,y_2),\dots,(x_N, y_N)}T=(x1,y1),(x2,y2),,(xN,yN),其中,xi∈X=Rnx_i\in \mathcal{X}=R^nxiX=Rnyi∈Y={+1,−1}y_i\in \mathcal{Y}=\{+1, -1\}yiY={+1,1}i=1,2,…,Ni=1,2,\dots,Ni=1,2,,N ,求参数 w,bw, bw,b ,使其为以下损失函数极小化问题的解:

minw.bL(w,b)=−∑xi∈Myi(w⋅xi+b)……………(3.1)min_{w.b}L(w,b)=-\sum_{x_i\in M}y_i(w\cdot x_i+b)\dots\dots\dots\dots\dots(3.1)minw.bL(w,b)=xiMyi(wxi+b)……………(3.1)

其中 MMM 为误分类点的集合。

采用随机梯度下降法来求解。首先,任意选取一个超平面 w0,b0w_0,b_0w0,b0,然后用随机梯度下降法不断地极小化目标函数,极小化的过程中不是一次使 MMM 中所有误分类点的梯度下降,而是一次随机选取一个误分类点使其梯度下降。

假设误分类点集合 MMM 是固定的,那么损失函数 L(w,b)L(w,b)L(w,b) 的梯度由:

∇wL(w,b)=−∑xi∈Myixi\nabla_wL(w,b)=-\sum_{x_i\in M}y_ix_iwL(w,b)=xiMyixi

∇bL(w,b)=−∑xi∈Myi\nabla_bL(w,b)=-\sum_{x_i\in M}y_ibL(w,b)=xiMyi

给出.

随机选取一个误分类点(xi,yi)(x_i,y_i)(xi,yi) ,对w,bw,bw,b 进行更新:

w←w+ηyixi……………………………………(3.2)w\gets w+\eta y_ix_i\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots(3.2)ww+ηyixi……………………………………(3.2)

b←b+ηyi………………………………………(3.3)b\gets b+\eta y_i\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots\dots(3.3)bb+ηyi………………………………………(3.3)

式中η(0<η≤1)\eta(0<\eta\leq1)η(0<η1) 是步长,在统计学系中又称为学习率. 这样,通过迭代可以期待损失函数 L(w,b)L(w,b)L(w,b) 不断减小,直到为0.

4. 例子

如下图所示的训练数据集,其正实例点是 x1=(3,3)Tx_1=(3, 3)^Tx1=(3,3)Tx2=(4,3)Tx_2=(4,3)^Tx2=(4,3)T,负实例点是 x3=(1,1)Tx_3=(1, 1)^Tx3=(1,1)T,试用感知机学习算法的原始形式求感知机模型 f(x)=sign(w⋅x+b)f(x)=sign(w\cdot x+b)f(x)=sign(wx+b). 这里 w=(w(1),w(2))Tw=(w^{(1)},w^{(2)})^Tw=(w(1),w(2))Tx=(x(1),x(2))Tx=(x^{(1)},x^{(2)})^Tx=(x(1),x(2))T.

在这里插入图片描述

解:

最优化问题为:

minw.bL(w,b)=−∑xi∈Myi(w⋅xi+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)

用第3节的方式求解 w,bw, bw,b,设学习率 η=1\eta=1η=1.

(1)取初值 w0=0,b0=0w_0=0, b_0=0w0=0,b0=0
(2)对x1=(3,3)Tx_1=(3,3)^Tx1=(3,3)Ty1(w0⋅x1+b0)=0y_1(w_0\cdot x_1+b_0)=0y1(w0x1+b0)=0,未能=被正确分类,更新 w,bw,bw,b

w1=w0+y1x1=(3,3)T,b1=b0+y1=1w_1=w_0+y_1x_1=(3,3)^T, b_1=b_0+y_1=1w1=w0+y1x1=(3,3)T,b1=b0+y1=1

得到线性模型

w1⋅x+b1=3x(1)+3x(2)+1w_1\cdot x+b_1=3x^{(1)}+3x^{(2)}+1w1x+b1=3x(1)+3x(2)+1

(3)对x1,x2x_1,x_2x1,x2,显然,y1(w1⋅x1+b1)>0y_1(w_1\cdot x_1+b_1)>0y1(w1x1+b1)>0,被正确分类,不修改w,bw,bw,b
x3=(1,1)T,y3(w1⋅x3+b1)<0x_3=(1,1)^T,y_3(w_1\cdot x_3+b_1) < 0x3=(1,1)Ty3(w1x3+b1)<0,被误分类,更新 w,bw, bw,b.

w2=w1+y3x3=(2,2)T,b2=b1+y3=0w_2=w_1+y_3x_3=(2,2)^T, b_2=b_1+y_3=0w2=w1+y3x3=(2,2)T,b2=b1+y3=0

得到线性模型

w2⋅x+b2=2x(1)+2x(2)w_2\cdot x+b_2=2x^{(1)}+2x^{(2)}w2x+b2=2x(1)+2x(2)

如此继续下去,直到

w7=(1,1)T,b7=−3w_7=(1,1)^T, b_7=-3w7=(1,1)T,b7=3

w7⋅x+b7=x(1)+x(2)−3w_7\cdot x+b_7=x^{(1)}+x^{(2)}-3w7x+b7=x(1)+x(2)3

对所有数据点 yi(w7⋅xi+b7)>0y_i(w_7\cdot x_i+b_7) > 0yi(w7xi+b7)>0,没有误分类点,损失函数达到极小

分离超平面为:

x(1)+x(2)−3=0x^{(1)}+x^{(2)}-3=0x(1)+x(2)3=0

感知机模型为:

f(x)=sign(x(1)+x(2)−3)f(x)=sign(x^{(1)}+x^{(2)}-3)f(x)=sign(x(1)+x(2)3)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

comli_cn

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

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

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

打赏作者

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

抵扣说明:

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

余额充值