第2章 感知机
感知机(perceotron)是二分类的线性分类模型,其输入为实例的特征向量,输出为实例的类别,取+1,-1二值。感知机对应于输入空间(特征空间)中将实例划分为正负两类的分离超平面,属于判别模型。
模型
定义 2.1(感知机):假设输入空间是
R
n
R^n
Rn,输出空间是
{
−
1
,
+
1
}
\{-1,+1\}
{−1,+1},从输入空间到输出空间的函数
f
(
x
)
f(x)
f(x)
f
(
x
)
=
sign
(
w
⃗
⋅
x
⃗
+
b
)
f(x)=\text{sign}(\vec{w}\cdot\vec{x}+b)
f(x)=sign(w⋅x+b)
被称为感知机。其中,
w
⃗
,
b
\vec{w},b
w,b被称为感知机模型参数,
w
⃗
∈
R
n
\vec{w}\in R^n
w∈Rn被称为权值向量或权值,
b
∈
R
b\in R
b∈R被称为偏置,
sign
\text{sign}
sign是符号函数。
在几何表示中,对于给定的 w ⃗ , b \vec{w},b w,b,线性方程 w ⃗ ⋅ x ⃗ + b = 0 \vec{w}\cdot\vec{x}+b=0 w⋅x+b=0对应于特征空间 R n R^n Rn的超平面。容易证明, w ⃗ \vec{w} w是这个超平面的法向量, w ⃗ ⋅ x ⃗ + b > 0 \vec{w}\cdot\vec{x}+b>0 w⋅x+b>0对应于 w ⃗ \vec{w} w指向的一侧, w ⃗ ⋅ x ⃗ + b < 0 \vec{w}\cdot\vec{x}+b<0 w⋅x+b<0对应于 − w ⃗ -\vec{w} −w指向的一侧。因此,这个超平面将特征空间划分为两个部份,所以可以被用于解决分类问题。
感知机通过学习训练数据集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
⋯
,
(
x
N
,
y
N
)
}
T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\}
T={(x1,y1),(x2,y2),⋯,(xN,yN)}
得到模型参数
w
⃗
,
b
\vec{w},b
w,b,然后通过
f
(
x
)
f(x)
f(x)来预测新的输入实例,最终得到其输出类别。
学习策略
线性可分:如果存在某个超平面 S S S将数据集的正实例点和负实例点完全正确地划分到超平面的两侧,那么就称该数据集为线性可分数据集,否则称其为线性不可分数据集。
在感知机的学习策略中,其定义经验损失函数并将其最小化,最终得到模型参数 w ⃗ , b \vec{w},b w,b,如下所示。
假设输入的数据集为
T
T
T,感知机对应的超平面记为
S
S
S
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
⋯
,
(
x
N
,
y
N
)
}
x
i
∈
R
n
,
y
i
∈
{
−
1
,
+
1
}
,
i
=
1
,
2
,
⋯
,
N
S
=
{
x
⃗
∣
w
⃗
⋅
x
⃗
+
b
=
0
}
T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\}\\ x_i\in R^n,\ y_i\in\{-1,+1\},\ i=1,2,\cdots,N\\ S=\{\vec{x}|\vec{w}\cdot\vec{x}+b=0\}
T={(x1,y1),(x2,y2),⋯,(xN,yN)}xi∈Rn, yi∈{−1,+1}, i=1,2,⋯,NS={x∣w⋅x+b=0}
容易证明,输入空间中任一点到超平面的距离为
∣
w
⃗
⋅
x
⃗
+
b
∣
∣
∣
w
⃗
∣
∣
\frac{|\vec{w}\cdot\vec{x}+b|}{||\vec{w}||}
∣∣w∣∣∣w⋅x+b∣
对于误分类的数据
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)来说,我们有
−
y
i
(
w
⃗
⋅
x
+
b
)
>
0
-y_i(\vec{w}\cdot{x}+b)>0
−yi(w⋅x+b)>0
假设所有的误分类点的集合为
M
M
M,那么所有误分类点到超平面的距离之和为损失函数
L
(
w
⃗
,
b
)
L(\vec{w},b)
L(w,b)
L
(
w
⃗
,
b
)
=
−
∑
x
i
∈
M
y
i
(
w
⃗
⋅
x
i
⃗
+
b
)
L(\vec{w},b)=-\sum_{x_i\in M}y_i(\vec{w}\cdot\vec{x_i}+b)
L(w,b)=−xi∈M∑yi(w⋅xi+b)
其中不考虑
1
∣
∣
w
⃗
∣
∣
\frac{1}{||\vec{w}||}
∣∣w∣∣1。
感知机的学习策略是在假设空间中选择使 L ( w ⃗ , b ) L(\vec{w},b) L(w,b)达到最小的模型参数 w , b w,b w,b。
学习算法
感知机的学习问题实际上是损失函数 L ( w , b ) L(w,b) L(w,b)的最优化问题。
原始形式
采用随机梯度下降法来优化函数
L
(
w
,
b
)
L(w,b)
L(w,b)。在极小化的过程中,不是一次使
M
M
M中所有的误分类点的梯度下降,而是一次随机一个误分类点,使其梯度下降,更新方法如下
w
=
w
+
η
y
i
x
i
b
=
b
+
η
y
i
w=w+\eta y_ix_i\\ b=b+\eta y_i
w=w+ηyixib=b+ηyi
其中,
η
\eta
η是步长,又被称为学习率。
算法 2.1 感知机算法的原始形式
输入:训练数据集 T T T,学习率 η ∈ ( 0 , 1 ] \eta\in(0,1] η∈(0,1]
输出: w , b w,b w,b
-
选定初值 w 0 , b 0 w_0,b_0 w0,b0
-
在训练集中选取数据 ( x i , y i ) (x_i,y_i) (xi,yi)
-
如果 y i ( w ⋅ x i + b ) ≤ 0 y_i(w\cdot x_i+b)\le 0 yi(w⋅xi+b)≤0,则更新 w , b w,b w,b
w = w + η x i y i b = b + η y i w=w+\eta x_iy_i\\ b = b+\eta y_i w=w+ηxiyib=b+ηyi -
转2,直到训练集中没有误分类点。
对偶形式
不失一般性,在算法 2.1中可假设初始值
w
0
,
b
0
)
w_0,b_0)
w0,b0)的值均为0,设
w
,
b
w,b
w,b关于
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)的增量为
α
i
y
i
x
i
\alpha_iy_ix_i
αiyixi和
α
i
y
i
\alpha_iy_i
αiyi。其中,
α
i
=
n
i
η
\alpha_i=n_i\eta
αi=niη,
n
i
n_i
ni是数据点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)被选为误分类点来更新
w
,
b
w,b
w,b的次数。此时,
w
,
b
w,b
w,b可表示如下。
w
=
∑
i
=
1
N
α
i
y
i
x
i
b
=
∑
i
=
1
N
α
i
y
i
w=\sum_{i=1}^N\alpha_iy_ix_i\\ b=\sum_{i=1}^N\alpha_iy_i
w=i=1∑Nαiyixib=i=1∑Nαiyi
由此得到感知机算法的对偶形式。
输入:训练数据集 T T T,学习率 η ∈ ( 0 , 1 ] \eta\in(0,1] η∈(0,1]
输出: α , b \alpha,b α,b,感知机模型 f ( x ) = sign ( ∑ j = 1 N α j y j x j ⋅ x + b ) f(x)=\text{sign}(\sum_{j=1}^N\alpha_jy_jx_j\cdot x+b) f(x)=sign(∑j=1Nαjyjxj⋅x+b)
-
α = 0 , b = 0 \alpha=0,b=0 α=0,b=0
-
在训练集中选取 ( x i , y i ) (x_i,y_i) (xi,yi)
-
如果 y i f ( x i ) ≤ 0 y_if(x_i)\le 0 yif(xi)≤0
α i = α a + η b = b + η y i \alpha_i=\alpha_a+\eta\\ b=b+\eta y_i αi=αa+ηb=b+ηyi -
转2,直到没有误分类数据。