深度学习第一课:感知器模型(the perceptron)及其算法的几何解释

本文是笔者在学习Machine Learning: A Bayesian and Optimization Perspective, 2nd Edition第18章内容时所记的笔记,主要对感知器模型进行了探讨,也一并对以往学习中所遇到的模型进行了简单的归纳和总结,适于机器学习和深度学习的初学者,鉴于本人也仍处于入门阶段,欢迎大家留言探讨~

文中出现的所有图片均为个人原创,使用geogebra绘制


 

感知器模型(the perceptron)

 


 

1、代价函数(cost function)

在每个样本的特征向量 x n x_{n} xn末尾添加一个常数1分量,把线性分类器写成 θ T x \theta^{T}x θTx的形式,如果令当前错分的样本集合为 Y \mathcal{Y} Y,那么感知器的cost function是:
J ( θ ) = − ∑ n : x n ∈ Y y n θ T x n = − ( ∑ n : x n ∈ Y y n x n T ) θ J(\theta) = -\sum_{n:x_{n} \in \mathcal{Y}}y_{n}\theta^{T}x_{n} = -\left(\sum_{n:x_{n} \in \mathcal{Y}}y_{n}x_{n}^{T}\right)\theta J(θ)=n:xnYynθTxn=(n:xnYynxnT)θ
在二分类中,可以简单使用 y n θ T x n y_{n}\theta^{T}x_{n} ynθTxn的符号来判别样本 ( y n , x n ) (y_{n}, x_{n}) (yn,xn)是否分类正确 y n ∈ { 1 , − 1 } y_{n}\in\{1,-1\} yn{1,1}),即如果 y n θ T x n > 0 y_{n}\theta^{T}x_{n}>0 ynθTxn>0,那么分类正确,如果 y n θ T x n < 0 y_{n}\theta^{T}x_{n}<0 ynθTxn<0,那么分类错误

 
 
 

2、代价函数的性质

perceptron cost总是非负,因为它只考虑被错分类的样本,而错分类的样本 y n θ T x n < 0 y_{n}\theta^{T}x_{n}<0 ynθTxn<0,如果 y n θ T x n = 0 y_{n}\theta^{T}x_{n}=0 ynθTxn=0,那么说明这个样本刚好在hyperplane(decision boundary)上,它同样被归类为分类错误(这只是为了讨论方便而下的定义,并不绝对),只有当 Y = ∅ \mathcal{Y} = \emptyset Y=,即 J ( θ ) = 0 J(\theta) = 0 J(θ)=0时才能得到一个符合要求的解

要注意, J ( θ ) J(\theta) J(θ)是一个分段线性的连续函数,在有些点上不可导 θ \theta θ的选取直接关系到每个 x n x_{n} xn是否属于 Y \mathcal{Y} Y,因此,不能使用传统的gradient descent方法来最小化cost function(但 J ( θ ) J(\theta) J(θ)确实是凸函数,能够应用基于subgradient的方法)

按照代价函数在第二个等号后的写法, J ( θ ) J(\theta) J(θ)确实可以被视作有关 θ \theta θ的线性函数,但每当 θ \theta θ变化时,训练集中的点与hyperplane的相对位置也变化了,所以集合 Y \mathcal{Y} Y也会变化,此时 J ( θ ) J(\theta) J(θ)也变为了另一个关于 θ \theta θ的线性函数

 
 
 

备注1:多种模型的代价函数对比

remark:有许多分类模型的二分类情况都可以使用 y n θ T x n y_{n}\theta^{T}x_{n} ynθTxn的符号来判别是否分类正确,并且,它们的cost function都与 y n θ T x n y_{n}\theta^{T}x_{n} ynθTxn有关,可以被写为以 y n θ T x n y_{n}\theta^{T}x_{n} ynθTxn为自变量的函数,考察这些模型中单个样本 ( y n , x n ) (y_{n}, x_{n}) (yn,xn)对cost function的贡献,归纳于下表:

