一、前述
感知机是二类分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1和-1二值,属于判别模型。感知机学习旨在求出将训练数据进行线性划分的分离超平面,为此,导入基于误分类的损失函数,利用随机梯度下降法对损失函数进行极小化,求得感知机模型。感知机学习算法分为原始形式和对偶形式。感知机是神经网络与支持向量机的基础。
二、感知机介绍
I.模型
感知机模型可以由以下传递函数进行描述:
f
(
x
)
=
s
i
g
n
(
w
⋅
x
+
b
)
f(x)=sign(w\cdot x+b)
f(x)=sign(w⋅x+b)
其中x∈X表示实例的特征向量,对应输入空间X的点;输出y∈Y表示实例的类别。由符号函数的特性,当
w
⋅
x
+
b
=
0
w\cdot x+b=0
w⋅x+b=0,为感知机模型的决策边界。
II.策略
对于误分类点
(
x
i
,
y
i
)
(x_{i},y_{i})
(xi,yi)来说,其到超平面S的距离是:
−
1
∥
w
∥
y
i
(
w
⋅
x
i
+
b
)
-\frac{1}{\parallel w\parallel }y_{i}(w\cdot x_{i}+b)
−∥w∥1yi(w⋅xi+b)
于是,假设超平面S的误分类点集合为M,那么所有误分类点到超平面的总距离为:
−
1
∥
w
∥
∑
x
i
∈
M
y
i
(
w
⋅
x
i
+
b
)
-\frac{1}{\parallel w\parallel }\sum_{x_{i}\in M}^{}y_{i}(w\cdot x_{i}+b)
−∥w∥1xi∈M∑yi(w⋅xi+b),不考虑
1
∥
w
∥
\frac{1}{\parallel w\parallel }
∥w∥1,就得到了感知机的损失函数。给定训练数据集
T
=
{
(
x
1
,
y
1
)
,
(
x
1
,
y
1
)
,
⋅
⋅
⋅
,
(
x
N
,
y
N
)
}
T=\left\{(x_{1},y_{1}),(x_{1},y_{1}),\cdot \cdot \cdot ,(x_{N},y_{N})\right\}
T={(x1,y1),(x1,y1),⋅⋅⋅,(xN,yN)}其中,
x
i
∈
χ
=
R
n
,
y
i
∈
γ
=
{
+
1
,
−
1
}
,
i
=
1
,
2
,
⋅
⋅
⋅
,
N
x_{i}\in \chi = R^{n},y_{i}\in\gamma =\left \{ +1,-1 \right \},i=1,2,\cdot \cdot \cdot ,N
xi∈χ=Rn,yi∈γ={+1,−1},i=1,2,⋅⋅⋅,N。感知机
f
(
x
)
=
s
i
g
n
(
w
⋅
x
+
b
)
f(x)=sign(w\cdot x+b)
f(x)=sign(w⋅x+b)学习的损失函数定义为:
L
(
w
,
b
)
=
−
∑
x
i
∈
M
y
i
(
w
⋅
x
i
+
b
)
L(w,b)=-\sum_{x_{i}\in M}^{}y_{i}(w\cdot x_{i}+b)
L(w,b)=−xi∈M∑yi(w⋅xi+b)
其中M为误分类点的集合。这个损失函数就是感知机学习的经验风险函数。
于是,感知机学习的策略是在假设空间中选取使损失函数式最小的模型参数
w
,
b
w,b
w,b,即感知机模型。
III.算法
由感知机学习的策略可知,感知机学习算法是由误分类驱动的,采用随机梯度下降法求解
min
w
,
b
L
(
w
,
b
)
=
−
∑
x
i
∈
M
y
i
(
w
⋅
x
i
+
b
)
\min_{w,b}^{}L(w,b)=-\sum_{x_{i}\in M}^{}y_{i}(w\cdot x_{i}+b)
w,bminL(w,b)=−xi∈M∑yi(w⋅xi+b)
感知机学习算法的原始形式描述:首先,任意选取一个超平面
w
0
,
b
0
w_{0},b_{0}
w0,b0,然后用梯度下降法不断地极小化目标函数。极小化过程是一次随机选取一个误分类点使其梯度下降。具体操作实现如下:
输入:训练数据集
T
=
{
(
x
1
,
y
1
)
,
(
x
1
,
y
1
)
,
⋅
⋅
⋅
,
(
x
N
,
y
N
)
}
T=\left\{(x_{1},y_{1}),(x_{1},y_{1}),\cdot \cdot \cdot ,(x_{N},y_{N})\right\}
T={(x1,y1),(x1,y1),⋅⋅⋅,(xN,yN)},其中
x
i
∈
χ
=
R
n
,
y
i
∈
γ
=
{
+
1
,
−
1
}
,
i
=
1
,
2
,
⋅
⋅
⋅
,
N
x_{i}\in \chi = R^{n},y_{i}\in\gamma =\left \{ +1,-1 \right \},i=1,2,\cdot \cdot \cdot ,N
xi∈χ=Rn,yi∈γ={+1,−1},i=1,2,⋅⋅⋅,N;学习率
η
(
0
<
η
⩽
1
)
;
\eta (0<\eta\leqslant 1);
η(0<η⩽1);
输出:
w
,
b
w,b
w,b;感知机模型
f
(
x
)
=
s
i
g
n
(
w
⋅
x
+
b
)
f(x)=sign(w\cdot x+b)
f(x)=sign(w⋅x+b)。
(1)选取初值
w
0
,
b
0
w_{0},b_{0}
w0,b0;
(2)在训练集中选取数据
(
x
i
,
y
i
)
(x_{i},y_{i})
(xi,yi);
(3)如果
y
i
(
w
⋅
x
i
+
b
)
⩽
0
y_{i}(w\cdot x_{i}+b)\leqslant0
yi(w⋅xi+b)⩽0,
w
←
w
+
η
y
i
x
i
w\leftarrow w+\eta y_{i}x_{i}
w←w+ηyixi
b
←
b
+
η
y
i
b\leftarrow b+\eta y_{i}
b←b+ηyi
(4)转至(2),直至训练集中没有误分类点。
感知机学习算法原始形式的直观描述:当有一个实例点被误分类,则调整决策平面参数
w
,
b
w,b
w,b,使分离超平面向该误分类点的一侧移动,以减少该误分类点与超平面间的距离,直至超平面越过该误分类点使其被正确分类。
三、感知机学习算法原始形式及收敛证明
该证明的意义在于表明,感知机算法可经过有限次迭代得到一个将线性可分训练集完全正确划分的分离超平面及感知机模型。
为了便于叙述与推导,将偏置
b
b
b并入权重向量
w
w
w,记作
w
^
=
(
w
T
,
b
)
T
\widehat{w}=(w^{T},b)^{T}
w
=(wT,b)T,同样也将输入向量加以扩充,加进常数1,记作
x
^
=
(
x
T
,
1
)
T
\widehat{x}=(x^{T},1)^{T}
x
=(xT,1)T。这样,
x
^
∈
R
n
+
1
,
w
^
∈
R
n
+
1
\widehat{x}\in R^{n+1},\widehat{w}\in R^{n+1}
x
∈Rn+1,w
∈Rn+1。显然,
w
^
⋅
x
^
=
w
⋅
x
+
b
\widehat{w}\cdot\widehat{x}=w\cdot x+b
w
⋅x
=w⋅x+b。
Novikoff定理:设训练数据集
T
=
{
(
x
1
,
y
1
)
,
(
x
1
,
y
1
)
,
⋅
⋅
⋅
,
(
x
N
,
y
N
)
}
T=\left\{(x_{1},y_{1}),(x_{1},y_{1}),\cdot \cdot \cdot ,(x_{N},y_{N})\right\}
T={(x1,y1),(x1,y1),⋅⋅⋅,(xN,yN)}是线性可分的,其中
x
i
∈
χ
=
R
n
,
y
i
∈
γ
=
{
+
1
,
−
1
}
,
i
=
1
,
2
,
⋅
⋅
⋅
,
N
x_{i}\in \chi = R^{n},y_{i}\in\gamma =\left \{ +1,-1 \right \},i=1,2,\cdot \cdot \cdot ,N
xi∈χ=Rn,yi∈γ={+1,−1},i=1,2,⋅⋅⋅,N,则
(1)存在满足条件
∥
w
^
o
p
t
∥
=
1
\parallel\widehat{w}_{opt} \parallel=1
∥w
opt∥=1的超平面
w
^
o
p
t
⋅
x
^
=
w
o
p
t
⋅
x
+
b
o
p
t
=
0
\widehat{w}_{opt}\cdot\widehat{x}=w_{opt}\cdot x+b_{opt}=0
w
opt⋅x
=wopt⋅x+bopt=0将训练数据集完全正确分开(误分类表达式不适用!);且存在
γ
>
0
\gamma> 0
γ>0,对所有
i
=
1
,
2
,
.
.
.
,
N
i=1,2,...,N
i=1,2,...,N有
y
i
(
w
^
o
p
t
⋅
x
^
i
)
=
y
i
(
w
o
p
t
⋅
x
i
+
b
o
p
t
)
⩾
γ
y_{i}(\widehat{w}_{opt}\cdot\widehat{x}_{i})=y_{i}(w_{opt}\cdot x_{i}+b_{opt})\geqslant\gamma
yi(w
opt⋅x
i)=yi(wopt⋅xi+bopt)⩾γ
(2)令
R
=
max
1
⩽
i
⩽
N
∥
x
^
i
∥
R=\max_{1 \leqslant i \leqslant N}^{}\parallel\widehat{x}_{i} \parallel
R=1⩽i⩽Nmax∥x
i∥,则感知机算法原始形式在训练数据集上的误分类次数
k
k
k满足不等式
k
⩽
(
R
γ
)
2
k\leqslant (\frac{R}{\gamma})^{2}
k⩽(γR)2
以下证明过程:
(1)由于训练数据集是线性可分的,因此存在超平面可使训练数据集完全正确分开,取超平面
w
^
o
p
t
⋅
x
^
=
w
o
p
t
⋅
x
+
b
o
p
t
=
0
\widehat{w}_{opt}\cdot\widehat{x}=w_{opt}\cdot x+b_{opt}=0
w
opt⋅x
=wopt⋅x+bopt=0,使
∥
w
^
o
p
t
∥
=
1
\parallel\widehat{w}_{opt} \parallel=1
∥w
opt∥=1。由于是有限的训练集,因此是可数的样本集,因此均有
y
i
(
w
^
o
p
t
⋅
x
^
i
)
=
y
i
(
w
o
p
t
⋅
x
i
+
b
o
p
t
)
>
0
y_{i}(\widehat{w}_{opt}\cdot\widehat{x}_{i})=y_{i}(w_{opt}\cdot x_{i}+b_{opt})>0
yi(w
opt⋅x
i)=yi(wopt⋅xi+bopt)>0所以存在
γ
=
min
i
{
y
i
(
w
o
p
t
⋅
x
i
+
b
o
p
t
)
}
\gamma=\min_{i}^{}\left \{y_{i}(w_{opt}\cdot x_{i}+b_{opt}) \right \}
γ=mini{yi(wopt⋅xi+bopt)}使得
y
i
(
w
^
o
p
t
⋅
x
^
i
)
=
y
i
(
w
o
p
t
⋅
x
i
+
b
o
p
t
)
⩾
γ
y_{i}(\widehat{w}_{opt}\cdot\widehat{x}_{i})=y_{i}(w_{opt}\cdot x_{i}+b_{opt})\geqslant\gamma
yi(w
opt⋅x
i)=yi(wopt⋅xi+bopt)⩾γ
(2)假设感知机算法从
w
^
0
=
0
\widehat{w}_{0}=0
w
0=0开始,如果实例被误分类,则更新权重。令
w
^
k
−
1
\widehat{w}_{k-1}
w
k−1是第
k
k
k个误分类实例之前的扩充权重向量,即
w
^
k
−
1
=
(
w
k
−
1
T
,
b
k
−
1
)
T
\widehat{w}_{k-1}=(w_{k-1}^{T},b_{k-1})^{T}
w
k−1=(wk−1T,bk−1)T则第
k
k
k个误分类实例的条件是
y
i
(
w
^
k
−
1
⋅
x
^
i
)
=
y
i
(
w
k
−
1
⋅
x
i
+
b
k
−
1
)
⩽
0
y_{i}(\widehat{w}_{k-1}\cdot\widehat{x}_{i})=y_{i}(w_{k-1}\cdot x_{i}+b_{k-1})\leqslant0
yi(w
k−1⋅x
i)=yi(wk−1⋅xi+bk−1)⩽0
若
(
x
i
,
y
i
)
(x_{i},y_{i})
(xi,yi)是被
w
^
k
−
1
=
(
w
k
−
1
T
,
b
k
−
1
)
T
\widehat{w}_{k-1}=(w_{k-1}^{T},b_{k-1})^{T}
w
k−1=(wk−1T,bk−1)T误分类的数据,则按照学习率与梯度下降方向更新步长得
w
^
k
=
w
^
k
−
1
+
η
y
i
x
^
i
\widehat{w}_{k}=\widehat{w}_{k-1}+\eta y_{i}\widehat{x}_{i}
w
k=w
k−1+ηyix
i。
先推导以下两个不等式:
w
^
k
⋅
w
^
o
p
t
⩾
k
η
γ
①
\widehat{w}_{k}\cdot\widehat{w}_{opt}\geqslant k\eta\gamma①
w
k⋅w
opt⩾kηγ①
∥
w
^
k
∥
2
⩽
k
η
2
R
2
②
\left \| \widehat{w}_{k} \right \|^{2}\leqslant k\eta^{2}R^{2}②
∥w
k∥2⩽kη2R2②
首先证明①:
根据更新步长后的新决策边界有:
w
^
k
⋅
w
^
o
p
t
=
w
^
k
−
1
⋅
w
^
o
p
t
+
η
y
i
w
^
o
p
t
⋅
x
^
i
⩾
w
^
k
−
1
⋅
w
^
o
p
t
+
η
γ
\widehat{w}_{k}\cdot\widehat{w}_{opt}=\widehat{w}_{k-1}\cdot\widehat{w}_{opt}+\eta y_{i}\widehat{w}_{opt}\cdot\widehat{x}_{i}\geqslant \widehat{w}_{k-1}\cdot\widehat{w}_{opt}+\eta\gamma
w
k⋅w
opt=w
k−1⋅w
opt+ηyiw
opt⋅x
i⩾w
k−1⋅w
opt+ηγ
根据上式继续递推得:
w
^
k
⋅
w
^
o
p
t
⩾
w
^
k
−
1
⋅
w
^
o
p
t
+
η
γ
⩾
w
^
k
−
2
⋅
w
^
o
p
t
+
2
η
γ
⩾
⋯
⩾
k
η
γ
\widehat{w}_{k}\cdot\widehat{w}_{opt}\geqslant\widehat{w}_{k-1}\cdot\widehat{w}_{opt}+\eta\gamma\geqslant\widehat{w}_{k-2}\cdot\widehat{w}_{opt}+2\eta\gamma\geqslant\cdots\geqslant k\eta\gamma
w
k⋅w
opt⩾w
k−1⋅w
opt+ηγ⩾w
k−2⋅w
opt+2ηγ⩾⋯⩾kηγ
接着证明②:
根据更新步长后的新决策边界又有:
∥
w
^
k
∥
2
=
∥
w
^
k
−
1
∥
2
+
2
η
y
i
w
^
k
−
1
⋅
x
^
i
+
η
2
∥
x
^
i
∥
2
\left \| \widehat{w}_{k} \right \|^{2}=\left \| \widehat{w}_{k-1} \right \|^{2}+2\eta y_{i}\widehat{w}_{k-1}\cdot\widehat{x}_{i}+\eta^{2}\left \| \widehat{x}_{i} \right \|^{2}
∥w
k∥2=∥w
k−1∥2+2ηyiw
k−1⋅x
i+η2∥x
i∥2
⩽
∥
w
^
k
−
1
∥
2
+
η
2
∥
x
^
i
∥
2
\leqslant\left \| \widehat{w}_{k-1} \right \|^{2}+\eta^{2}\left \| \widehat{x}_{i} \right \|^{2}
⩽∥w
k−1∥2+η2∥x
i∥2
⩽
∥
w
^
k
−
1
∥
2
+
η
2
R
2
\leqslant\left \| \widehat{w}_{k-1} \right \|^{2}+\eta^{2}R^{2}
⩽∥w
k−1∥2+η2R2
⩽
∥
w
^
k
−
2
∥
2
+
2
η
2
R
2
\leqslant\left \| \widehat{w}_{k-2} \right \|^{2}+2\eta^{2}R^{2}
⩽∥w
k−2∥2+2η2R2
⩽
⋯
⩽
k
η
2
R
2
\leqslant\cdots\leqslant k\eta^{2}R^{2}
⩽⋯⩽kη2R2
不等式①②证毕。由两式联立可得:
k
η
γ
⩽
w
^
k
⋅
w
^
o
p
t
⩽
∥
w
^
k
∥
∥
w
^
o
p
t
∥
⩽
k
η
R
k\eta\gamma\leqslant\widehat{w}_{k}\cdot\widehat{w}_{opt}\leqslant\left\|\widehat{w}_{k}\right\|\left\|\widehat{w}_{opt}\right\|\leqslant \sqrt{k}\eta R
kηγ⩽w
k⋅w
opt⩽∥w
k∥∥w
opt∥⩽kηR,于是有
k
⩽
(
R
γ
)
2
k\leqslant(\frac{R}{\gamma})^{2}
k⩽(γR)2,到此,定理(2)证明完毕。
整个过程证明了,对于线性可分的训练数据集,误分类的次数k是由上界的,即经过有限次搜索可以找到将训练数据完全正确分开的分离超平面,感知机学习算法原始形式迭代是收敛的。但过程会存在多解的情况,针对多解情况下的讨论,增加约束条件后,为后面将要讲述的线性支持向量机奠定了模型基础。当训练集线性不可分时,感知机学习算法不收敛,迭代结果会发生震荡。
四、感知机学习算法的对偶形式
与感知机学习算法的原始形式不一样的是,感知机学习算法对偶形式下把感知机模型看作是实例
x
i
x_{i}
xi和标记
y
i
y_{i}
yi的线性组合形式。通过更新各个实例点下在误分类情况下的更新次数和标记结果,直到所有实例点都被模型正确分类。以下是感知机学习算法的对偶形式,
输入:线性可分的数据集
T
=
{
(
x
1
,
y
1
)
,
(
x
1
,
y
1
)
,
⋅
⋅
⋅
,
(
x
N
,
y
N
)
}
T=\left\{(x_{1},y_{1}),(x_{1},y_{1}),\cdot \cdot \cdot ,(x_{N},y_{N})\right\}
T={(x1,y1),(x1,y1),⋅⋅⋅,(xN,yN)},其中
x
i
∈
R
n
,
y
i
∈
{
+
1
,
−
1
}
,
i
=
1
,
2
,
⋅
⋅
⋅
,
N
x_{i}\in R^{n},y_{i}\in\left \{ +1,-1 \right \},i=1,2,\cdot \cdot \cdot ,N
xi∈Rn,yi∈{+1,−1},i=1,2,⋅⋅⋅,N;学习率
η
(
0
<
η
⩽
1
)
;
\eta (0<\eta\leqslant 1);
η(0<η⩽1);
输出:
α
,
b
\alpha,b
α,b;感知机模型
f
(
x
)
=
s
i
g
n
(
∑
j
=
1
N
α
j
y
j
x
j
⋅
x
+
b
)
f(x)=sign(\sum_{j=1}^{N}\alpha_{j}y_{j}x_{j}\cdot x+b)
f(x)=sign(∑j=1Nαjyjxj⋅x+b),其中
α
=
(
α
1
,
α
2
,
⋯
,
α
N
)
T
\alpha=(\alpha_{1},\alpha_{2},\cdots,\alpha_{N})^{T}
α=(α1,α2,⋯,αN)T。
(1)
α
←
0
,
b
←
0
\alpha\leftarrow0,b\leftarrow0
α←0,b←0;
(2)在训练集中选取数据
(
x
i
,
y
i
)
(x_{i},y_{i})
(xi,yi);
(3)如果
y
i
(
∑
j
=
1
N
α
j
y
j
x
j
⋅
x
i
+
b
)
⩽
0
y_{i}(\sum_{j=1}^{N}\alpha_{j}y_{j}x_{j}\cdot x_{i}+b)\leqslant0
yi(∑j=1Nαjyjxj⋅xi+b)⩽0,
α
i
←
α
i
+
η
\alpha_{i}\leftarrow\alpha_{i}+\eta
αi←αi+η
b
←
b
+
η
y
i
b\leftarrow b+\eta y_{i}
b←b+ηyi
(4)转至(2)直到没有误分类数据。
五、总结
通过感知机学习不难发现,感知机适用于二类分类问题;模型特点是分离超平面;属于判别类型;学习策略(学习的损失函数)是极小化误分点到超平面距离;学习算法是随机梯度下降法。
参考文献
[1]李航.统计学习方法(第2版)[M].北京:清华大学出版社,2019.11.