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

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

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

感知器模型(the perceptron)

文章目录

1、代价函数(cost function)

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

2、代价函数的性质

perceptron cost总是非负,因为它只考虑被错分类的样本,而错分类的样本y n θ T x n < 0 y_{n}\theta^{T}x_{n},如果y n θ T x n = 0 y_{n}\theta^{T}x_{n}=0 y n ​θT x n ​=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}x n ​是否属于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}y n ​θT x n ​的符号来判别是否分类正确,并且,它们的cost function都与y n θ T x n y_{n}\theta^{T}x_{n}y n ​θT x n ​有关,可以被写为以y n θ T x n y_{n}\theta^{T}x_{n}y n ​θT x n ​为自变量的函数,考察这些模型中单个样本( y n , x n ) (y_{n}, x_{n})(y n ​,x n ​)对cost function的贡献,归纳于下表:

ModelLoss of a single
( y n , x n ) (y_{n}, x_{n})(y n ​,x n ​)

pair
ERM1 { y n θ T x n < 0 } 1{y_{n}\theta^{T}x_{n} logistic regressionlog ⁡ ( 1 + exp ⁡ ( − y n θ T x n ) ) \log(1+\exp(-y_{n}\theta^{T}x_{n}))lo g (1 +exp (−y n ​θT x n ​)) perceptronmax ⁡ { 0 , − y n θ T x n } \max{0,-y_{n}\theta^{T}x_{n}}max {0 ,−y n ​θT x n ​} soft margin SVMmax ⁡ { 0 , 1 − y n θ T x n } \max{0,1-y_{n}\theta^{T}x_{n}}max {0 ,1 −y n ​θT x n ​}

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 )=θ(i −1 )+μi ​n :x n ​∈Y ∑​y n ​x n ​
使用上述更新方式, 可以证明,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 )={θ(i −1 )+μi ​y (i )​x (i )​θ(i −1 )​(y (i )​,x (i )​)is missclassified by θ(i −1 )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 )=θ(i −1 )+μi ​(y n ​−h θ​(x n ​))x n ​
例如:linear regression、logistic regression、perceptron,linear regression的算法中,h θ ( x n ) = θ T x n h_{\theta}(x_{n}) = \theta^{T}x_{n}h θ​(x n ​)=θT x n ​,logistic regression的算法中,h θ ( x n ) = sigmoid ( θ T x n ) h_{\theta}(x_{n}) = \text{sigmoid}(\theta^{T}x_{n})h θ​(x n ​)=sigmoid (θT x n ​),perceptron algorithm中,h θ ( x n ) = sgn ( θ T x n ) h_{\theta}(x_{n}) = \text{sgn}(\theta^{T}x_{n})h θ​(x n ​)=sgn (θT x n ​)

在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 )​=θ(i −1 )+μi ​(y n ​−h θ​(x n ​))x n ​=θ(i −1 )+{x n ​−x n ​​y n ​=1 ,θT x n ​<0 y n ​=−1 ,θT x n ​>0 ​=θ(i −1 )+y n ​x n ​​

所以,在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 )=θ(i −1 )+μi ​(y n ​−h θ​(x n ​))x n ​ 和之前所描述的更新规则实际上是等价的

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 )=θ(i −1 )+y (i )​x (i )​

那么,假如原本的θ ( i − 1 ) T x ( i ) < 0 {\theta^{(i – 1)}}^{T}x_{(i)} < 0 θ(i −1 )T x (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 )T x (i )​=θ(i −1 )T x (i )​+x (i )T ​x (i )​
其中,x ( i ) T x ( i ) ⩾ 0 x_{(i)}^{T}x_{(i)} \geqslant 0 x (i )T ​x (i )​⩾0,因此,算法在更新时,总是会想办法”修正”θ ( i − 1 ) T x ( i ) {\theta^{(i – 1)}}^{T}x_{(i)}θ(i −1 )T x (i )​的符号,尽量使θ ( i ) T x ( i ) {\theta^{(i)}}^{T}x_{(i)}θ(i )T x (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 )=θ(i −1 )+y (i )​x (i )​
在许多资料中,都有简单提及perceptron algorithm的几何解释,但大多数没有深入展开讨论,甚至有部分资料混淆了参数向量θ \theta θ和法向量的概念,所以在这里,我使用一种更为严谨的方式,深入探讨在二维情况下perceptron algorithm的几何解释

