感知机
2.1 感知机模型
定义2.1 (感知机)
假设输入空间(特征空间)是
X
∈
R
n
\mathcal X \in \mathcal R^n
X∈Rn, 输出空间是
Y
=
{
+
1
,
−
1
}
\mathcal Y = \{+1, -1\}
Y={+1,−1}. 输入
x
∈
X
x \in \mathcal X
x∈X表示实例的特征向量, 对应于输入空间(特征空间)的点; 输出
y
∈
Y
y \in\mathcal Y
y∈Y表示实例的类别. 由输入空间到输出空间的如下函数:
f
(
x
)
=
s
i
g
n
(
w
⋅
x
+
b
)
f(x) = sign(w\cdot x + b)
f(x)=sign(w⋅x+b)
称为感知机. 其中,
w
w
w和
b
b
b为感知机模型参数,
w
∈
R
n
w \in \mathcal R^n
w∈Rn叫做权值weight或权值向量weight vector,
b
∈
R
b \in \mathcal R
b∈R叫做偏置bias,
w
⋅
b
w \cdot b
w⋅b表示
w
w
w和
b
b
b的内积. sign是符号函数, 即
s
i
g
n
(
x
)
=
{
+
1
,
x
≥
0
−
1
,
x
<
0
sign(x) = \left\{ \begin{aligned} +1, x \geq 0 \\ -1, x < 0 \end{aligned} \right.
sign(x)={+1,x≥0−1,x<0
2.2 感知机学习策略
2.2.1 数据集的线性可分性
定义2.2 (数据集的线性可分性)
给定一个数据集
T
=
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
N
,
y
N
)
T = {(x_1, y_1),(x_2, y_2),...,(x_N, y_N)}
T=(x1,y1),(x2,y2),...,(xN,yN)
其中,
x
i
∈
X
=
R
n
,
y
i
∈
=
Y
=
{
+
1
,
−
1
}
,
i
=
1
,
2
,
.
.
.
,
N
x_i \in \mathcal X = \mathcal R^n, y_i \in = \mathcal Y = \{+1, -1\}, i = 1,2,..., N
xi∈X=Rn,yi∈=Y={+1,−1},i=1,2,...,N如果存在某个超平面
S
S
S
w
⋅
x
+
b
=
0
w\cdot x + b = 0
w⋅x+b=0, 能够使数据集的正实例和负实例点完全正确的划分到超平面的两侧, 即对所有
y
i
=
+
1
y_i=+1
yi=+1的实例
i
i
i, 有
w
⋅
x
i
>
0
w \cdot x_i > 0
w⋅xi>0, 对所有
y
i
=
−
1
y_i=-1
yi=−1, 有
w
⋅
x
i
+
b
<
0
w\cdot x_i + b<0
w⋅xi+b<0, 则称数据集
T
T
T为线性可分数据集linearly separable data set, 否则, 称数据集
T
T
T线性不可分.
2.2.2 感知机学习策略
假设训练数据集是线性可分的, 感知机学习的目的是求得一个能够将训练集正实例点和负实例点完全正确分开的分离超平明, (感知机是0误分类点驱动的). 为了找到这样的超平面, 即确定感知机模型参数
w
,
b
w,b
w,b, 需要确定一个学习策略, 即定义(经验)损失函数并将损失函数极小化.
损失函数的一个自然选择是误分类点的总数. 但是, 这样的损失函数不是参数
w
,
b
w,b
w,b的连续可导函数, 不易优化. 损失函数的另一个选择是误分类点到超平面
S
S
S的总距离, 这是感知机所采用的. 为此, 首先写出输入空间
R
n
\mathcal R^n
Rn中任一点
x
0
x_0
x0到超平面
S
S
S的距离:
1
∣
∣
w
∣
∣
∣
w
⋅
w
0
+
b
∣
\frac{1}{||w||}|w\cdot w_0 + b|
∣∣w∣∣1∣w⋅w0+b∣
这里,
∣
∣
w
∣
∣
||w||
∣∣w∣∣是w的
L
2
L_2
L2范数.
其次对于误分类点
(
w
i
,
y
i
)
(w_i, y_i)
(wi,yi)来说,
−
y
i
(
w
⋅
x
i
+
b
)
>
0
-y_i(w\cdot x_i + b)>0
−yi(w⋅xi+b)>0
成立. 因为当
w
⋅
x
i
+
b
>
0
时
,
y
=
−
1
;
而当
w
⋅
x
i
+
b
<
0
时
,
y
i
=
+
1
w\cdot x_i + b >0时, y=-1; 而当w\cdot x_i + b <0时, y_i =+1
w⋅xi+b>0时,y=−1;而当w⋅xi+b<0时,yi=+1, 因此, 误分类点
x
i
x_i
xi到超平面
S
S
S的距离是
−
1
∣
∣
w
∣
∣
y
i
(
w
⋅
x
i
+
b
)
-\frac{1}{||w||}y_i(w\cdot x_i + b)
−∣∣w∣∣1yi(w⋅xi+b)
这样, 假设超平面
S
S
S的误分类点集合为
M
M
M,那么所有误分类点到超平面的
S
S
S的总距离为
−
1
∣
∣
w
∣
∣
∑
x
i
∈
M
y
i
(
w
⋅
x
i
+
b
)
-\frac{1}{||w||}\sum_{x_i \in M} y_i(w\cdot x_i + b)
−∣∣w∣∣1xi∈M∑yi(w⋅xi+b)
不考虑
1
∣
∣
w
∣
∣
\frac{1}{||w||}
∣∣w∣∣1, 就得到感知机学习的损失函数(不考虑L2范数, 就是函数间隔, 考虑L2范数, 就是集合间隔)
感知机损失函数定义为
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)
这个函数就是感知机的经验风险分数.
一个特定的样本点的损失函数, 在误分类时是参数
w
,
b
w,b
w,b的线性函数, 在正确分类时是0, 因此, 给定训练数据集
T
T
T, 损失函数
L
(
w
,
b
)
L(w,b)
L(w,b)是
w
,
b
w,b
w,b的连续可到函数.
2.3 感知机学习算法
2.3.1 感知机学习算法的原始形式
感知机学习算法是对以下最优化问题的算法. 给定一个训练数据集
T
=
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
,
(
x
N
,
y
N
)
T = {(x_1, y_1),(x_2, y_2),...,(x_N, y_N)}
T=(x1,y1),(x2,y2),...,(xN,yN)
其中,
x
i
∈
X
=
R
n
,
y
i
∈
Y
=
{
−
1
,
+
1
}
,
i
=
1
,
2
,
.
.
.
,
N
x_i \in \mathcal X = \mathcal R^n, y_i \in \mathcal Y=\{-1, +1\}, i=1,2,...,N
xi∈X=Rn,yi∈Y={−1,+1},i=1,2,...,N, 求参数
w
,
b
w, b
w,b, 使其为以下损失函数极小化问题的解
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)
其中
M
M
M为误分类点的集合.
感知机学习算法是误分类驱动的, 具体采用随机梯度下降法stochastic gradient descent. 首先, 任意选取一个超平面
w
0
,
b
0
w_0, b_0
w0,b0, 然后用梯度下降法不断的极小化目标函数. 极小化过程中不是一次使
M
M
M中所有误分类点的梯度下降, 而是一次随机选取一个误分类带你使其梯度下降.
假设误分类点集合
M
M
M是固定的,那么损失函数
L
(
w
,
b
)
L(w, b)
L(w,b)的梯度由
∇
w
L
(
w
,
b
)
=
−
∑
x
i
∈
M
y
i
x
i
∇
b
L
(
w
,
b
)
=
−
∑
x
i
∈
M
y
i
\nabla_wL(w,b) = -\sum_{x_i \in M}y_ix_i \\ \nabla_bL(w,b) = -\sum_{x_i \in M}y_i
∇wL(w,b)=−xi∈M∑yixi∇bL(w,b)=−xi∈M∑yi
给出.
随机选取一个误分类点
(
x
i
,
y
i
)
(x_i, y_i)
(xi,yi), 对
w
,
b
w, b
w,b进行更新:
w
←
w
+
η
y
i
x
i
b
←
b
+
η
y
i
w \leftarrow w +\eta y_ix_i \\ b \leftarrow b + \eta y_i
w←w+ηyixib←b+ηyi
式中
η
(
0
<
η
≤
1
)
\eta(0<\eta\leq 1)
η(0<η≤1)是步长, 又称为学习率learning rate, 这样, 通过迭代可以期待损失函数
L
(
w
,
b
)
L(w,b)
L(w,b)不断减小, 直到为0.
算法2.1 (感知机学习算法的原始形式)
输入: 训练数据集
T
=
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
(
x
N
,
y
N
)
,
其中
x
i
∈
X
=
R
n
,
y
i
∈
Y
=
{
−
1
,
+
1
}
,
i
=
1
,
2
,
.
.
.
,
N
;
学习率
η
(
0
<
η
≤
1
)
T = {(x_1,y_1),(x_2,y_2),...(x_N, y_N)}, 其中x_i \in \mathcal X = \mathcal R^n, y_i \in \mathcal Y = \{-1, +1\}, i = 1,2,...,N; 学习率\eta(0<\eta \leq 1)
T=(x1,y1),(x2,y2),...(xN,yN),其中xi∈X=Rn,yi∈Y={−1,+1},i=1,2,...,N;学习率η(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
,
y
0
w_0, y_0
w0,y0
(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)\leq0
yi(w⋅xi+b)≤0
w
←
w
+
η
y
i
x
i
b
←
b
+
η
y
i
w \leftarrow w +\eta y_ix_i \\ b \leftarrow b + \eta y_i
w←w+ηyixib←b+ηyi
(4) 转至(2), 直至训练集中没有五分类点.
这种学习算法直观上有如下解释: 当一个实例点被误分类, 即位于分离超平面的错误一侧时, 调整
w
,
b
w,b
w,b的值, 使分离超平面向该误分类点的一侧移动, 以减少该五分类点与超平面的距离, 直至超平面越过该五分类点使其被正确分类.
2.3.2 算法的收敛性
现在证明, 对于线性可分数据集感知机学习算法原始形式收敛, 即经过有限次迭代可以得到一个将训练数据集完全正确划分的分离超平面及感知机模型
定理2.1 (Novikoff)
设训练数据集
T
=
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
.
.
.
(
x
N
,
y
N
)
,
其中
x
i
∈
X
=
R
n
,
y
i
∈
Y
=
{
−
1
,
+
1
}
,
i
=
1
,
2
,
.
.
.
,
N
T = {(x_1,y_1),(x_2,y_2),...(x_N, y_N)}, 其中x_i \in \mathcal X = \mathcal R^n, y_i \in \mathcal Y = \{-1, +1\}, i = 1,2,...,N
T=(x1,y1),(x2,y2),...(xN,yN),其中xi∈X=Rn,yi∈Y={−1,+1},i=1,2,...,N 则
(1) 存在满足条件
∣
∣
w
^
o
p
t
∣
∣
=
1
||\hat{w}_{opt}||=1
∣∣w^opt∣∣=1的超平面
w
^
o
p
t
⋅
x
^
=
w
o
p
t
⋅
x
+
b
o
p
t
=
0
\hat{w}_{opt}\cdot \hat{x}=w_{opt}\cdot x + b_{opt} = 0
w^opt⋅x^=wopt⋅x+bopt=0将训练数据集完全正确分开, 且存在
γ
>
0
,
对所有
i
=
1
,
2
,
.
.
.
,
N
\gamma >0, 对所有i=1,2,..., N
γ>0,对所有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(\hat{w}_{opt}\cdot \hat{x}_i)=y_i(w_{opt}\cdot x_i + b_{opt})\geq \gamma
yi(w^opt⋅x^i)=yi(wopt⋅xi+bopt)≥γ
(2) 令
R
=
max
1
≤
i
≤
N
∣
∣
x
i
^
∣
∣
R=\max \limits_{1\leq i \leq N}||\hat{x_i}||
R=1≤i≤Nmax∣∣xi^∣∣, 则感知机算法2.1在训练数据集上的误分类次数k满足不等式
k
≤
(
R
γ
)
2
k \leq(\frac{R}{\gamma})^2
k≤(γR)2
此处证明过程省略, 可参考书上P42…
结论: 定理表明, 误分类的次数k是由上界的, 结果有限次搜索可以找到训练数据完全正确分开的分离超平面, 也就是说, 当训练数据集线性可分时, 感知机学习算法原始形式迭代时收敛的. 但是列2.1说明, 感知机学习算法存在许多解, 这些解即依赖于初值的选择, 也依赖于迭代过程中误分类点的选择顺序, 为了得到唯一的超平面, 需要对分离超平面增加约束条件. 当训练集线性不可分时, 感知机学习算法不收敛, 迭代结果会发生震荡.
2.3.3 感知机学习算法的对偶形式
略…
算法2.2 (感知机学习算法的对偶形式)
…
本章概要
- 感知机是根据输入实例的特征向量x对其进行二类分类的线性分类模型:
f ( x ) = s i g n ( w ⋅ x + b ) f(x) = sign(w\cdot x + b) f(x)=sign(w⋅x+b)
感知机模型对应于输入空间(特征空间)中的分离超平面 w ⋅ x + b = 0 w\cdot x + b = 0 w⋅x+b=0 - 感知机学习的策略是极小化损失函数
min w , b L ( w , b ) = − ∑ x i ∈ M y i ( w ⋅ x + b ) \min_{w,b}L(w,b) = -\sum_{x_i \in M}y_i(w\cdot x + b) w,bminL(w,b)=−xi∈M∑yi(w⋅x+b)
损失函数对应于误分类点到分离超平面的总距离 - 感知机学习算法是基于随机梯度下降法的对损失函数的最优化算法, 有原始形式和对偶形式. 算法简单且易于实现. 原始形式中, 首先任意选取一个超平面, 然后用梯度下降法不断极小化目标函数. 在这个过程中一次随机选取一个误分类点使其梯度下降.
- 当训练数据集线性可分时, 感知机学习算法是收敛的. 感知机算法在训练数据集上的误分类次数k满足不等式:
k ≤ ( R γ ) 2 k\leq (\frac{R}{\gamma})^2 k≤(γR)2
当训练数据集线性可分时, 感知机学习算法存在无穷多个解, 其解由于不同的初值或不同的迭代顺序而可能有所不同