第三章 感知机

1. 模型介绍和学习策略

感知机(perceptron)是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和−1二值。感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型。

1.1 模型介绍

  • 输入空间:X⊆Rn\mathcal{X}\subseteq R^nXRn; 输入: x=(x(1),x(2),...,x(n))T∈Xx=(x^{(1)},x^{(2)},...,x^{(n)})^T \in \mathcal{X}x=(x(1),x(2),...,x(n))TX

  • 输出空间:Y={+1,−1}\mathcal{Y}=\{+1,-1\}Y={+1,1}; 输出:y∈Yy \in \mathcal{Y}yY

  • 感知机:f(x)=sign(wx+b)={+1,wx+b≥0−1,wx+b<0f(x)=sign(wx+b) = \begin{cases} +1, wx+b \geq 0 \\ -1, wx+b \lt 0 \end{cases} f(x)=sign(wx+b)={+1,wx+b01,wx+b<0
    其中,w=(w(1),w(2),...,w(n))T∈Rnw=(w^{(1)},w^{(2)},...,w^{(n)})^T \in R^nw=(w(1),w(2),...,w(n))TRn称为权值(Weight),b∈Rb \in RbR称为偏置(Bias),wxwxwx表示内积
    wx=w(1)x(1)+w(2)x(2)+...+w(n)x(n)wx=w^{(1)}x^{(1)}+w^{(2)}x^{(2)}+...+w^{(n)}x^{(n)}wx=w(1)x(1)+w(2)x(2)+...+w(n)x(n)

  • 假设空间:F={f∣f(x)=wx+b}\mathcal{F}=\{f|f(x)=wx+b\}F={ff(x)=wx+b}

线性方程:wx+b=0wx+b=0wx+b=0

  • 特征空间RnR^nRn中的一个超平面SSS。超平面就是比环境空间RnR^nRn少一维的子空间

  • 法向量:www 垂直于超平面; 截距:bbb

  • −b∣∣w∣∣-\frac{b}{||w||}∣∣w∣∣b表示原点到超平面之间的距离

在这里插入图片描述

感知机模型的流程图:

在这里插入图片描述

1.2 学习策略

1.2.1 条件

数据集的线性可分性

给定数据集:T={(x1,y1),(x2,y2),...,(xN,yN)}T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}T={(x1,y1),(x2,y2),...,(xN,yN)}

若存在某个超平面SSS : wx+b=0wx+b=0wx+b=0

能够将数据集的正负实例点完全正确的划分到超平面两侧,即

{yi=+1,wxi+b>0yi=−1,wxi+b<0\begin{cases} y_i=+1,wx_i+b>0 \\ y_i=-1,wx_i+b<0 \end{cases}{yi=+1,wxi+b>0yi=1,wxi+b<0

那么,称TTT为线性可分数据集,否则为线性不可分

1.2.2 感知机学习策略

  • ∀x0∈Rn\forall x_0 \in R^nx0Rn 到超平面SSS的距离:∣wx0+b∣∣∣w∣∣\frac{|wx_0+b|}{||w||}∣∣w∣∣wx0+b ; 这可以由点到直线的距离公式得出,∣∣w∣∣||w||∣∣w∣∣L2L_2L2范数

  • x0x_0x0是正确分类点,则
    ∣wx0+b∣∣∣w∣∣={wx0+b∣∣w∣∣,y0=+1−wx0+b∣∣w∣∣,y0=−1\dfrac{|wx_0+b|}{||w||}= \begin{cases} \dfrac{wx_0+b}{||w||},y_0=+1 \\ -\dfrac{wx_0+b}{||w||},y_0=-1 \end{cases}∣∣w∣∣wx0+b= ∣∣w∣∣wx0+b,y0=+1∣∣w∣∣wx0+b,y0=1

  • x0x_0x0是错误分类点,则
    ∣wx0+b∣∣∣w∣∣={−wx0+b∣∣w∣∣,y0=+1wx0+b∣∣w∣∣,y0=−1=−y0(wx0+b)∣∣w∣∣\dfrac{|wx_0+b|}{||w||}= \begin{cases} -\dfrac{wx_0+b}{||w||},y_0=+1\\ \dfrac{wx_0+b}{||w||},y_0=-1 \end{cases} =\dfrac{-y_0(wx_0+b)}{||w||}∣∣w∣∣wx0+b= ∣∣w∣∣wx0+b,y0=+1∣∣w∣∣wx0+b,y0=1=∣∣w∣∣y0(wx0+b)

  • 误分类点xix_ixiSSS的距离:−yi(wxi+b)∣∣w∣∣-\dfrac{y_i(wx_i+b)}{||w||}∣∣w∣∣yi(wxi+b)

  • 所有误分类点到SSS的距离:−∑xi∈Myi(wxi+b)∣∣w∣∣-\dfrac{\sum\limits_{x_i \in M}y_i(wx_i+b)}{||w||}∣∣w∣∣xiMyi(wxi+b) ,其中MMM代表所有误分类点的集合

  • 由于距离大于等于0,因此误分类点:−yi(wxi+b)≥0-y_i(wx_i+b) \geq0yi(wxi+b)0,即yi(wxi+b)≤0y_i(wx_i+b) \leq 0yi(wxi+b)0表示样本被误分类

  • 损失函数:L(w,b)=−∑xi∈Myi(wxi+b)L(w,b)=-\sum_{x_i\in M}y_i(wx_i+b)L(w,b)=xiMyi(wxi+b)

2. 学习算法

2.1 原始形式

2.1.1 算法

  • 损失函数: L(w,b)=−∑xi∈Myi(wxi+b)L(w,b)=-\sum_{x_i\in M}y_i(wx_i+b)L(w,b)=xiMyi(wxi+b)

  • 梯度:ΔwL(w,b)=−∑xi∈Myixi\begin{aligned} \Delta_wL(w,b)=-\sum_{x_i \in M}y_ix_i \end{aligned}ΔwL(w,b)=xiMyixi ; ΔbL(w,b)=−∑xi∈Myi\Delta_bL(w,b)=-\sum_{x_i \in M} y_iΔbL(w,b)=xiMyi

  • 参数更新:

    • 批量梯度下降法(Batch Gradient Descent):每次迭代时使用所有误分类点来进行参数更新:
      w←w+η∑xi∈Myixiw \leftarrow w + \eta \sum_{x_i \in M}y_ix_iww+ηxiMyixi; b←b+η∑xi∈Myib \leftarrow b +\eta \sum_{x_i \in M}y_ibb+ηxiMyi
      其中,η(0≤η≤1)\eta(0\leq\eta\leq1)η(0η1)代表步长

    • 随机梯度下降法(Stochastic Gradient Descent):每次随机选取一个误分类点进行参数更新:
      w←w+ηyixiw \leftarrow w+\eta y_ix_iww+ηyixi ; b←b+ηyib \leftarrow b +\eta y_ibb+ηyi

    • 小批量梯度下降法(Mini-batch Gradient Descent):每次迭代时从误分类点中随机选取一个小批量Mk(1<k<∣M∣)M_k(1<k<|M|)Mk(1<k<M),基于这个小批量中的样本计算梯度进行参数更新:
      w←w+η∑xi∈Mkyixiw \leftarrow w + \eta\sum_{x_i \in M_k}y_ix_iww+ηxiMkyixi; b←b+η∑xi∈Mkyib \leftarrow b +\eta \sum_{x_i \in M_k}y_ibb+ηxiMkyi

    • MGD比BGD更高效,不需要扫描全部误分类点;
      比SGD更稳定,梯度估计的方差较小,收敛过程更平滑

训练具体步骤:

  • 输入:训练集T={(x1,y1),(x2,y2),...,(xN,yN)}T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}T={(x1,y1),(x2,y2),...,(xN,yN)}
    其中,xi∈X⊆Rn,y∈Y={+1,−1}x_i \in \mathcal{X} \subseteq \R^n,y \in \mathcal{Y}=\{+1,-1\}xiXRn,yY={+1,1};步长η(0<η<1)\eta(0<\eta<1)η(0<η<1)

  • 输出:w,bw,bw,b; 感知机模型f(x)=sign(w⋅x+b)f(x) = sign(w\cdot x+b)f(x)=sign(wx+b)

下面使用随机梯度下降法(SGD)进行训练:

  1. 选取初始值w0,b0w_0,b_0w0,b0

  2. 于训练集中随机选取(xi,yi)(x_i,y_i)(xi,yi)

  3. yi(wx+b)≤0y_i(wx+b)\leq 0yi(wx+b)0,样本被误分类,此时进行参数更新:
    w←w+ηyixiw \leftarrow w+\eta y_ix_iww+ηyixi; b←b+ηyib \leftarrow b +\eta y_ibb+ηyi

  4. 转到2,直到训练集中没有误分类样本点

在这里插入图片描述

对于感知机模型,参数www决定分离超平面的旋转程度,参数bbb决定分离超平面的位移量。

2.1.2 例题

  • 输入:训练集T={(x1,+1),(x2,+1),(x3,+1)}T=\{(x_1,+1),(x_2,+1),(x_3,+1)\}T={(x1,+1),(x2,+1),(x3,+1)}
    其中,x1=(3,3)T,x2=(4,3)T,x3=(1,1)Tx_1=(3,3)^T,x_2=(4,3)^T,x_3=(1,1)^Tx1=(3,3)T,x2=(4,3)T,x3=(1,1)T,设η=1\eta=1η=1

  • 输出:w,bw,bw,b; 感知机模型f(x)=sign(w⋅x+b)f(x) = sign(w\cdot x+b)f(x)=sign(wx+b)

在这里插入图片描述

  • 学习问题:arg min⁡w,bL(w,b)=arg min⁡w,b[−∑xi∈Myi(w⋅xi+b)]\argmin_{w,b}L(w,b)=\argmin_{w,b}[-\sum_{x_i \in M}y_i(w\cdot x_i+b)]argminw,bL(w,b)=argminw,b[xiMyi(wxi+b)]
  1. 选取初始值w0=(0,0)T,b0=0w_0=(0,0)^T,b_0=0w0=(0,0)T,b0=0

  2. 对于点x1x_1x1有:y1(w0⋅x1+b0)=+1×((0,0)T⋅(3,3)T+0)=0y_1(w_0\cdot x_1+b_0)=+1\times((0,0)^T\cdot(3,3)^T+0)=0y1(w0x1+b0)=+1×((0,0)T(3,3)T+0)=0,为误分类点

    1. 更新参数:w1=w0+ηy1x1=(3,3)Tw_1=w_0+\eta y_1x_1=(3,3)^Tw1=w0+ηy1x1=(3,3)T,b1=b0+ηy1=1b_1=b_0+\eta y_1=1b1=b0+ηy1=1

    2. 模型:w1⋅x+b=3x(1)+3x(2)+1w_1\cdot x+b=3x^{(1)}+3x^{(2)}+1w1x+b=3x(1)+3x(2)+1

  3. 对于点x1x_1x1有:y1(w1x1+b1)=+1×(3x1(1)+3x1(2)+1)=19>0y_1(w_1x_1+b_1)=+1\times(3x_1^{(1)}+3x_1^{(2)}+1)=19>0y1(w1x1+b1)=+1×(3x1(1)+3x1(2)+1)=19>0,样本正确分类
    对于点x2x_2x2有:y2(w1⋅x2+b1)=+1×(3x2(1)+3x2(2)+1)=22>0y_2(w_1\cdot x_2+b_1)=+1 \times(3x_2^{(1)}+3x_2^{(2)}+1)=22>0y2(w1x2+b1)=+1×(3x2(1)+3x2(2)+1)=22>0,样本正确分类
    对于点x3x_3x3有:y3(w1⋅x3+b1)=+1×(3x3(1)+3x3(2)+1)=−7<0y_3(w_1\cdot x_3+b_1)=+1 \times(3x_3^{(1)}+3x_3^{(2)}+1)=-7<0y3(w1x3+b1)=+1×(3x3(1)+3x3(2)+1)=7<0,样本误分类

    1. 更新参数: w2=w1+ηy3x3=(2,2)Tw_2=w_1+\eta y_3x_3=(2,2)^Tw2=w1+ηy3x3=(2,2)T,b2=b1+ηy3=0b_2=b_1+\eta y_3 =0b2=b1+ηy3=0

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

  4. 重复以上步骤,直到没有误分类点

在这里插入图片描述

得到参数w7=(1,1)Tw_7=(1,1)^Tw7=(1,1)T , b7=−3b_7=-3b7=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

结果:

  • 分离超平面: 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)

注: 若采取不同的顺序可能得到不同的分离超平面

  • 若误分类点依次取x1,x3,x3,x3,x1,x3,x3x_1,x_3,x_3,x_3,x_1,x_3,x_3x1,x3,x3,x3,x1,x3,x3,可得分离超平面:x(1)+x(2)−3=0x^{(1)}+x^{(2)}-3=0x(1)+x(2)3=0

  • 若误分类点依次取x1,x3,x3,x3,x2,x3,x3,x3,x1,x3,x3x_1,x_3,x_3,x_3,x_2,x_3,x_3,x_3,x_1,x_3,x_3x1,x3,x3,x3,x2,x3,x3,x3,x1,x3,x3,可得分离超平面:2x(1)+x(2)−5=02x^{(1)}+x^{(2)}-5=02x(1)+x(2)5=0

  • 可知感知机学习算法由于采用不同的初值或选取不同的误分类点,解可以不同。

在这里插入图片描述

2.1.3 算法收敛性

w,xw,xw,x进行增广扩充,记w^=(wT,b)T,x^=(xT,1)T\hat{w}=(w^T,b)^T,\hat{x}=(x^T,1)^Tw^=(wT,b)T,x^=(xT,1)T,则分离超平面可写为:w^⋅x^=0\hat{w}\cdot \hat{x}=0w^x^=0

Novikoff
若训练集T={(x1,y1),(x2,y2),...,(xN,yN)}T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}T={(x1,y1),(x2,y2),...,(xN,yN)}线性可分,其中,xi∈X⊆Rn,y∈Y={+1,−1}x_i\in\mathcal{X} \subseteq \R^n,y\in \mathcal{Y}=\{+1,-1\}xiXRn,yY={+1,1}则:
(1)存在满足条件∣∣w^opt∣∣=1||\hat{w}_{opt}||=1∣∣w^opt∣∣=1的超平面w^opt⋅x^=0\hat{w}_{opt}\cdot \hat{x}=0w^optx^=0可将T完全正确分开;
∃γ>0,\exist \gamma>0,γ>0,对于所有i=1,2,...,Ni=1,2,...,Ni=1,2,...,N,有yi(w^opt⋅x^)≥γy_i(\hat{w}_{opt}\cdot \hat{x}) \geq \gammayi(w^optx^)γ

(2)令R=max⁡1≤i≤N∣∣xi^∣∣R=\max_{1\leq i \leq N}||\hat{x_i}||R=max1iN∣∣xi^∣∣,则感知机算法在T上的误分类次数k满足不等式:
k≤(Rγ)2k\leq (\dfrac{R}{\gamma})^2k(γR)2

第一条:

∵T\because TT线性可分
∴∃\therefore \exist超平面w^opt⋅x^=wopt⋅x+bopt=0\hat{w}_{opt}\cdot \hat{x}=w_{opt}\cdot x+b_{opt}=0w^optx^=woptx+bopt=0将T完全正确划分开(不妨令∣∣w^opt∣∣=1||\hat{w}_{opt}||=1∣∣w^opt∣∣=1)

那么,对有限的i=1,2,...,Ni=1,2,...,Ni=1,2,...,N均有yi(w^opt⋅x^i)=yi(wopt⋅xi+bopt)>0y_i(\hat{w}_{opt}\cdot \hat{x}_i)=y_i(w_{opt}\cdot x_i+b_{opt})>0yi(w^optx^i)=yi(woptxi+bopt)>0

γ=min⁡i{yi(wopt⋅xi+bopt)}\gamma=\min_{i}\{y_i(w_{opt}\cdot x_i+b_{opt})\}γ=mini{yi(woptxi+bopt)},则有yi(w^opt⋅x^i)=yi(wopt⋅xi+bopt)≥γy_i(\hat{w}_{opt}\cdot \hat{x}_i)=y_i(w_{opt}\cdot x_i+b_{opt})\geq\gammayi(w^optx^i)=yi(woptxi+bopt)γ

第二条:
假设w^0=0\hat{w}_0 = \mathbf{0}w^0=0,若实例被误分类,则更新权重。令w^k−1\hat{w}_{k-1}w^k1为第k个误分类实例之前的扩充权重向量,即
w^k−1=(wk−1T,bk−1)\hat{w}_{k-1}=(w_{k-1}^T,b_{k-1})w^k1=(wk1T,bk1)

yi(w^k−1⋅x^i)=yi(wk−1⋅xi+bk−1)≤0y_i(\hat{w}_{k-1}\cdot \hat{x}_i)=y_i(w_{k-1}\cdot x_i +b_{k-1})\leq0yi(w^k1x^i)=yi(wk1xi+bk1)0,则(xi,yi)(x_i,y_i)(xi,yi)为第k个误分类实例,更新参数:
{wk←wk−1+ηyixibk←bk−1+ηyi⇒w^k=w^k−1+ηyix^i\begin{cases} w_k \leftarrow w_{k-1}+\eta y_ix_i \\ b_k \leftarrow b_{k-1} + \eta y_i \end{cases} \Rightarrow \hat{w}_{k}=\hat{w}_{k-1}+\eta y_i\hat{x}_i{wkwk1+ηyixibkbk1+ηyiw^k=w^k1+ηyix^i

推导不等式{w^k⋅w^opt≥kηγ∣∣w^k∣∣2≤kη2R2\begin{cases} \hat{w}_k \cdot \hat{w}_{opt} \geq k \eta \gamma \\ ||\hat{w}_k||^2 \leq k \eta^2 R^2 \end{cases}{w^kw^optkηγ∣∣w^k2kη2R2

w^k⋅w^opt=(w^k−1+ηyix^i)⋅w^opt=w^k−1⋅w^opt+ηyiw^opt⋅x^i≥w^k−1⋅w^opt+ηγ≥w^k−2⋅w^opt+2ηγ...≥w^0⋅w^opt+kηγ≥kηγ\begin{aligned} \hat{w}_k\cdot \hat{w}_{opt} &=(\hat{w}_{k-1}+\eta y_i\hat{x}_i)\cdot \hat{w}_{opt}\\ &=\hat{w}_{k-1}\cdot \hat{w}_{opt}+\eta y_i\hat{w}_{opt}\cdot \hat{x}_i \\ &\geq \hat{w}_{k-1}\cdot \hat{w}_{opt} +\eta \gamma \\ &\geq \hat{w}_{k-2}\cdot \hat{w}_{opt} +2\eta \gamma \\ &...\\ &\geq \hat{w}_0\cdot \hat{w}_{opt}+k\eta \gamma\\ &\geq k \eta \gamma \end{aligned}w^kw^opt=(w^k1+ηyix^i)w^opt=w^k1w^opt+ηyiw^optx^iw^k1w^opt+ηγw^k2w^opt+2ηγ...w^0w^opt+kηγkηγ

∣∣w^k∣∣2=∣∣w^k−1+ηyix^i∣∣2=∣∣w^k−1∣∣2+2ηyiw^k−1x^i+η2∣∣x^i∣∣2≤∣∣w^k−1∣∣2+η2∣∣x^i∣∣2≤∣∣w^k−2∣∣2+2η2R2...≤∣∣w^1∣∣2+(k−1)η2R2≤∣∣w^0∣∣2+kη2R2=kη2R2\begin{aligned} ||\hat{w}_k||^2&=||\hat{w}_{k-1}+\eta y_i \hat{x}_i||^2\\ &=||\hat{w}_{k-1}||^2+2\eta y_i\hat{w}_{k-1}\hat{x}_i +\eta^2||\hat{x}_i||^2\\ &\leq||\hat{w}_{k-1}||^2+\eta^2||\hat{x}_i||^2\\ &\leq ||\hat{w}_{k-2}||^2 +2\eta^2 R^2\\ &...\\&\leq ||\hat{w}_1||^2+(k-1)\eta^2R^2\\&\leq||\hat{w}_0||^2+k\eta^2R^2\\ &=k\eta^2R^2 \end{aligned}∣∣w^k2=∣∣w^k1+ηyix^i2=∣∣w^k12+2ηyiw^k1x^i+η2∣∣x^i2∣∣w^k12+η2∣∣x^i2∣∣w^k22+2η2R2...∣∣w^12+(k1)η2R2∣∣w^02+kη2R2=kη2R2

结合两个不等式
{w^k⋅w^opt≥kηγ∣∣w^k∣∣2≤kη2R2⇒kηγ≤w^k⋅w^opt≤∣∣w^k∣∣∣∣w^opt∣∣≤kηR\begin{cases} \hat{w}_k \cdot \hat{w}_{opt} \geq k \eta \gamma \\ ||\hat{w}_k||^2 \leq k \eta^2 R^2 \end{cases}\Rightarrow k\eta\gamma\leq\hat{w}_k\cdot \hat{w}_{opt} \leq||\hat{w}_k||||\hat{w}_{opt}||\leq\sqrt{k}\eta R{w^kw^optkηγ∣∣w^k2kη2R2kηγw^kw^opt∣∣w^k∣∣∣∣w^opt∣∣k ηR

∴kηγ≤kηR⇒k2γ2≤kR2\therefore k\eta\gamma \leq \sqrt{k}\eta R \Rightarrow k^2\gamma^2 \leq k R^2kηγk ηRk2γ2kR2

∴k≤(Rγ)2\therefore k \leq (\frac{R}{\gamma})^2k(γR)2

  • 收敛性:k有上限,因此可以通过有限次搜索能够得到将数据集T完全分开的超平面

  • 依赖性:通过不同初值或者迭代过程中误分类点顺序不同,可能得到不同分离超平面

  • 对于线性不可分数据集T,算法不收敛,迭代结果会发生震荡

  • 为得到唯一分离超平面,需增加条件约束

2.2 对偶形式

2.2.1 算法

  • 原始形式中,若(xi,yi)(x_i,y_i)(xi,yi)为误分类点,参数更新如下:w←w+ηyixiw \leftarrow w +\eta y_ix_iww+ηyixi; b←b+ηyib \leftarrow b + \eta y_ibb+ηyi

  • 假设初始值w0=0,b0=0w_0=\mathbf{0},b_0=0w0=0,b0=0,对误分类点(xi,yi)(x_i,y_i)(xi,yi)通过上述公式更新参数
    修改nin_ini次后,w,bw,bw,b的增量分别为αiyixi\alpha_iy_ix_iαiyixiαiyi\alpha_iy_iαiyi,其中αi=niη\alpha_i=n_i\etaαi=niη
    nin_ini代表第i个实例在参数更新中贡献的次数

  • 最后学习到的参数:w=∑i=1Nαiyixiw=\sum_{i=1}^N\alpha_iy_ix_iw=i=1Nαiyixi; b=∑i=1Nαiyib=\sum_{i=1}^N\alpha_iy_ib=i=1Nαiyi

在原始算法的例子中:

加粗样式

更新次数:n1=2,n2=0,n3=5n_1=2,n_2=0,n_3=5n1=2,n2=0,n3=5,最后学习到的参数为:
w=α1y1x1+α3y3x3=(1,1)Tw=\alpha_1y_1x_1+\alpha_3y_3x_3=(1,1)^Tw=α1y1x1+α3y3x3=(1,1)T; b=α1y1+α3y3=−3b=\alpha_1y_1+\alpha_3y_3=-3b=α1y1+α3y3=3

训练具体步骤:

  • 输入:训练集T={(x1,y1),(x2,y2),...,(xN,yN)}T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}T={(x1,y1),(x2,y2),...,(xN,yN)}
    其中,xi∈X⊆Rn,y∈Y={+1,−1}x_i \in \mathcal{X} \subseteq \R^n,y \in \mathcal{Y}=\{+1,-1\}xiXRn,yY={+1,1};步长η(0<η<1)\eta(0<\eta<1)η(0<η<1)

  • 输出:α,b;\alpha,b;α,b; 感知机模型f(x)=sign(∑j=1Nαjyjxj⋅x+b)f(x)=sign(\sum_{j=1}^N\alpha_jy_jx_j\cdot x+b)f(x)=sign(j=1Nαjyjxjx+b),其中α=(α1,α2,...,αN)T\alpha=(\alpha_1,\alpha_2,...,\alpha_N)^Tα=(α1,α2,...,αN)T

  1. 选取初始值α<0>=(0,0,...,0)T\alpha^{<0>}=(0,0,...,0)^Tα<0>=(0,0,...,0)Tb<0>=0b^{<0>}=0b<0>=0

  2. 在训练集中随机选取数据(xi,yi)(x_i,y_i)(xi,yi)

  3. yi(∑j=1Nαjyjxj⋅xi+b)≤0y_i(\sum_{j=1}^N \alpha_jy_jx_j\cdot x_i+b)\leq 0yi(j=1Nαjyjxjxi+b)0,则αi←αi+η\alpha_i \leftarrow \alpha_i+\etaαiαi+η;b←b+ηyib \leftarrow b+\eta y_ibb+ηyi

  4. 转到步骤2,直至训练集中没有误分类点

步骤3中的迭代条件:

yi(∑j=1Nαjyjxj⋅xi+b)=yi[(α1y1x1+α2y2x2+...+αNyNxN)⋅xi+b]=yi(α1y1x1xi+α2y2x2xi+...+αNyNxNxi+b)≤0\begin{aligned} y_i(\sum_{j=1}^N \alpha_jy_jx_j\cdot x_i+b)&=y_i[(\alpha_1y_1x_1+\alpha_2y_2x_2+...+\alpha_Ny_Nx_N)\cdot x_i+b]\\ &=y_i(\alpha_1y_1x_1x_i+\alpha_2y_2x_2x_i+...+\alpha_Ny_Nx_Nx_i+b)\\ &\leq0 \end{aligned}yi(j=1Nαjyjxjxi+b)=yi[(α1y1x1+α2y2x2+...+αNyNxN)xi+b]=yi(α1y1x1xi+α2y2x2xi+...+αNyNxNxi+b)0

Gram矩阵(用于存储xi⋅xjx_i\cdot x_jxixj的值减少计算开销):
G=[xi⋅xj]N×N=[x1⋅x1x1⋅x2...x1⋅xNx2⋅x1x2⋅x2...x2⋅xN............xN⋅x1xN⋅x2...xN⋅xN]G=[x_i\cdot x_j]_{N\times N}=\begin{bmatrix} x_1\cdot x_1 & x_1\cdot x_2&...&x_1\cdot x_N \\ x_2\cdot x_1 & x_2\cdot x_2&...&x_2\cdot x_N \\ ... &...&...&...\\ x_N\cdot x_1 & x_N\cdot x_2&...&x_N\cdot x_N \\ \end{bmatrix}G=[xixj]N×N= x1x1x2x1...xNx1x1x2x2x2...xNx2............x1xNx2xN...xNxN

2.2.2 例题

使用原始形式中的例题:

  • 输入:训练集T={(x1,+1),(x2,+1),(x3,+1)}T=\{(x_1,+1),(x_2,+1),(x_3,+1)\}T={(x1,+1),(x2,+1),(x3,+1)}
    其中,x1=(3,3)T,x2=(4,3)T,x3=(1,1)Tx_1=(3,3)^T,x_2=(4,3)^T,x_3=(1,1)^Tx1=(3,3)T,x2=(4,3)T,x3=(1,1)T,设η=1\eta=1η=1

  • 输出:α,b;\alpha,b;α,b; 感知机模型f(x)=sign(∑j=1Nαjyjxj⋅x+b)f(x)=sign(\sum_{j=1}^N\alpha_jy_jx_j\cdot x+b)f(x)=sign(j=1Nαjyjxjx+b),其中α=(α1,α2,...,αN)T\alpha=(\alpha_1,\alpha_2,...,\alpha_N)^Tα=(α1,α2,...,αN)T

在这里插入图片描述

  1. 选取初始值α<0>=(0,0,0)T,b<0>=0\alpha^{<0>}=(0,0,0)^T,b^{<0>}=0α<0>=(0,0,0)T,b<0>=0

  2. 计算Gram矩阵:
    G=[x1⋅x1x1⋅x2x1⋅x3x2⋅x1x2⋅x2x2⋅x3x3⋅x1x3⋅x2x3⋅x3]=[1821621257672]G =\begin{bmatrix} x_1\cdot x_1 & x_1\cdot x_2 &x_1\cdot x_3\\ x_2\cdot x_1 & x_2\cdot x_2 &x_2\cdot x_3\\ x_3\cdot x_1 & x_3\cdot x_2 &x_3\cdot x_3\\ \end{bmatrix}=\begin{bmatrix} 18&21&6\\ 21&25&7\\ 6&7&2 \end{bmatrix}G= x1x1x2x1x3x1x1x2x2x2x3x2x1x3x2x3x3x3 = 1821621257672

  3. 误分类条件yi(∑j=1Nαjyjxj⋅xi+b)≤0y_i(\sum_{j=1}^N \alpha_jy_jx_j\cdot x_i+b)\leq 0yi(j=1Nαjyjxjxi+b)0,参数更新:αi←αi+η\alpha_i \leftarrow \alpha_i+\etaαiαi+η;b←b+ηyib \leftarrow b+\eta y_ibb+ηyi

  4. 对于点x1x_1x1有:y1(∑j=1Nαj<0>yjxj⋅x1+b<0>)=0y_1(\sum_{j=1}^N\alpha_j^{<0>}y_jx_j\cdot x_1+b^{<0>})=0y1(j=1Nαj<0>yjxjx1+b<0>)=0,样本误分类

    1. 更新参数: α1<1>=α1<0>+η=1,b<1>=b<0>+ηy1=1\alpha_1^{<1>}=\alpha_1^{<0>}+\eta=1,b^{<1>}=b^{<0>}+\eta y_1 =1α1<1>=α1<0>+η=1,b<1>=b<0>+ηy1=1
  5. 对于点x1x_1x1有:y1(∑j=1Nαj<1>yjxj⋅x1+b<1>)=y1(α1<1>y1x1⋅x1+b<1>)=19>0y_1(\sum_{j=1}^N\alpha_j^{<1>}y_jx_j\cdot x_1+b^{<1>})=y_1(\alpha_1^{<1>}y_1x_1\cdot x_1 +b^{<1>})=19>0y1(j=1Nαj<1>yjxjx1+b<1>)=y1(α1<1>y1x1x1+b<1>)=19>0,样本正确分类
    对于点x2x_2x2有:y2(∑j=1Nαj<1>yjxj⋅x2+b<1>)=y2(α1<1>y1x1⋅x2+b<1>)=22>0y_2(\sum_{j=1}^N\alpha_j^{<1>}y_jx_j\cdot x_2+b^{<1>})=y_2(\alpha_1^{<1>}y_1x_1\cdot x_2 +b^{<1>})=22>0y2(j=1Nαj<1>yjxjx2+b<1>)=y2(α1<1>y1x1x2+b<1>)=22>0,样本正确分类
    对于点x3x_3x3有:y3(∑j=1Nαj<1>yjxj⋅x3+b<1>)=y3(α1<1>y1x1⋅x3+b<1>)=−7<0y_3(\sum_{j=1}^N\alpha_j^{<1>}y_jx_j\cdot x_3+b^{<1>})=y_3(\alpha_1^{<1>}y_1x_1\cdot x_3 +b^{<1>})=-7<0y3(j=1Nαj<1>yjxjx3+b<1>)=y3(α1<1>y1x1x3+b<1>)=7<0,样本误分类

    1. 更新参数:α3<2>=α3<1>+η=1,b<2>=b<1>+ηy3=0\alpha_3^{<2>}=\alpha_3^{<1>}+\eta = 1,b^{<2>}=b^{<1>}+\eta y_3 =0α3<2>=α3<1>+η=1,b<2>=b<1>+ηy3=0
  6. 重复以上步骤,直到没有误分类点

  7. 得到参数:w<7>=2x1+0x2−5x3=(1,1)T,b<7>=−3w^{<7>}=2x_1+0x_2-5x_3=(1,1)^T,b^{<7>}=-3w<7>=2x1+0x25x3=(1,1)T,b<7>=3
    结果:

    1. 分离超平面:x(1)+x(2)−3=0x^{(1)}+x^{(2)}-3=0x(1)+x(2)3=0

    2. 感知机模型:f(x)=sign(x(1)+x(2)−3)f(x)=sign(x^{(1)}+x^{(2)}-3)f(x)=sign(x(1)+x(2)3)

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