第二章 感知机
1 前言
感知机(perceptron)是线性分类模型,属于判别模型。输入是特征向量,输出是类别。其将特征空间划分为正负两类的分离超平面。感知机算法收敛的充要条件是数据集线性可分(在损失函数不是太离谱的前提下)。
2 感知机模型
- i n p u t : x ∈ R n input: ~x \in \mathbb R^n input: x∈Rn
-
o
u
t
p
u
t
:
y
∈
{
+
1
,
−
1
}
output:~ y \in \{+1, -1\}
output: y∈{+1,−1}
f ( x ) = s i g n ( w ⋅ x + b ) f(x) = \mathrm{sign}(w \cdot x + b) f(x)=sign(w⋅x+b)
其中 w ∈ R n w\in\mathbb R^n w∈Rn 是权值或权值向量, b ∈ R b\in\mathbb R b∈R是偏置。也就是说,对于任意一个输入 x x x,其线性变换得到的 w ⋅ x + b w \cdot x + b w⋅x+b的符号就代表了这个感知机认为 x x x所属的类别。
3 感知机学习策略
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
∈
R
n
x\in\mathbb R^n
x∈Rn,
y
∈
{
+
1
,
−
1
}
y\in \{+1, -1\}
y∈{+1,−1},
i
=
1
,
2
,
.
.
.
,
N
i=1, 2,...,N
i=1,2,...,N。如果存在一个超平面
S
S
S
S
:
w
⋅
x
+
b
=
0
S:w\cdot x+b=0
S:w⋅x+b=0
能够将数据集的正负样本完全正确地划分到超平面的两侧,就称数据集
T
T
T是线性可分的。
3.2 学习策略
要找到一个能将数据集完全分开的超平面,即确定一组参数
(
w
,
b
)
(w,b)
(w,b),为了能通过学习找到这一组
(
w
,
b
)
(w,b)
(w,b),需要设计一种损失函数。
一种自然的想法是将误分类点的个数作为损失,但这样的损失函数不是关于
w
w
w和
b
b
b的连续可导函数,不方便优化。
感知机所采用的是误分类点到超平面的距离的和,首先,对于任意一点
x
0
x_0
x0,其到超平面
S
S
S的距离为
1
∣
∣
w
∣
∣
2
∣
w
⋅
x
0
+
b
∣
\frac{1}{||w||_2}|w \cdot x_0 + b|
∣∣w∣∣21∣w⋅x0+b∣
对于误分类的点而言
1
∣
∣
w
∣
∣
2
∣
w
⋅
x
0
+
b
∣
=
−
1
∣
∣
w
∣
∣
2
y
i
(
w
⋅
x
0
+
b
)
\frac{1}{||w||_2}|w \cdot x_0 + b| = -\frac{1}{||w||_2}y_i(w \cdot x_0 + b)
∣∣w∣∣21∣w⋅x0+b∣=−∣∣w∣∣21yi(w⋅x0+b)
于是可以得到损失函数(
1
∣
∣
w
∣
∣
2
\frac{1}{||w||_2}
∣∣w∣∣21可直接忽略)
L
(
w
,
b
)
=
−
∑
x
i
∈
M
y
i
(
w
⋅
x
0
+
b
)
L(w,b)=-\sum_{x_i\in M}{y_i(w \cdot x_0 + b)}
L(w,b)=−xi∈M∑yi(w⋅x0+b)
其中
M
M
M是误分类点的集合。
4 感知机学习算法
4.1 感知机学习算法的原始形式
感知机学习算法是误分类驱动的,具体采用随机梯度下降。首先计算梯度。
∇
w
L
(
w
,
b
)
=
−
∑
x
i
∈
M
y
i
x
i
∇
b
L
(
w
,
b
)
=
−
∑
x
i
∈
M
y
i
\begin{aligned} \nabla_w L(w,b)&=-\sum_{x_i\in M}{y_ix_i} \\ \nabla_b L(w,b)&=-\sum_{x_i\in M}{y_i} \end{aligned}
∇wL(w,b)∇bL(w,b)=−xi∈M∑yixi=−xi∈M∑yi
随机选取一个误分类点(随机梯度下降),对
w
,
b
w,b
w,b进行更新
w
←
w
+
η
y
i
x
i
b
←
b
+
η
y
i
\begin{aligned} w &\leftarrow w + \eta y_ix_i \\ b &\leftarrow b + \eta y_i \end{aligned}
wb←w+ηyixi←b+ηyi
这里,
η
\eta
η是learning rate。
算法终止的条件是所有分类点都被正确分类,由此可见只有在数据集线性可分的前提下,算法才能收敛。
4.2 感知机学习算法的收敛性
Novikoff定理描述了感知机学习算法的收敛性,这里给出定理(证明过程好长…我懒了)。
Novikoff 定理
设训练数据集 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 ∈ R n x\in\mathbb R^n x∈Rn, y ∈ { + 1 , − 1 } y\in \{+1, -1\} y∈{+1,−1}, i = 1 , 2 , . . . , N i=1, 2,...,N i=1,2,...,N,则
(1) 存在满足条件 ∣ ∣ w ^ o p t ∣ ∣ = 1 ||\hat{w}_{opt}||=1 ∣∣w^opt∣∣=1的超平面 w ^ o p t ⋅ x ^ = 0 \hat{w}_{opt} \cdot \hat{x} = 0 w^opt⋅x^=0将训练数据集完全正确分开;且存在 γ > 0 \gamma > 0 γ>0.对于所有 i = 1 , 2 , . . . , N i=1, 2,...,N i=1,2,...,N
y i ( w ^ o p t ⋅ x ^ ) ⩾ γ y_i(\hat{w}_{opt} \cdot \hat{x}) \geqslant \gamma yi(w^opt⋅x^)⩾γ
(2) 令 R = max 1 ⩽ i ⩽ N ∣ ∣ x ^ i ∣ ∣ R = \max \limits_{1\leqslant i \leqslant N}{||\hat{x}_i||} R=1⩽i⩽Nmax∣∣x^i∣∣,则感知机算法在数据集上的误分类次数 k k k 满足不等式
k ⩽ ( R γ ) 2 k \leqslant (\frac{R}{\gamma})^2 k⩽(γR)2
这表明误分类的次数是有上界的。
5 感知机学习算法的对偶形式
基本思想是:将 w w w和 b b b表示为 x i x_i xi和 y i y_i yi的线性组合的形式,通过求解系数求得 w w w和 b b b。与原始形式一样,对偶形式也是收敛的,存在多个解。