ModelLoss of a single ( y n , x n ) (y_{n}, x_{n}) (yn,xn) pair
ERM 1 { y n θ T x n < 0 } 1\{y_{n}\theta^{T}x_{n}<0\} 1{ynθTxn<0}
logistic regression log ⁡ ( 1 + exp ⁡ ( − y n θ T x n ) ) \log(1+\exp(-y_{n}\theta^{T}x_{n})) log(1+exp(ynθTxn))
perceptron max ⁡ { 0 , − y n θ T x n } \max\{0,-y_{n}\theta^{T}x_{n}\} max{0,ynθTxn}
soft margin SVM max ⁡ { 0 , 1 − y n θ T x n } \max\{0,1-y_{n}\theta^{T}x_{n}\} max{0,1ynθTxn}

1 { ⋅ } 1\{\cdot\} 1{}是indicator,如果括号内的逻辑表达式为真,那么函数值为1,否则为0

logistic regression有概率意义上的解释,即整个训练实际上是MLE(maximum likelihood estimation),但可以把likelihood取负号,并把它视作cost function;依据上表中的结果,从某种意义上说,logistic regression、perceptron和soft margin SVM都可以被视为ERM的approximation

 
 
 

3、感知器算法(perceptron algorithm)

perceptron模型的更新方式(perceptron algorithm):
θ ( i ) = θ ( i − 1 ) + μ i ∑ n : x n ∈ Y y n x n \theta^{(i)} = \theta^{(i - 1)} + \mu_{i} \sum_{n:x_{n}\in\mathcal{Y}}y_{n}x_{n} θ(i)=θ(i1)+μin:xnYynxn
使用上述更新方式,可以证明,perceptron algorithm一定可以在有限次迭代内收敛 μ i \mu_{i} μi是学习率(可能随迭代步骤而变化),需要选取适合的 μ i \mu_{i} μi以保证算法收敛

perceptron algorithm可以被解释为一种基于subgradient的方法

