感知机学习日志
感知机———二类分类的线性分类模型
一、定义感知机
假设输入空间 (特征空间)是
X
⊆
R
n
\mathcal{X} \subseteq \mathbf{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
)
=
sign
(
w
⋅
x
+
b
)
f(x)=\operatorname{sign}(w \cdot x+b)
f(x)=sign(w⋅x+b)称为感知机.其中,
w
w
w和
b
b
b为感知机模型参数,
w
∈
R
n
w \in \mathbf{R}^{n}
w∈Rn叫作权值(weight)或权值向量(weight vector),
b
∈
R
b \in \mathbf{R}
b∈R叫作偏置(bias),
w
⋅
x
w\cdot x
w⋅x表示
w
w
w和
x
x
x的内积.
二、感知机几何解释:
线性方程
w
⋅
x
+
b
=
0
w \cdot x+b=0
w⋅x+b=0对应于特征空间
R
n
R^n
Rn中的一个超平面,其中
w
w
w是超平面的法向量,
b
b
b是超平面的截距,这个超平面将特征空间划分为两个部分,位于两部分的点(特征向量)分别被分为正、负两类。因此,
S
S
S超平面称为分离超平面(separating hyperplane)
三、感知机学习策略
假设训练数据集是线性可分的,感知机学习的目标是求得一个能够将训练集正实例点和负实例点完全正确分开的分离超平面。为了找出这样的超平面,即确定感知机模型参数
w
w
w,
b
b
b,需要确定一个学习策略,即定义(经验)损失函数并将损失函数极小化。
损失函数的一个选择是误分类点的总数,但是这样的损失函数不是参数
w
w
w,
b
b
b的连续可导函数,不易优化。
损失函数的另一个选择是误分类点到超平面
S
S
S的总距离,这是感知器所采用的。
输入空间
R
n
\mathbf{R}^{n}
Rn中任一点
x
0
x_0
x0到超平面
S
S
S的距离
1
∥
w
∥
∣
w
⋅
x
0
+
b
∣
\frac{1}{\|w\|}\left|w \cdot x_{0}+b\right|
∥w∥1∣w⋅x0+b∣其中,
∥
w
∥
\|w\|
∥w∥是
w
w
w的
L
2
L_2
L2范数
对于误分类数据
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi),有
−
y
i
(
w
⋅
x
i
+
b
)
>
0
-y_{i}\left(w \cdot x_{i}+b\right)>0
−yi(w⋅xi+b)>0成立, 当
w
⋅
x
i
+
b
>
0
w \cdot x_{i}+b>0
w⋅xi+b>0时,
y
i
=
−
1
y_i=-1
yi=−1
因此,误分类点
x
i
x_i
xi到超平面
S
S
S的距离是
−
1
∥
w
∥
y
i
(
w
⋅
x
i
+
b
)
-\frac{1}{\|w\|}y_i\left(w \cdot x_{i}+b\right)
−∥w∥1yi(w⋅xi+b)假设超平面
S
S
S的误分类点集合为
M
M
M,那么所有误分类点到超平面的总距离为
−
1
∥
w
∥
∑
x
i
∈
M
y
i
(
w
⋅
x
i
+
b
)
-\frac{1}{\|w\|} \sum_{x_{i} \in M} y_{i}\left(w \cdot x_{i}+b\right)
−∥w∥1xi∈M∑yi(w⋅xi+b)不考虑
1
∥
w
∥
\frac{1}{\|w\|}
∥w∥1,就得到感知机
sign
(
w
⋅
x
+
b
)
\operatorname{sign}(w \cdot x+b)
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}\left(w \cdot x_{i}+b\right)
L(w,b)=−xi∈M∑yi(w⋅xi+b)这个损失函数就是感知机学习的经验风险函数。
感知机学习问题转化为求解损失函数的最优化问题,最优化的方法是随机梯度下降法。
感知机算法是对一下最优化问题的算法。给定一个训练数据集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
⋯
 
,
(
x
N
,
y
N
)
}
T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots,\left(x_{N}, y_{N}\right)\right\}
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}=\mathbf{R}^{n}, \quad y_{i} \in \mathcal{Y}=\{-1,1\}, \quad i=1,2, \cdots, 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}\left(w \cdot x_{i}+b\right)
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
\nabla_{w} L(w, b)=-\sum_{x_{i} \in M} y_{i} x_{i}
∇wL(w,b)=−xi∈M∑yixi
∇
b
L
(
w
,
b
)
=
−
∑
x
i
∈
M
y
i
\nabla_{b} L(w, b)=-\sum_{x_{i} \in M} y_{i}
∇bL(w,b)=−xi∈M∑yi给出.
随机选取一个误分类点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi),对进行更新:
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式中
η
(
0
<
η
⩽
1
)
\eta(0<\eta \leqslant 1)
η(0<η⩽1)是步长,在统计学习中又称为学习率(learning rate),这样,通过迭代可以期待损失函数
L
(
w
,
b
)
L(w,b)
L(w,b)不断减小。综上所述,得到如下算法:
感知机学习算法的原始形式
输入:训练数据集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
⋯
 
