本文是笔者在学习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:xn∈Y∑ynθTxn=−(n:xn∈Y∑ynxnT)θ
在二分类中,可以简单使用
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的贡献,归纳于下表:
Model | Loss 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,1−ynθ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)=θ(i−1)+μin:xn∈Y∑ynxn
使用上述更新方式,可以证明,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)+μiy(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(yn−hθ(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)=θ(i−1)+μi(yn−hθ(xn))xn=θ(i−1)+{xn−xnyn=1,θTxn<0yn=−1,θTxn>0=θ(i−1)+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)=θ(i−1)+μi(yn−hθ(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)=θ(i−1)+y(i)x(i)
那么,假如原本的
θ
(
i
−
1
)
T
x
(
i
)
<
0
{\theta^{(i - 1)}}^{T}x_{(i)} < 0
θ(i−1)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)=θ(i−1)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)}
θ(i−1)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)=θ(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 wTx+b=0的形式,以区分法向量和常数,可以“不那么严谨”地认为: w w w作为法向量,主要控制hyperplane的方向,而 b b b作为常数,主要控制hyperplane的位置
从几何角度出发理解上式时,应该分两个步骤考虑:
- hyperplane的方向变化:即 w w w的更新(绕某一点旋转)
- 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(x−x0)+λ2(y−y0)=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是不同时为零的任意常数
之所以这个方程可以表示过两直线交点的所有直线,是因为:
- 显然, l 1 l_{1} l1和 l 2 l_{2} l2的交点满足直线系方程,即该直线系中的任意一条直线,都应该经过这个交点
- 如果 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