首先要注意, θ \theta θ 实际上并不是hyperplane的法向量(θ \theta θ 还包括常数项),另外,为了方便讨论,此处把hyperplane暂且表示为w T x + b = 0 w^{T}x+b = 0 w T x +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 w T x +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 )​)T x +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 )​)T x +(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 w T x (i )​+b <0

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

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

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

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

  1. 显然,l 1 l_{1}l 1 ​和l 2 l_{2}l 2 ​的交点满足直线系方程,即该直线系中的任意一条直线,都应该经过这个交点
  2. 如果l 1 l_{1}l 1 ​和l 2 l_{2}l 2 ​有交点,则说明两直线不平行,即法向量( A 1 , B 1 ) (A_{1},B_{1})(A 1 ​,B 1 ​)和( A 2 , B 2 ) (A_{2},B_{2})(A 2 ​,B 2 ​)是线性无关的,并且,λ 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 ​(A 1 ​,B 1 ​)+λ2 ​(A 2 ​,B 2 ​)可以表示平面上的任意非零向量,即该直线系中直线的法向量是任意的

如果记从原点指向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 =(w 1 ​,w 2 ​),那么直线( w + x ( i ) ) T x + b = 0 (w+x_{(i)})^{T}x + b = 0 (w +x (i )​)T x +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 )​)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 = 0 (w+x_{(i)})^{T}x + b = 0 (w +x (i )​)T x +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 ​(w 1 ​x 1 ​+w 2 ​x 2 ​+b )+λ2 ​(p x 1 ​+q x 2 ​)=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 )​)T x +b =0一定经过w 1 x 1 + w 2 x 2 + b = 0 w_{1}x_{1} + w_{2}x_{2} + b = 0 w 1 ​x 1 ​+w 2 ​x 2 ​+b =0和p x 1 + q x 2 = 0 px_{1} + qx_{2} = 0 p x 1 ​+q x 2 ​=0的交点

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

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

接下来,需要确定直线( w + x ( i ) ) T x + b = 0 (w+x_{(i)})^{T}x + b = 0 (w +x (i )​)T x +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 v T x +b =0,在图中使用红色标示:

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

要注意,x ( i ) → \overrightarrow{x_{(i)}}x (i )​​ 本身有可能垂直于w T x + b = 0 w^{T}x + b = 0 w T x +b =0 ,即w 1 x 1 + w 2 x 2 + b = 0 w_{1}x_{1} + w_{2}x_{2} + b = 0 w 1 ​x 1 ​+w 2 ​x 2 ​+b =0 和p x 1 + q x 2 = 0 px_{1} + qx_{2} = 0 p x 1 ​+q x 2 ​=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 v T x +b +1 =0的位置

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

同样地,记v → = ( v 1 , v 2 ) \overrightarrow{v} = (v_{1},v_{2})v =(v 1 ​,v 2 ​),求出v T x + b = 0 v^{T}x + b = 0 v T x +b =0和v T x + b + 1 = 0 v^{T}x + b + 1= 0 v T x +b +1 =0在x 2 x_{2}x 2 ​轴上的截距,即:
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}}x 2 ​-intercept of v T x +b =0 :−v 2 ​b ​x 2 ​-intercept of v T x +b +1 =0 :−v 2 ​b +1 ​
从上图中观察向量v → \overrightarrow{v}v的方向,不难看出v 2 > 0 v_{2} > 0 v 2 ​>0,所以,v T x + b + 1 = 0 v^{T}x + b + 1= 0 v T x +b +1 =0在x 2 x_{2}x 2 ​轴上的截距应小于v T x + b = 0 v^{T}x + b = 0 v T x +b =0在x 2 x_{2}x 2 ​轴上的截距,即应该向下平移:

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

事实上,因为− 1 / v 2 -1/v_{2}−1 /v 2 ​的符号总是与v 2 v_{2}v 2 ​的符号相反, 所以v T x + b + 1 = 0 v^{T}x + b + 1= 0 v T x +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 w T x (i )​+b <0,并且在步骤1更新之后v T x ( i ) + b > 0 v^{T}x_{(i)} + b > 0 v T x (i )​+b >0的情况,其他情况也可以做类似的讨论,这里只使用图片进行简单示意:

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

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

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

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

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

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

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

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

从以上讨论中,可以看出,在遇到被分类错误的样本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

Original: https://blog.csdn.net/weixin_43583429/article/details/119922794
Author: HJF.exe
Title: 深度学习第一课:感知器模型(the perceptron)及其算法的几何解释

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/665513/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球