,
(
x
N
,
y
N
)
}
T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots,\left(x_{N}, y_{N}\right)\right\}
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}=\mathbf{R}^{n}, y_{i} \in \mathcal{Y}=\{-1,+1\}, \quad i=1,2, \cdots, N
xi∈X=Rn,yi∈Y={−1,+1},i=1,2,⋯,N;学习率
η
(
0
<
η
⩽
1
)
\eta(0<\eta \leqslant 1)
η(0<η⩽1)
输出:
w
,
b
w,b
w,b;感知器模型
f
(
x
)
=
sign
(
w
⋅
x
+
b
)
f(x)=\operatorname{sign}(w \cdot x+b)
f(x)=sign(w⋅x+b)
(
1
)
(1)
(1)选取初值
w
0
,
b
0
w_0,b_0
w0,b0
(
2
)
(2)
(2)在训练集中选取数据
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)
(
3
)
(3)
(3) 如果
y
i
(
w
⋅
x
i
+
b
)
⩽
0
y_{i}\left(w \cdot x_{i}+b\right) \leqslant 0
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
)
(4)
(4)转至
(
2
)
(2)
(2),直至训练集中没有误分类
这种学习算法直观上有如下解释:当一个实例点被误分类,即位于分离超平面的错误一侧时,则调整
w
,
b
w,b
w,b的值,使分离超平面向该误分类点的一侧移动,以减少该误分类点与超平面间的距离,直至超平面越过该误分类点使其被正确分类。
四、算法的收敛性
为了便于叙述与推导
记
w
^
=
(
w
T
,
b
)
T
\hat{\mathbf{w}}=\left(w^{\mathrm{T}}, b\right)^{\mathrm{T}}
w^=(wT,b)T ,
x
^
=
(
x
T
,
1
)
T
\hat{x}=\left(x^{\mathrm{T}}, 1\right)^{\mathrm{T}}
x^=(xT,1)T,这样
x
^
∈
R
n
+
1
,
w
^
∈
R
n
+
1
\hat{x} \in \mathbf{R}^{n+1}, \quad \hat{w} \in \mathbf{R}^{n+1}
x^∈Rn+1,w^∈Rn+1,显然
w
^
⋅
x
^
=
w
⋅
x
+
b
\hat{\boldsymbol{w}} \cdot \hat{\boldsymbol{x}}=w \cdot x+b
w^⋅x^=w⋅x+b,
定理(Novikoff)设训练数据集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
⋯
 
,
(
x
N
,
y
N
)
}
T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots,\left(x_{N}, y_{N}\right)\right\}
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}=\mathbf{R}^{n}, \quad y_{i} \in \mathcal{Y}=\{-1,+1\}, \quad i=1,2, \cdots, N
xi∈X=Rn,yi∈Y={−1,+1},i=1,2,⋯,N,则
(
1
)
(1)
(1)存在满足条件
∥
w
^
o
p
t
∥
=
1
\left\|\hat{w}_{\mathrm{opt}}\right\|=1
∥w^opt∥=1的超平面
w
^
o
p
t
⋅
x
^
=
w
o
p
t
⋅
x
+
b
o
p
t
=
0
\hat{w}_{\mathrm{opt}} \cdot \hat{x}=w_{\mathrm{opt}} \cdot x+b_{\mathrm{opt}}=0
w^opt⋅x^=wopt⋅x+bopt=0将训练数据集完全正确分开;且存在
γ
>
0
\gamma>0
γ>0,对所有
i
=
1
,
2
,
⋯
 
