python学智能算法(三十六)|SVM-拉格朗日函数求解(中)-软边界
【1】引言
前序学习进程中,已经对常规SVM拉格朗日方程求解展开了探索。
但面对软边界SVM拉格朗日方程,对求解提出了新的要求。
【2】方程求解
软边界拉格朗日方程表达式为:
L(w,b,ξ,α,μ)=12∣∣w∣∣2+C∑i=1nξi−∑i=1nαi[yi(w⋅xi+b)−1+ξi]−∑i=1nμiξiL(w,b,\xi,\alpha,\mu)=\frac{1}{2}||w||^2+C\sum_{i=1}^{n}{\xi_{i}}-\sum_{i=1}^{n}\alpha_{i}[y_{i}(w\cdot x_{i}+b)-1+\xi_{i}]-\sum_{i=1}^{n}\mu_{i}\xi_{i}L(w,b,ξ,α,μ)=21∣∣w∣∣2+Ci=1∑nξi−i=1∑nαi[yi(w⋅xi+b)−1+ξi]−i=1∑nμiξi
【2.1】对www求偏导数
令L对wL对wL对w的偏导数为0:
∂L∂w=w−∑i=1nαiyixi=0\frac{\partial L}{\partial w}=w-\sum_{i=1}^{n}\alpha_{i}y_{i}x_{i}=0∂w∂L=w−i=1∑nαiyixi=0
获得:
w=∑i=1nαiyixiw=\sum_{i=1}^{n}\alpha_{i}y_{i}x_{i}w=i=1∑nαiyixi
可见,超平面的法向量www可以由样本xix_{i}xi,标签yiy_{i}yi和乘子αi\alpha_{i}αi线性表示。
【2.2】对bbb求偏导数
令L对bL对bL对b的偏导数为0:
∂L∂b=−∑i=1nαiyi=0\frac{\partial L}{\partial b}=-\sum_{i=1}^{n}\alpha_{i}y_{i}=0∂b∂L=−i=1∑nαiyi=0
获得:
∑i=1nαiyi=0\sum_{i=1}^{n}\alpha_{i}y_{i}=0i=1∑nαiyi=0
可见,标签yiy_{i}yi和乘子αi\alpha_{i}αi的加权和为0。
【2.3】对ξi\xi_{i}ξi求偏导数
令L对ξiL对\xi_{i}L对ξi的偏导数为0:
∂L∂ξi=C−αi−μi=0\frac{\partial L}{\partial \xi_{i}}=C-\alpha_{i}-\mu_{i}=0∂ξi∂L=C−αi−μi=0
获得:
μi=C−αi\mu_{i}=C-\alpha_{i}μi=C−αi
可见,乘子μi\mu_{i}μi可以由CCC和αi\alpha_{i}αi表示,因为前序已经规定μi≥0\mu_{i}\geq0μi≥0和αi≥0\alpha_{i}\geq0αi≥0,所以有:
0≤αi≤C0\leq\alpha_{i}\leq C0≤αi≤C
【2.4】将偏导数结果代入原方程
首先是www项:
12∣∣w∣∣2=12(∑i=1nαiyixi)(∑j=1nαjyjxj)=12∑i,j=1nαiαjyiyj(xi⋅xj)\frac{1}{2}||w||^2=\frac{1}{2}(\sum_{i=1}^{n}{\alpha_{i}y_{i}x_{i}})(\sum_{j=1}^{n}{\alpha_{j}y_{j}x_{j}})\\= \frac{1}{2}\sum_{i,j=1}^{n}\alpha_{i}\alpha_{j}y_{i}y_{j}(x_{i}\cdot x_{j})21∣∣w∣∣2=21(i=1∑nαiyixi)(j=1∑nαjyjxj)=21i,j=1∑nαiαjyiyj(xi⋅xj)
然后是ξi\xi_{i}ξi项:
C∑ξi−∑αiξi−∑μiξi=C∑ξi−∑αiξi−∑(C−αi)ξi=0C\sum{\xi_{i}}-\sum\alpha_{i}\xi_{i}-\sum\mu_{i}\xi_{i}\\=C\sum{\xi_{i}}-\sum\alpha_{i}\xi_{i}-\sum(C-\alpha_{i})\xi_{i} \\=0C∑ξi−∑αiξi−∑μiξi=C∑ξi−∑αiξi−∑(C−αi)ξi=0
整理后获得的方程为:
L(w,b,ξ,α,μ)=∑αi−12∑i,j=1nαiαjyiyj(xi⋅xj)L(w,b,\xi,\alpha,\mu)=\sum{\alpha_{i}}-\frac{1}{2}\sum_{i,j=1}^{n}\alpha_{i}\alpha_{j}y_{i}y_{j}(x_{i}\cdot x_{j})L(w,b,ξ,α,μ)=∑αi−21i,j=1∑nαiαjyiyj(xi⋅xj)
【3】总结
学习了SVM软边界拉格朗日方程求解的基本方法。