统计学习方法 感知机学习算法
读李航《统计学习方法》的一些笔记,感知机学习算法的推导过程有一些细节想记录一下。
感知机输入算法的原始形式
我们这里只讨论感知机学习算法的原始形式,这个问题的对偶形式还是容易理解的。
给定一个训练数据集:
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)}
其中
x
i
∈
X
=
R
n
x_i\in\mathcal{X}=\bold{R}^n
xi∈X=Rn ,
y
i
∈
Y
=
{
−
1
,
1
}
y_i\in\mathcal{Y}=\{-1,\,1\}
yi∈Y={−1,1} ,
i
=
1
,
2
,
⋯
,
N
i=1,\,2,\,\cdots,\,N
i=1,2,⋯,N ,求参数
w
w
w 和
b
b
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 为误分类点的集合。
w
w
w 和
b
b
b 构成了一个超平面,将正类和负类分开(如果数据集完全可分的话)。
w
w
w 和
x
x
x 的维数是一样的,这里
⋅
\cdot
⋅ 代表内积,也可以写成
w
T
x
i
w^Tx_i
wTxi ;而
b
b
b 是一个常数值。
我们采用随机梯度下降法来学习参数
w
w
w 和
b
b
b ,梯度为:
∇
w
L
(
w
,
b
)
=
−
∑
x
i
∈
M
y
i
x
i
∇
b
L
(
w
,
b
)
=
−
∑
x
i
∈
M
y
i
\begin{align} \nabla_wL(w,\,b)=&\,-\sum\limits_{x_i\in M}y_ix_i \\ \nabla_bL(w,\,b)=&\,-\sum\limits_{x_i\in M}y_i \\ \end{align}
∇wL(w,b)=∇bL(w,b)=−xi∈M∑yixi−xi∈M∑yi
但学习的时候并不是一次使
M
M
M 中所有的误分类点都梯度下降,而是一次随机选取一个误分类点使其梯度下降:
算法:感知机学习算法的原始形式
输入:训练数据集 T T T ,学习率 η \eta η ;
输出: w w w , b b b ,感知机模型 f ( x ) = sign ( w ⋅ x + b ) f(x)=\text{sign}(w\cdot x+b) f(x)=sign(w⋅x+b) ;
- 选取初值 w 0 w_0 w0 和 b 0 b_0 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) \leq 0 yi(w⋅xi+b)≤0 :
w ← w + η y i x i b ← b + η y i \begin{align} w \leftarrow&\, w+\eta y_ix_i \\ b \leftarrow&\, b+\eta y_i \end{align} w←b←w+ηyixib+ηyi
- 若当前训练集中仍有误分类点,则跳转至 2. ,否则结束;
算法的收敛性
当数据集不可分时,显然上述算法会震荡。现在证明,对于线性可分数据集,感知机学习算法原始形式收敛,即经过有限次迭代就可以得到一个将数据集完全正确划分的分离超平面及感知机模型。
为了数学推导方面,我们将偏置
b
b
b 放入权重向量
w
w
w ,记作
w
^
=
[
w
t
,
b
]
T
\hat{w}=[w^t,\,b]^T
w^=[wt,b]T 。同样将输入向量进行增广,得到
x
^
=
[
x
T
,
1
]
T
\hat{x}=[x^T,\,1]^T
x^=[xT,1]T ,显然:
w
^
⋅
x
^
=
w
⋅
x
+
b
\hat{w}\cdot\hat{x}=w\cdot x+b
w^⋅x^=w⋅x+b
Th 2.1(Novikoff) 设训练数据集
T
T
T 是线性可分的,则:
- 存在满足条件 ∣ ∣ 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,\,\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 ) ≥ γ 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)≥γ
- 令 R = max 1 ≤ i ≤ N ∣ ∣ x ^ i ∣ ∣ R=\max\limits_{1\leq i\leq N}||\hat{x}_{i}|| R=1≤i≤Nmax∣∣x^i∣∣ ,则感知机算法在训练数据集上的误分类次数 k k k 满足:
k ≤ ( R γ ) 2 k\leq \left(\frac{R}{\gamma}\right)^2 k≤(γR)2
证明:第一点较为简单。因为训练数据集线性可分,因此存在超平面
(
w
o
p
t
,
b
o
p
t
)
(w_{opt},\,b_{opt})
(wopt,bopt) 可将数据集完全正确分开。只要令:
γ
=
min
i
{
y
i
(
w
o
p
t
⋅
x
i
+
b
o
p
t
)
}
\gamma=\min_{i}\{ y_i(w_{opt}\cdot x_i+b_{opt}) \}
γ=imin{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(\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)≥γ
现在来看第二点,看起来还蛮神奇的。感知机算法从
w
^
0
=
0
\hat{w}_0=0
w^0=0 开始,记每一次迭代得到的参数为
w
^
k
\hat{w}_k
w^k 。第
k
k
k 个参数下,记
(
x
i
,
y
i
)
(x_i,\,y_i)
(xi,yi) 是被误分类的实例,则条件是:
y
i
(
w
^
k
−
1
⋅
x
^
i
)
=
y
i
(
w
k
−
1
⋅
x
i
+
b
k
−
1
)
≤
0
y_i(\hat{w}_{k-1}\cdot \hat{x}_i)=y_i(w_{k-1}\cdot x_i + b_{k-1})\leq 0
yi(w^k−1⋅x^i)=yi(wk−1⋅xi+bk−1)≤0
w
w
w 和
b
b
b 的更新是:
w
k
←
w
k
−
1
+
η
y
i
x
i
b
k
←
b
k
−
1
+
η
y
i
\begin{align} w_k \leftarrow&\, w_{k-1}+\eta y_ix_i \\ b_k \leftarrow&\, b_{k-1}+\eta y_i \end{align}
wk←bk←wk−1+ηyixibk−1+ηyi
即:
w
^
k
=
w
^
k
−
1
+
η
y
i
x
^
i
\hat{w}_k=\hat{w}_{k-1}+\eta y_i\hat{x}_i
w^k=w^k−1+ηyix^i
下面证明两个不等式:
① 由于我们是从
w
^
0
=
0
\hat{w}_0=0
w^0=0 开始的,因此迭代过程中的参数应当从小到大越来越接近
w
^
o
p
t
\hat{w}_{opt}
w^opt ,即
w
k
w_{k}
wk 与
w
o
p
t
w_{opt}
wopt 的内积越来越大:
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
+
η
γ
≥
w
^
k
−
2
⋅
w
^
o
p
t
+
2
η
γ
≥
⋯
≥
k
η
γ
\begin{align} \hat{w}_k\cdot \hat{w}_{opt} =&\, \hat{w}_{k-1}\cdot \hat{w}_{opt}+\eta y_i\hat{w}_{opt}\cdot\hat{x}_i \\ \geq &\, \hat{w}_{k-1}\cdot \hat{w}_{opt}+\eta \gamma \\ \geq &\, \hat{w}_{k-2}\cdot \hat{w}_{opt}+2\eta \gamma \\ \geq &\, \cdots \\ \geq &\, k\eta \gamma \end{align}
w^k⋅w^opt=≥≥≥≥w^k−1⋅w^opt+ηyiw^opt⋅x^iw^k−1⋅w^opt+ηγw^k−2⋅w^opt+2ηγ⋯kηγ
- 第二个大于等于是因为,我们已经假设了 γ \gamma γ 是最小的 y i w ^ o p t x ^ i y_i\hat{w}_{opt}\hat{x}_i yiw^optx^i ,因此任意 i i i 都有 y i w ^ o p t x ^ i ≥ γ y_i\hat{w}_{opt}\hat{x}_i\geq \gamma yiw^optx^i≥γ ;
即:
w
^
k
⋅
w
^
o
p
t
≥
k
η
γ
\hat{w}_k\cdot \hat{w}_{opt}\geq k\eta \gamma
w^k⋅w^opt≥kηγ
② 由于我们是从
w
^
0
=
0
\hat{w}_0=0
w^0=0 开始的,因此迭代过程中的参数更新过大时,就会被后续的迭代给“拉”回来:
∣
∣
w
^
k
∣
∣
2
=
∣
∣
w
^
k
−
1
∣
∣
2
+
2
η
y
i
w
^
k
−
1
⋅
x
^
i
+
η
2
∣
∣
x
^
i
∣
∣
2
≤
∣
∣
w
^
k
−
1
∣
∣
2
+
η
∣
∣
x
^
i
∣
∣
2
≤
∣
∣
w
^
k
−
1
∣
∣
2
+
η
R
2
≤
∣
∣
w
^
k
−
2
∣
∣
2
+
2
η
R
2
≤
⋯
≤
k
η
2
R
2
\begin{align} ||\hat{w}_k||^2=&\,||\hat{w}_{k-1}||^2+2\eta y_i\hat{w}_{k-1}\cdot \hat{x}_i+\eta^2||\hat{x}_i||^2 \\ \leq &\, ||\hat{w}_{k-1}||^2+\eta||\hat{x}_i||^2 \\ \leq &\, ||\hat{w}_{k-1}||^2+\eta R^2 \\ \leq &\, ||\hat{w}_{k-2}||^2+2\eta R^2 \\ \leq &\, \cdots \\ \leq &\, k\eta^2R^2 \end{align}
∣∣w^k∣∣2=≤≤≤≤≤∣∣w^k−1∣∣2+2ηyiw^k−1⋅x^i+η2∣∣x^i∣∣2∣∣w^k−1∣∣2+η∣∣x^i∣∣2∣∣w^k−1∣∣2+ηR2∣∣w^k−2∣∣2+2ηR2⋯kη2R2
- 第一个等号是因为:
∣ ∣ w ^ k ∣ ∣ 2 = w ^ k T w ^ k = ( w ^ k − 1 + η y i x ^ i ) T ( w ^ k − 1 + η y i x ^ i ) = ( w ^ k − 1 T + η y i x ^ i T ) ( w ^ k − 1 + η y i x ^ i ) = w ^ k − 1 T w ^ k − 1 + η y i ( w ^ k − 1 T x ^ i + x ^ i T w ^ k − 1 ) + η 2 y i 2 x ^ i T x ^ i = ∣ ∣ w ^ k − 1 ∣ ∣ 2 + 2 η y i w ^ k − 1 ⋅ x ^ i + η 2 ∣ ∣ x ^ i ∣ ∣ 2 (有 y i 2 = 1 ) \begin{align} ||\hat{w}_k||^2=&\,\hat{w}_k^T\hat{w}_k \\ =&\,(\hat{w}_{k-1}+\eta y_i\hat{x}_i)^T(\hat{w}_{k-1}+\eta y_i\hat{x}_i) \\ =&\,(\hat{w}_{k-1}^T+\eta y_i\hat{x}_i^T)(\hat{w}_{k-1}+\eta y_i\hat{x}_i) \\ =&\,\hat{w}_{k-1}^T\hat{w}_{k-1}+\eta y_i(\hat{w}_{k-1}^T\hat{x}_i+\hat{x}_i^T\hat{w}_{k-1})+\eta^2y_i^2\hat{x}_i^T\hat{x}_i \\ =&\,||\hat{w}_{k-1}||^2+2\eta y_i\hat{w}_{k-1}\cdot \hat{x}_i+\eta^2||\hat{x}_i||^2 \quad\text{(有$\,y_i^2=1$)} \end{align} ∣∣w^k∣∣2=====w^kTw^k(w^k−1+ηyix^i)T(w^k−1+ηyix^i)(w^k−1T+ηyix^iT)(w^k−1+ηyix^i)w^k−1Tw^k−1+ηyi(w^k−1Tx^i+x^iTw^k−1)+η2yi2x^iTx^i∣∣w^k−1∣∣2+2ηyiw^k−1⋅x^i+η2∣∣x^i∣∣2(有yi2=1)
- 第二个小于等于是因为我们假设 ( x i , y i ) (x_i,\,y_i) (xi,yi) 是被误分类的实例,因此 y i w ^ k − 1 ⋅ x ^ i < 0 y_i\hat{w}_{k-1}\cdot \hat{x}_i<0 yiw^k−1⋅x^i<0 ;
- 第三个小于等于是因为我们假设 R R R 是最大的特征向量的模,因此对于任意 i i i 都有 R ≥ ∣ ∣ x ^ i ∣ ∣ R \geq ||\hat{x}_i|| R≥∣∣x^i∣∣ ;
即:
∣
∣
w
^
k
∣
∣
2
≤
k
η
2
R
2
||\hat{w}_k||^2\leq k\eta^2R^2
∣∣w^k∣∣2≤kη2R2
综合不等式 ① 和 ② 得:
k
η
γ
≤
w
^
k
⋅
w
^
o
p
t
≤
∣
∣
w
^
k
∣
∣
∣
∣
w
^
o
p
t
∣
∣
≤
k
η
R
⇒
k
2
γ
2
≤
k
R
2
\begin{array}{c} k\eta \gamma \leq \hat{w}_k\cdot \hat{w}_{opt} \leq ||\hat{w}_{k}||\,||\hat{w}_{opt}|| \leq \sqrt{k}\eta R \\ \Rightarrow k^2\gamma^2 \leq kR^2 \end{array}
kηγ≤w^k⋅w^opt≤∣∣w^k∣∣∣∣w^opt∣∣≤kηR⇒k2γ2≤kR2
- 第二个小于等于是柯西不等式, x ⋅ y = ∣ ∣ x ∣ ∣ ∣ ∣ y ∣ ∣ cos θ ≤ ∣ ∣ x ∣ ∣ ∣ ∣ y ∣ ∣ x\cdot y=||x||\,||y||\,\cos\theta\leq ||x||\,||y|| x⋅y=∣∣x∣∣∣∣y∣∣cosθ≤∣∣x∣∣∣∣y∣∣ ,其中 θ \theta θ 是两个向量的夹角。
于是:
k
≤
(
R
γ
)
2
k\leq \left(\frac{R}{\gamma}\right)^2
k≤(γR)2
该定理表明,误分类次数
k
k
k 是有上界的,即训练集线性可分时,感知机学习算法原始形式迭代是收敛的。