如图所示的训练数据集,其正样本是x1=(3,3)⊤\boldsymbol{x}_1 = (3,3)^\topx1=(3,3)x2=(4,3)⊤\boldsymbol{x}_2 = (4,3)^\topx2=(4,3),负样本是x3=(1,1)⊤\boldsymbol{x}_3 = (1,1)^\topx3=(1,1),使用感知器算法的随机梯度法求判别函数f(x)=sgn(w⋅x+b)f(\boldsymbol{x}) = \text{sgn}(\boldsymbol{w} \cdot \boldsymbol{x} + b)f(x)=sgn(wx+b)


解答
构建最优化问题:

min⁡w,bL(w,b)=−∑xi∈Xkyi(w⋅xi+b) \min_{\boldsymbol{w},b} L(\boldsymbol{w},b) = -\sum_{\boldsymbol{x}_i\in \mathcal{X}_k} y_i (\boldsymbol{w} \cdot \boldsymbol{x}_i + b) w,bminL(w,b)=xiXkyi(wxi+b)
求解w\boldsymbol{w}wbbbα=1\alpha = 1α=1


(1) 取初值w0=0\boldsymbol{w}_0 = 0w0=0b0=0b_0 = 0b0=0

(2) 对x1=(3,3)⊤\boldsymbol{x}_1 = (3,3)^\topx1=(3,3)y1(w0⋅x1+b0)=0y_1 (\boldsymbol{w}_0 \cdot \boldsymbol{x}_1 + b_0) = 0y1(w0x1+b0)=0,未能被正确分类,更新w\boldsymbol{w}wbbb

w1=w0+y1x1=(3,3)⊤b1=b0+y1=1 \boldsymbol{w}_1 = \boldsymbol{w}_0 + y_1 \boldsymbol{x}_1 = (3,3)^\top \quad b_1 = b_0 + y_1 = 1 w1=w0+y1x1=(3,3)b1=b0+y1=1

得到线性模型:

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

(3) 对x1\boldsymbol{x}_1x1x2\boldsymbol{x}_2x2,显然,yi(w1⋅xi+b1)>0y_i (\boldsymbol{w}_1 \cdot \boldsymbol{x}_i + b_1) > 0yi(w1xi+b1)>0,被正确分类,不修改w\boldsymbol{w}wbbb;对x3=(1,1)⊤\boldsymbol{x}_3 = (1,1)^\topx3=(1,1)y3(w1⋅x3+b1)<0y_3 (\boldsymbol{w}_1 \cdot \boldsymbol{x}_3 + b_1) < 0y3(w1x3+b1)<0,被错分类,更新w\boldsymbol{w}wbbb

w2=w1+y3x3=(2,2)⊤b2=b1+y3=0 \boldsymbol{w}_2 = \boldsymbol{w}_1 + y_3 \boldsymbol{x}_3 = (2,2)^\top \quad b_2 = b_1 + y_3 = 0 w2=w1+y3x3=(2,2)b2=b1+y3=0

得到线性模型:

w2⋅x+b2=2x(1)+2x(2) \boldsymbol{w}_2 \cdot \boldsymbol{x} + b_2 = 2{x}^{(1)} + 2{x}^{(2)} w2x+b2=2x(1)+2x(2)
如此继续下去,直到

w7=(1,1)⊤,b7=−3 \boldsymbol{w}_7 = (1, 1)^\top, \quad b_7 = -3 w7=(1,1),b7=3

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

对所有数据点yi(w7⋅xi+b7)>0y_i(\boldsymbol{w}_7 \cdot \boldsymbol{x}_i + b_7) > 0yi(w7xi+b7)>0,没有错分类点,损失函数达到极小。

判别函数为f(x)=sgn(x(1)+x(2)−3)f(\boldsymbol{x}) = \text{sgn}({x}^{(1)} + {x}^{(2)} - 3)f(x)=sgn(x(1)+x(2)3)

迭代过程见表。

表 求解的迭代过程

迭代次数 错分类点 w\boldsymbol{w}w bbb w⋅x+b\boldsymbol{w} \cdot \boldsymbol{x} + bwx+b
0 - 0 0 0
1 x1\boldsymbol{x}_1x1 (3,3)⊤(3, 3)^\top(3,3) 1 3x(1)+3x(2)+13{x}^{(1)} + 3{x}^{(2)} + 13x(1)+3x(2)+1
2 x3\boldsymbol{x}_3x3 (2,2)⊤(2, 2)^\top(2,2) 0 2x(1)+2x(2)2{x}^{(1)} + 2{x}^{(2)}2x(1)+2x(2)
3 x3\boldsymbol{x}_3x3 (1,1)⊤(1, 1)^\top(1,1) -1 x(1)+x(2)−1{x}^{(1)} + {x}^{(2)} - 1x(1)+x(2)1
4 x3\boldsymbol{x}_3x3 (0,0)⊤(0, 0)^\top(0,0) -2 -2
5 x1\boldsymbol{x}_1x1 (3,3)⊤(3, 3)^\top(3,3) -1 3x(1)+3x(2)−13{x}^{(1)} + 3{x}^{(2)} - 13x(1)+3x(2)1
6 x3\boldsymbol{x}_3x3 (2,2)⊤(2, 2)^\top(2,2) -2 2x(1)+2x(2)−22{x}^{(1)} + 2{x}^{(2)} - 22x(1)+2x(2)2
7 x3\boldsymbol{x}_3x3 (1,1)⊤(1, 1)^\top(1,1) -3 x(1)+x(2)−3{x}^{(1)} + {x}^{(2)} - 3x(1)+x(2)3
8 0 (1,1)⊤(1, 1)^\top(1,1) -3 x(1)+x(2)−3{x}^{(1)} + {x}^{(2)} - 3x(1)+x(2)3

这是在计算中错分类点先后取x1,x3,x3,x3,x1,x3,x3\boldsymbol{x}_1, \boldsymbol{x}_3, \boldsymbol{x}_3, \boldsymbol{x}_3, \boldsymbol{x}_1, \boldsymbol{x}_3, \boldsymbol{x}_3x1,x3,x3,x3,x1,x3,x3 得到的分离超平面和判别函数。如果在计算中错分类点依次取x1,x3,x3,x3,x2,x3,x3,x1,x3,x3\boldsymbol{x}_1, \boldsymbol{x}_3, \boldsymbol{x}_3, \boldsymbol{x}_3, \boldsymbol{x}_2, \boldsymbol{x}_3, \boldsymbol{x}_3, \boldsymbol{x}_1, \boldsymbol{x}_3, \boldsymbol{x}_3x1,x3,x3,x3,x2,x3,x3,x1,x3,x3,那么得到的分离超平面是2x(1)+x(2)−5=02x^{(1)} + x^{(2)} - 5 = 02x(1)+x(2)5=0

可见,感知器算法由于采用不同的初值或选取不同的错分类点,解可以不同。

Logo

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

更多推荐