该算法还有另一种每次迭代只使用一个样本的形式,如果把训练集中的样本重新编号, ( y ( 1 ) , x ( 1 ) ) , ( y ( 2 ) , x ( 2 ) ) , . . . , ( y ( N ) , x ( N ) ) (y_{(1)},x_{(1)}),(y_{(2)},x_{(2)}),...,(y_{(N)},x_{(N)}) (y(1),x(1)),(y(2),x(2)),...,(y(N),x(N)) ( y ( i ) , x ( i ) ) (y_{(i)},x_{(i)}) (y(i),x(i))表示在第 i i i次迭代过程中使用的样本,那么更新规则如下:
θ ( i ) = { θ ( i − 1 ) + μ i y ( i ) x ( i ) ( y ( i ) , x ( i ) )  is missclassified by  θ ( i − 1 ) θ ( i − 1 ) otherwise \theta^{(i)} = \left \{ \begin{array}{l} \theta^{(i - 1)} + \mu_{i}y_{(i)}x_{(i)} &(y_{(i)},x_{(i)})\text{ is missclassified by }\theta^{(i - 1)}\\ \theta^{(i - 1)} &\text{otherwise} \end{array} \right. θ(i)={θ(i1)+μiy(i)x(i)θ(i1)(y(i),x(i)) is missclassified by θ(i1)otherwise
这种更新方式被称为pattern-by-pattern的,也可以被视作一种类似于online learning的方式(在上述算法中,样本总数是确定的,而online learning中,样本不断出现,样本总数不确定)

每当算法使用过训练集中的全部数据,即经过了 N N N次迭代,就称为完成了一个epoch,完成一个epoch之后,再用同样的方式再继续训练,经过有限个epoch后,算法会收敛

同样地,需要考虑 μ i \mu_{i} μi的选取,只有选取合适的 μ i \mu_{i} μi才能保证算法收敛,但在上述两种perceptron algorithm中,即使 μ i \mu_{i} μi是一个正的常数,仍然可以保证算法的收敛性

 
 
 

备注2:多种模型的算法归纳

remark:如果使用pattern-by-pattern的方式,许多模型的算法都可以被写为:
θ ( i ) = θ ( i − 1 ) + μ i ( y n − h θ ( x n ) ) x n \theta^{(i)} = \theta^{(i - 1)} + \mu_{i}(y_{n} - h_{\theta}(x_{n}))x_{n} θ(i)=θ(i1)+μi(ynhθ(xn))xn
例如:linear regression、logistic regression、perceptron,linear regression的算法中, h θ ( x n ) = θ T x n h_{\theta}(x_{n}) = \theta^{T}x_{n} hθ(xn)=θTxn,logistic regression的算法中, h θ ( x n ) = sigmoid ( θ T x n ) h_{\theta}(x_{n}) = \text{sigmoid}(\theta^{T}x_{n}) hθ(xn)=sigmoid(θTxn),perceptron algorithm中, h θ ( x n ) = sgn ( θ T x n ) h_{\theta}(x_{n}) = \text{sgn}(\theta^{T}x_{n}) hθ(xn)=sgn(θTxn)

在perceptron algorithm中,如果令 μ i = 0.5 \mu_{i} = 0.5 μi=0.5,那么当出现分类错误时:
θ ( i ) = θ ( i − 1 ) + μ i ( y n − h θ ( x n ) ) x n = θ ( i − 1 ) + { x n y n = 1 , θ T x n < 0 − x n y n = − 1 , θ T x n > 0 = θ ( i − 1 ) + y n x n \begin{aligned} \theta^{(i)} &= \theta^{(i - 1)} + \mu_{i}(y_{n} - h_{\theta}(x_{n}))x_{n}\\ &=\theta^{(i - 1)} + \left \{ \begin{array}{l} x_{n} &y_{n} = 1,\theta^{T}x_{n} < 0\\ -x_{n} &y_{n} = -1,\theta^{T}x_{n} > 0 \end{array}\right.\\ &= \theta^{(i - 1)} + y_{n}x_{n} \end{aligned} θ(i)=θ(i1)+μi(ynhθ(xn))xn=θ(i1)+{xnxnyn=1,θTxn<0yn=1,θTxn>0=θ(i1)+ynxn

所以,在perceptron algorithm中, θ ( i ) = θ ( i − 1 ) + μ i ( y n − h θ ( x n ) ) x n \theta^{(i)} = \theta^{(i - 1)} + \mu_{i}(y_{n} - h_{\theta}(x_{n}))x_{n} θ(i)=θ(i1)+μi(ynhθ(xn))xn和之前所描述的更新规则实际上是等价的

 
 
 

4、感知器算法的原理

pattern-by-pattern的更新模式,是一种典型的reward-punishment方式,即如果迭代中选取的样本分类正确,那么不更新参数(reward),但如果样本分类错误,那么需要做对应的更新(punishment)

这种更新方式的意义是很明确的,如果令学习率为常数1,当某个样本被错分类时,有:
θ ( i ) = θ ( i − 1 ) + y ( i ) x ( i ) \theta^{(i)} = \theta^{(i - 1)} + y_{(i)}x_{(i)} θ(i)=θ(i1)+y(i)x(i)

那么,假如原本的 θ ( i − 1 ) T x ( i ) < 0 {\theta^{(i - 1)}}^{T}x_{(i)} < 0 θ(i1)Tx(i)<0 y ( i ) = 1 y_{(i)} = 1 y(i)=1,那么在更新之后:
θ ( i ) T x ( i ) = θ ( i − 1 ) T x ( i ) + x ( i ) T x ( i ) {\theta^{(i)}}^{T}x_{(i)} = {\theta^{(i - 1)}}^{T}x_{(i)} + x_{(i)}^{T}x_{(i)} θ(i)Tx(i)=θ(i1)Tx(i)+x(i)Tx(i)
其中, x ( i ) T x ( i ) ⩾ 0 x_{(i)}^{T}x_{(i)} \geqslant 0 x(i)Tx(i)0,因此,算法在更新时,总是会想办法“修正” θ ( i − 1 ) T x ( i ) {\theta^{(i - 1)}}^{T}x_{(i)} θ(i1)Tx(i)的符号,尽量使 θ ( i ) T x ( i ) {\theta^{(i)}}^{T}x_{(i)} θ(i)Tx(i)的符号与 y ( i ) y_{(i)} y(i)相匹配

 
 
 

5、感知器算法的几何解释

值得一提的是,pattern-by-pattern的更新模式也有一种较为直观的几何解释,同样地,令学习率为常数1,考虑某个样本被错分类时的情况
θ ( i ) = θ ( i − 1 ) + y ( i ) x ( i ) \theta^{(i)} = \theta^{(i - 1)} + y_{(i)}x_{(i)} θ(i)=θ(i1)+y(i)x(i)
在许多资料中,都有简单提及perceptron algorithm的几何解释,但大多数没有深入展开讨论,甚至有部分资料混淆了参数向量 θ \theta θ和法向量的概念,所以在这里,我使用一种更为严谨的方式,深入探讨在二维情况下perceptron algorithm的几何解释

首先要注意, θ \theta θ实际上并不是hyperplane的法向量( θ \theta θ还包括常数项),另外,为了方便讨论,此处把hyperplane暂且表示为 w T x + b = 0 w^{T}x+b = 0 wTx+b=0的形式,以区分法向量和常数,可以“不那么严谨”地认为: w w w作为法向量,主要控制hyperplane的方向,而 b b b作为常数,主要控制hyperplane的位置

从几何角度出发理解上式时,应该分两个步骤考虑:

  1. hyperplane的方向变化:即 w w w的更新(绕某一点旋转)
  2. hyperplane的位置变化:即在 w w w更新之后再进行 b b b的更新(平移)

如果在第 i i i次更新之前,hyperplane是 w T x + b = 0 w^{T}x + b = 0 wTx+b=0,对于第 i i i次更新,先进行步骤1,考虑 ( w + y ( i ) x ( i ) ) T x + b = 0 (w+y_{(i)}x_{(i)})^{T}x + b = 0 (w+y(i)x(i))Tx+b=0的位置,之后再考虑步骤2,即 ( w + y ( i ) x ( i ) ) T x + ( b + y ( i ) ) = 0 (w+y_{(i)}x_{(i)})^{T}x + (b + y_{(i)}) = 0 (w+y(i)x(i))Tx+(b+y(i))=0的位置

 

这里仅以二维平面上的情况为例,结合图片逐步示意:

如果错分类点 x ( i ) x_{(i)} x(i)和hyperplane的相对位置如下图所示,并且 y ( i ) = 1 y_{(i)} = 1 y(i)=1,但 w T x ( i ) + b < 0 w^{T}x_{(i)} + b < 0 wTx(i)+b<0

在这里插入图片描述

 

【步骤1】:在坐标系中找到 ( w + x ( i ) ) T x + b = 0 (w+x_{(i)})^{T}x + b = 0 (w+x(i))Tx+b=0的位置

为了把点 x ( i ) x_{(i)} x(i)和hyperplane的法向量直接相加,需要引入直线系的概念,直线系,即满足一定条件的直线的集合,例如,与直线 A x + B y + C = 0 Ax + By + C = 0 Ax+By+C=0平行的所有直线是: A x + B y + λ = 0 Ax + By + \lambda = 0 Ax+By+λ=0,其中, λ \lambda λ是任意常数;过一个定点 ( x 0 , y 0 ) (x_{0},y_{0}) (x0,y0)的所有直线是: λ 1 ( x − x 0 ) + λ 2 ( y − y 0 ) = 0 \lambda_{1}(x - x_{0}) + \lambda_{2}(y - y_{0}) = 0 λ1(xx0)+λ2(yy0)=0,其中, λ 1 \lambda_{1} λ1 λ 2 \lambda_{2} λ2是不同时为零的任意常数

这里引入的直线系可以表示过两条给定直线交点的所有直线,直线系方程是: λ 1 ( A 1 x + B 1 y + C 1 ) + λ 2 ( A 2 x + B 2 y + C 2 ) = 0 \lambda_{1}(A_{1}x + B_{1}y + C_{1}) + \lambda_{2}(A_{2}x + B_{2}y + C_{2}) = 0 λ1(A1x+B1y+C1)+λ2(A2x+B2y+C2)=0,即同时过直线 l 1 : A 1 x + B 1 y + C 1 = 0 l_{1}:A_{1}x + B_{1}y + C_{1} = 0 l1:A1x+B1y+C1=0和直线 l 2 : A 2 x + B 2 y + C 2 = 0 l_{2}:A_{2}x + B_{2}y + C_{2} = 0 l2:A2x+B2y+C2=0交点的所有直线,其中, λ 1 \lambda_{1} λ1 λ 2 \lambda_{2} λ2是不同时为零的任意常数

之所以这个方程可以表示过两直线交点的所有直线,是因为:

  1. 显然, l 1 l_{1} l1 l 2 l_{2} l2的交点满足直线系方程,即该直线系中的任意一条直线,都应该经过这个交点
  2. 如果 l 1 l_{1} l1 l 2 l_{2} l2有交点,则说明两直线不平行,即法向量 ( A 1 , B 1 ) (A_{1},B_{1}) (A1,B1) ( A 2 , B 2 ) (A_{2},B_{2}) (A2,B2)是线性无关的,并且, λ 1 \lambda_{1} λ1 λ 2 \lambda_{2} λ2是不同时为零的任意常数,那么, λ 1 ( A 1 , B 1 ) + λ 2 ( A 2 , B 2 ) \lambda_{1}(A_{1},B_{1}) + \lambda_{2}(A_{2},B_{2}) λ1(A1,B1)+λ2(A2,B2)可以表示平面上的任意非零向量,即该直线系中直线的法向量是任意的

 

如果记从原点指向 x ( i ) x_{(i)} x(i)的向量为 x ( i ) → = ( p , q ) \overrightarrow{x_{(i)}} = (p,q) x(i) =(p,q),法向量 w → = ( w 1 , w 2 ) \overrightarrow{w} = (w_{1},w_{2}) w =(w1,w2),那么直线 ( w + x ( i ) ) T x + b = 0 (w+x_{(i)})^{T}x + b = 0 (w+x(i))Tx+b=0可以被写为:
( w + x ( i ) ) T x + b = ( w 1 x 1 + w 2 x 2 + b ) + ( p x 1 + q x 2 ) = 0 (w+x_{(i)})^{T}x + b = (w_{1}x_{1} + w_{2}x_{2} + b) + (px_{1} + qx_{2}) = 0 (w+x(i))Tx+b=(w1x1+w2x2+b)+(px1+qx2)=0
所以,直线 ( w + x ( i ) ) T x + b = 0 (w+x_{(i)})^{T}x + b = 0 (w+x(i))Tx+b=0一定属于直线系 λ 1 ( w 1 x 1 + w 2 x 2 + b ) + λ 2 ( p x 1 + q x 2 ) = 0 \lambda_{1}(w_{1}x_{1} + w_{2}x_{2} + b) + \lambda_{2}(px_{1} + qx_{2}) = 0 λ1(w1x1+w2x2+b)+λ2(px1+qx2)=0(即 λ 1 = λ 2 = 1 \lambda_{1} = \lambda_{2} = 1 λ1=λ2=1的特殊情况),故直线 ( w + x ( i ) ) T x + b = 0 (w+x_{(i)})^{T}x + b = 0 (w+x(i))Tx+b=0一定经过 w 1 x 1 + w 2 x 2 + b = 0 w_{1}x_{1} + w_{2}x_{2} + b = 0 w1x1+w2x2+b=0 p x 1 + q x 2 = 0 px_{1} + qx_{2} = 0 px1+qx2=0的交点

显然, p x 1 + q x 2 = 0 px_{1} + qx_{2} = 0 px1+qx2=0是以 x ( i ) → \overrightarrow{x_{(i)}} x(i) 为法向量,并且过原点的直线,在图中用虚线作出 p x 1 + q x 2 = 0 px_{1} + qx_{2} = 0 px1+qx2=0,并找到这个交点,记交点为P点,并且,在P点出做出法向量 w → \overrightarrow{w} w

在这里插入图片描述

 

接下来,需要确定直线 ( w + x ( i ) ) T x + b = 0 (w+x_{(i)})^{T}x + b = 0 (w+x(i))Tx+b=0的方向,让向量 w → \overrightarrow{w} w x ( i ) → \overrightarrow{x_{(i)}} x(i) 相加,记两向量之和为 v → \overrightarrow{v} v ,之后过P点做出垂直于 v → \overrightarrow{v} v 的直线,即 v T x + b = 0 v^{T}x + b = 0 vTx+b=0,在图中使用红色标示:

在这里插入图片描述

 

要注意, x ( i ) → \overrightarrow{x_{(i)}} x(i) 本身有可能垂直于 w T x + b = 0 w^{T}x + b = 0 wTx+b=0,即 w 1 x 1 + w 2 x 2 + b = 0 w_{1}x_{1} + w_{2}x_{2} + b = 0 w1x1+w2x2+b=0 p x 1 + q x 2 = 0 px_{1} + qx_{2} = 0 px1+qx2=0可能会出现无交点的情况,此时,步骤1中hyperplane只平移,不旋转,鉴于 x ( i ) x_{(i)} x(i)被分类错误, w → \overrightarrow{w} w x ( i ) → \overrightarrow{x_{(i)}} x(i) 总是指向相反的方向,故平移的方向及平移的距离与 ∣ ∣ w → ∣ ∣ ||\overrightarrow{w}|| w ∣ ∣ x ( i ) → ∣ ∣ ||\overrightarrow{x_{(i)}}|| x(i) 的相对大小有关,如果 ∣ ∣ w → ∣ ∣ > ∣ ∣ x ( i ) → ∣ ∣ ||\overrightarrow{w}|| > ||\overrightarrow{x_{(i)}}|| w >x(i) ,那么hyperplane将会朝着 w → \overrightarrow{w} w 的方向平移,如果 ∣ ∣ w → ∣ ∣ < ∣ ∣ x ( i ) → ∣ ∣ ||\overrightarrow{w}|| < ||\overrightarrow{x_{(i)}}|| w <x(i) ,那么hyperplane将会朝着 x ( i ) → \overrightarrow{x_{(i)}} x(i) 的方向平移

 

【步骤2】:在坐标系中找到 v T x + b + 1 = 0 v^{T}x + b + 1 = 0 vTx+b+1=0的位置

显而易见地,为了完成步骤2,只需要在完成步骤1的基础上,把直线 v T x + b = 0 v^{T}x + b = 0 vTx+b=0进行平移即可,所以,需要确定平移的方向,可以通过直线在 x 2 x_{2} x2轴上的截距来辅助判断

同样地,记 v → = ( v 1 , v 2 ) \overrightarrow{v} = (v_{1},v_{2}) v =(v1,v2),求出 v T x + b = 0 v^{T}x + b = 0 vTx+b=0 v T x + b + 1 = 0 v^{T}x + b + 1= 0 vTx+b+1=0 x 2 x_{2} x2轴上的截距,即:
x 2 -intercept of  v T x + b = 0 : − b v 2 x 2 -intercept of  v T x + b + 1 = 0 : − b + 1 v 2 x_{2}\text{-intercept of }v^{T}x + b = 0:-\frac{b}{v_{2}}\\ \quad\\ x_{2}\text{-intercept of }v^{T}x + b + 1 = 0:-\frac{b + 1}{v_{2}} x2-intercept of vTx+b=0:v2bx2-intercept of vTx+b+1=0:v2b+1
从上图中观察向量 v → \overrightarrow{v} v 的方向,不难看出 v 2 > 0 v_{2} > 0 v2>0,所以, v T x + b + 1 = 0 v^{T}x + b + 1= 0 vTx+b+1=0 x 2 x_{2} x2轴上的截距应小于 v T x + b = 0 v^{T}x + b = 0 vTx+b=0 x 2 x_{2} x2轴上的截距,即应该向下平移:

在这里插入图片描述

 

事实上,因为 − 1 / v 2 -1/v_{2} 1/v2的符号总是与 v 2 v_{2} v2的符号相反,所以 v T x + b + 1 = 0 v^{T}x + b + 1= 0 vTx+b+1=0一定会朝着与法向量 v → \overrightarrow{v} v 相反的方向平移,并且,平移前后两条平行线间的距离是 1 / ∣ ∣ v → ∣ ∣ 1/||\overrightarrow{v}|| 1/v 即平移的距离大小与法向量的模长成反比

 
 
 

对不同条件下感知器算法几何解释的总结

summary:此处只讨论了 y ( i ) = 1 y_{(i)} = 1 y(i)=1 w T x ( i ) + b < 0 w^{T}x_{(i)} + b < 0 wTx(i)+b<0,并且在步骤1更新之后 v T x ( i ) + b > 0 v^{T}x_{(i)} + b > 0 vTx(i)+b>0的情况,其他情况也可以做类似的讨论,这里只使用图片进行简单示意:

y ( i ) = 1 y_{(i)} = 1 y(i)=1 w T x ( i ) + b < 0 w^{T}x_{(i)} + b < 0 wTx(i)+b<0,在步骤1更新之后 v T x ( i ) + b > 0 v^{T}x_{(i)} + b > 0 vTx(i)+b>0(上述讨论的情况):

在这里插入图片描述

 

y ( i ) = 1 y_{(i)} = 1 y(i)=1 w T x ( i ) + b < 0 w^{T}x_{(i)} + b < 0 wTx(i)+b<0,在步骤1更新之后 v T x ( i ) + b < 0 v^{T}x_{(i)} + b < 0 vTx(i)+b<0

在这里插入图片描述

 

y ( i ) = − 1 y_{(i)} = -1 y(i)=1 w T x ( i ) + b > 0 w^{T}x_{(i)} + b > 0 wTx(i)+b>0,在步骤1更新之后 v T x ( i ) + b < 0 v^{T}x_{(i)} + b < 0 vTx(i)+b<0

在这里插入图片描述

 

y ( i ) = − 1 y_{(i)} = -1 y(i)=1 w T x ( i ) + b > 0 w^{T}x_{(i)} + b > 0 wTx(i)+b>0,在步骤1更新之后 v T x ( i ) + b > 0 v^{T}x_{(i)} + b > 0 vTx(i)+b>0

在这里插入图片描述

 

从以上讨论中,可以看出,在遇到被分类错误的样本 x ( i ) x_{(i)} x(i)时,perceptron algorithm总是根据 x ( i ) x_{(i)} x(i)更新hyperplane,通过旋转和平移,尽可能地使 x ( i ) x_{(i)} x(i)被分类正确

另外,考虑一种极端情况 ∣ ∣ w → ∣ ∣ ||\overrightarrow{w}|| w 很大,且 ∣ ∣ w → ∣ ∣ ≫ ∣ ∣ x ( i ) → ∣ ∣ ||\overrightarrow{w}||\gg||\overrightarrow{x_{(i)}}|| w x(i) ,在这种极端情况下,即使进行了更新, w → \overrightarrow{w} w 的方向也几乎不会改变,即在步骤1中,hyperplane几乎不旋转,并且,在步骤2中,平移的距离反比于 ∣ ∣ v → ∣ ∣ ||\overrightarrow{v}|| v ,所以hyperplane也几乎不平移,因此,在 ∣ ∣ w → ∣ ∣ ||\overrightarrow{w}|| w 已经很大的情况下,perceptron algorithm的更新总是收效甚微,hyperplane几乎不会受训练数据影响

在更高维的空间中,上讨论中所使用的方法同样可以推而广之


 
 
 

参考资料

[1] Machine Learning: A Bayesian and Optimization Perspective, 2nd Edition, Sergios Theodoridis, Chapter 18 Neural Networks and Deep Learning, 18.2 The Perceptron

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值