,
N
i=1,2, \cdots, 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
)
⩾
γ
(
1
)
y_{i}\left(\hat{w}_{\mathrm{opt}} \cdot \hat{x}_{i}\right)=y_{i}\left(w_{\mathrm{opt}} \cdot x_{i}+b_{\mathrm{opt}}\right) \geqslant \gamma \qquad(1)
yi(w^opt⋅x^i)=yi(wopt⋅xi+bopt)⩾γ(1)
(
2
)
(2)
(2)令
R
=
max
1
⩽
i
⩽
N
∥
x
^
i
∥
R=\max _{1 \leqslant i \leqslant N}\left\|\hat{x}_{i}\right\|
R=max1⩽i⩽N∥x^i∥,则感知机算法在训练数据集上的误分类次数
k
k
k满足不等式
k
⩽
(
R
γ
)
2
(
2
)
k \leqslant\left(\frac{R}{\gamma}\right)^{2} \qquad(2)
k⩽(γR)2(2)
证明:参考《统计学习方法》
定理表明,误分类的次数
k
k
k是有上界的,经过有限次搜索可以找到将训练数据完全正确分开的分离超平面。当训练数据集线性可分时,感知机学习算法原始形式迭代是收敛的。
感知机学习算法存在许多解,这些解既依赖初值的选择,也依赖于迭代过程中误分类点的选择顺序,为了得到唯一的超平面,需要对分离超平面增加约束条件。
五、感知机学习算法的对偶形式
对偶形式的基本想法是,将
w
w
w和
b
b
b表示为实例
x
i
x_i
xi和
y
i
y_i
yi标记的线性组合形式,通过求解其系数而求得
w
w
w和
b
b
b,假设初始值
w
0
,
b
0
w_0,b_0
w0,b0均为
0
0
0,对误分类点
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)通过
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
逐步修改
w
w
w和
b
b
b,设修改
n
n
n次,则
w
,
b
w,b
w,b关于
(
x
i
,
y
i
)
(x_i,y_i)
(xi,yi)的增量分别是
α
i
y
i
x
i
\alpha_{i} y_{i} x_{i}
αiyixi和
α
i
y
i
\alpha_{i} y_{i}
αiyi,这里
α
i
=
n
i
η
\alpha_{i}=n_{i} \eta
αi=niη。这样最后学习得到的
w
,
b
w,b
w,b可以分别表示为
w
=
∑
i
=
1
N
α
i
y
i
x
i
w=\sum_{i=1}^{N} \alpha_{i} y_{i} x_{i}
w=i=1∑Nαiyixi
b
=
∑
i
=
1
N
α
i
y
i
b=\sum_{i=1}^{N} \alpha_{i} y_{i}
b=i=1∑Nαiyi这里,
α
i
⩾
0
,
i
=
1
,
2
,
⋯
 
,
N
\alpha_{i} \geqslant 0, \quad i=1,2, \cdots, N
αi⩾0,i=1,2,⋯,N,当
η
=
1
\eta=1
η=1时,表示第
i
i
i个实例点由于误分而进行更新的次数。实例点更新次数越多,意味着它距离分离超平面越近,也就越难正确分类。这样的实例对学习结果的影响最大。
算法(感知机学习算法的对偶形式)
输入:训练数据集
T
=
{
(
x
1
,
y
1
)
,
(
x
2
,
y
2
)
,
⋯
 
,
(
x
N
,
y
N
)
}
T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots,\left(x_{N}, y_{N}\right)\right\}
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}=\mathbf{R}^{n}, y_{i} \in \mathcal{Y}=\{-1,+1\}, \quad i=1,2, \cdots, N
xi∈X=Rn,yi∈Y={−1,+1},i=1,2,⋯,N;学习率
η
(
0
<
η
⩽
1
)
\eta(0<\eta \leqslant 1)
η(0<η⩽1)
输出:
α
,
b
\alpha, b
α,b;感知机模型
f
(
x
)
=
sign
(
∑
j
=
1
N
α
j
y
j
x
j
⋅
x
+
b
)
f(x)=\operatorname{sign}\left(\sum_{j=1}^{N} \alpha_{j} y_{j} x_{j} \cdot x+b\right)
f(x)=sign(∑j=1Nαjyjxj⋅x+b)其中
α
=
(
α
1
,
α
2
,
⋯
 
,
α
N
)
T
\alpha=\left(\alpha_{1}, \alpha_{2}, \cdots, \alpha_{N}\right)^{\mathrm{T}}
α=(α1,α2,⋯,αN)T
(
1
)
(1)
(1)
α
←
0
,
b
←
0
\alpha \leftarrow 0, \quad b \leftarrow 0
α←0,b←0
(
2
)
(2)
(2) 在训练数据集中选取数据
(
x
i
,
y
i
)
\left(x_{i}, y_{i}\right)
(xi,yi)
(
3
)
(3)
(3) 如果
y
i
(
∑
j
=
1
N
α
j
y
j
x
j
⋅
x
i
+
b
)
⩽
0
y_{i}\left(\sum_{j=1}^{N} \alpha_{j} y_{j} x_{j} \cdot x_{i}+b\right) \leqslant 0
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
)
(4)
(4)转至
(
2
)
(2)
(2)直到没有误分类数据。
《统计学习方法》李航