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^nxi∈X=Rn,yi∈Y={+1,−1}y_i\in\mathcal{Y}=\{+1,-1\}yi∈Y={+1,−1},i=1,2,…,Ni=1,2,\ldots,Ni=1,2,…,N,求一个超平面 SSS 使其能够完全将yi=+1y_i=+1yi=+1 和 yi=−1y_i=-1yi=−1 的点分开。
2. 感知机及其损失函数
一个线性平面的方程为y=w⋅x+by=w\cdot x+by=w⋅x+b,要将yi=+1y_i=+1yi=+1 和 yi=−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)={+1−1…………………………………………(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(w⋅x+b)……………………………………(2.2)
这个求解方程即被称为感知机。要求解这个方程只需要确定www 和 bbb 的值,为了确定参数值,就需要定义一个损失函数并将损失函数及小化。

感知机所用的损失函数为误分类点到超平面 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∣∣1∣w⋅x0+b∣………………………………………(2.3)
这里 ∣∣w∣∣||w||∣∣w∣∣ 是 www 的 L2L_2L2 范数。
对于误分类的数据 (xi,yi)(x_i,y_i)(xi,yi) 来说,−yi(wi⋅xi+b)>0-y_i(w_i\cdot x_i + b)>0−yi(wi⋅xi+b)>0 成立。因为当 w⋅xi+b>0w\cdot x_i+b>0w⋅xi+b>0 时,yi=−1y_i=-1yi=−1,而当 w⋅xi+b<0w\cdot x_i+b<0w⋅xi+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(w⋅xi+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∣∣1∑xi∈Myi(w⋅xi+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^nxi∈X=Rn,yi∈Y={+1,−1}y_i\in \mathcal{Y}=\{+1, -1\}yi∈Y={+1,−1},i=1,2,…,Ni=1,2,\dots,Ni=1,2,…,N . 感知机sign(w⋅x+b)sign(w\cdot x+b)sign(w⋅x+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)=−∑xi∈Myi(w⋅xi+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^nxi∈X=Rn,yi∈Y={+1,−1}y_i\in \mathcal{Y}=\{+1, -1\}yi∈Y={+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)=−∑xi∈Myi(w⋅xi+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_i∇wL(w,b)=−∑xi∈Myixi
∇bL(w,b)=−∑xi∈Myi\nabla_bL(w,b)=-\sum_{x_i\in M}y_i∇bL(w,b)=−∑xi∈Myi
给出.
随机选取一个误分类点(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)w←w+η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)b←b+η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)T,x2=(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(w⋅x+b). 这里 w=(w(1),w(2))Tw=(w^{(1)},w^{(2)})^Tw=(w(1),w(2))T,x=(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)=−∑xi∈Myi(w⋅xi+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)T,y1(w0⋅x1+b0)=0y_1(w_0\cdot x_1+b_0)=0y1(w0⋅x1+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)}+1w1⋅x+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(w1⋅x1+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)T,y3(w1⋅x3+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)}w2⋅x+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)}-3w7⋅x+b7=x(1)+x(2)−3
对所有数据点 yi(w7⋅xi+b7)>0y_i(w_7\cdot x_i+b_7) > 0yi(w7⋅xi+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)
文章介绍了感知机模型,它是一个用于二分类的线性分类器。感知机的损失函数是误分类点到超平面的总距离,通过随机梯度下降法求解最优超平面。在给定训练数据集的情况下,通过迭代更新权重和偏置,最终找到能使损失函数最小化的超平面。
8374

被折叠的 条评论
为什么被折叠?



