【1】引言
前序学习进程中,我们已经掌握了支持向量机算法中,为寻找最佳分割超平面,如何用向量表达超平面方程,如何为超平面方程建立拉格朗日函数。
本篇文章的学习目标是:求解SVM拉格朗日函数。
【2】求解方法
【2.1】待求解函数
支持量机算法的拉格朗日函数为:
L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 m α i [ y i ( w ⋅ x i + b − 1 ) ] L(w,b,\alpha)=\frac{1}{2}{\left\|w\right\|}^2-\sum_{i=1}^{m}\alpha_{i}[y_{i}(w\cdot x_{i}+b-1)] L(w,b,α)=21∥w∥2−i=1∑mαi[yi(w⋅xi+b−1)]
【2.2】函数求导
按照一贯的求解思路,先对拉格朗日函数进行求导:
【2.2.1】对w求导
∂ L ∂ w = ∂ ∂ w [ 1 2 w T w − ∑ i = 1 m α i y i w T x i ] \frac{\partial L}{\partial w}=\frac{\partial }{\partial w}[{\frac{1}{2}w^Tw}-\sum_{i=1}^{m}\alpha_{i}y_{i}w^Tx_{i}] ∂w∂L=∂w∂[21wTw−i=1∑mαiyiwTxi]
细心观察的朋友肯定发现上式出现了权重矩阵w的转置 w T w^T wT,这是因为:
在之前的所有公式的写法中,我对w和x/的矩阵乘法都沿用了最为稳妥的写法 w ⋅ x w\cdot x w⋅x。在机器学习领域,一般默认的向量形式为列向量,所以 w w w和 x i x_{i} xi可能都是列向量,实际做矩阵乘法的时候,需要转置其中一个,实际的超平面式简写后为
w T x + b = 0 w^Tx+b=0 wTx+b=0或者 w x T + b = 0 wx^T+b=0 wxT+b=0这两种写法完全等效。
在求导的时候,必须选择上述写法中的任何一个,这里选择了 w T x i + b = 0 w^Tx_{i}+b=0 wTxi+b=0,是为了和 1 2 ∥ w ∥ 2 = 1 2 w T w \frac{1}{2}{\left\|w\right\|}^2=\frac{1}{2}w^Tw 21∥w∥2=21wTw保持一致。
继续求解导数:
∂ L ∂ w = ∂ ∂ w [ 1 2 w T w − ∑ i = 1 m α i y i w T x i ] = w − ∑ i = 1 m α i y i x i \frac{\partial L}{\partial w}=\frac{\partial }{\partial w}[{\frac{1}{2}w^Tw}-\sum_{i=1}^{m}\alpha_{i}y_{i}w^Tx_{i}]=w-\sum_{i=1}^{m}\alpha_{i}y_{i}x_{i} ∂w∂L=∂w∂[21wTw−i=1∑mαiyiwTxi]=w−i=1∑mαiyixi
【2.2.2】对b求导
∂ L ∂ b = − ∑ i = 1 m α i y i \frac{\partial L}{\partial b}=-\sum_{i=1}^{m}\alpha_{i}y_{i} ∂b∂L=−i=1∑mαiyi
【2.3】极值代入
令前两步的导数为0,首先:
∂ L ∂ w = w − ∑ i = 1 m α i y i x i = 0 \frac{\partial L}{\partial w}=w-\sum_{i=1}^{m}\alpha_{i}y_{i}x_{i}=0 ∂w∂L=w−i=1∑mαiyixi=0可得:
w = ∑ i = 1 m α i y i x i w=\sum_{i=1}^{m}\alpha_{i}y_{i}x_{i} w=i=1∑mαiyixi
然后:
∂ L ∂ b = − ∑ i = 1 m α i y i = 0 \frac{\partial L}{\partial b}=-\sum_{i=1}^{m}\alpha_{i}y_{i}=0 ∂b∂L=−i=1∑mαiyi=0
可得:
∑ i = 1 m α i y i = 0 \sum_{i=1}^{m}\alpha_{i}y_{i}=0 i=1∑mαiyi=0将上数值代入拉格朗日函数有:
第一项:
1 2 ∥ w ∥ 2 = 1 2 w T w = 1 2 ( ∑ i = 1 m α i y i x i ) T ∑ i = 1 m α j y j x j = 1 2 ∑ i , j = 1 m α i α j y i y j x i T x j \frac{1}{2}{\left\|w\right\|}^2=\frac{1}{2}w^Tw=\frac{1}{2}({\sum_{i=1}^{m}\alpha_{i}y_{i}x_{i})^T}\sum_{i=1}^{m}\alpha_{j}y_{j}x_{j}=\frac{1}{2}\sum_{i,j=1}^{m}\alpha_{i}\alpha_{j}y_{i}y_{j}x_{i}^Tx_{j} 21∥w∥2=21wTw=21(i=1∑mαiyixi)Ti=1∑mαjyjxj=21i,j=1∑mαiαjyiyjxiTxj
第二项:
∑ i = 1 m α i y i w T x i = ∑ i = 1 m α i y i ( ∑ j = 1 m α j y j x i ) T x i = ∑ i = 1 m α i y i ( ∑ j = 1 m α j y j x j T ) x i = ∑ i , j = 1 m α i α j y i y j x j T x i \begin{align*}\sum_{i=1}^{m}\alpha_{i}y_{i}w^Tx_{i}=\\ \sum_{i=1}^{m}\alpha_{i}y_{i}(\sum_{j=1}^{m}\alpha_{j}y_{j}x_{i})^Tx_{i}=\sum_{i=1}^{m}\alpha_{i}y_{i}(\sum_{j=1}^{m}\alpha_{j}y_{j}x_{j}^T)x_{i}\\=\sum_{i,j=1}^{m}\alpha_{i}\alpha_{j}y_{i}y_{j}x_{j}^Tx_{i}\end{align*} i=1∑mαiyiwTxi=i=1∑mαiyi(j=1∑mαjyjxi)Txi=i=1∑mαiyi(j=1∑mαjyjxjT)xi=i,j=1∑mαiαjyiyjxjTxi
第三项:
∑ i = 1 m α i y i b = b ∑ i = 1 m α i y i = 0 \sum_{i=1}^{m}\alpha_{i}y_{i}b=b\sum_{i=1}^{m}\alpha_{i}y_{i}=0 i=1∑mαiyib=bi=1∑mαiyi=0
第四项:
∑ i = 1 m α i ⋅ 1 = ∑ i = 1 m α i \sum_{i=1}^{m}\alpha_{i}\cdot 1=\sum_{i=1}^{m}\alpha_{i} i=1∑mαi⋅1=i=1∑mαi
将上述四项叠加后,得到:
L ( w , b , α ) = ∑ i = 1 m α i − 1 2 ∑ i , j = 1 m α i α j y i y j x i T x j L(w,b,\alpha)=\sum_{i=1}^{m}\alpha_{i}-\frac{1}{2}\sum_{i,j=1}^{m}\alpha_{i}\alpha_{j}y_{i}y_{j}x_{i}^Tx_{j} L(w,b,α)=i=1∑mαi−21i,j=1∑mαiαjyiyjxiTxj
【3】总结
对支持向量机算法的拉格朗日函数按照参数求导后,获得了新的表达式。