读李航《统计学习方法》的一些笔记,感知机学习算法的推导过程有一些细节想记录一下。
我们这里只讨论感知机学习算法的原始形式,这个问题的对偶形式还是容易理解的。
给定一个训练数据集:
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 ← 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
当数据集不可分时,显然上述算法会震荡。现在证明,对于线性可分数据集,感知机学习算法原始形式收敛,即经过有限次迭代就可以得到一个将数据集完全正确划分的分离超平面及感知机模型。
为了数学推导方面,我们将偏置 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 是线性可分的,则:
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)≥γ
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ηγ
即:
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)
即:
∣ ∣ 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
于是:
k ≤ ( R γ ) 2 k\leq \left(\frac{R}{\gamma}\right)^2 k≤(γR)2
该定理表明,误分类次数 k k k 是有上界的,即训练集线性可分时,感知机学习算法原始形式迭代是收敛的。