python学智能算法(三十六)|SVM-拉格朗日函数求解(中)-软边界

【1】引言

前序学习进程中,已经对常规SVM拉格朗日方程求解展开了探索。

但面对软边界SVM拉格朗日方程,对求解提出了新的要求。

【2】方程求解

软边界拉格朗日方程表达式为:
L ( w , b , ξ , α , μ ) = 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 n ξ i − ∑ i = 1 n α i y i ( w ⋅ x i + b ) − 1 + ξ i − ∑ i = 1 n μ i ξ i L(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αiyi(w⋅xi+b)−1+ξi−i=1∑nμiξi

【2.1】对 w w w求偏导数

令 L 对 w L对w L对w的偏导数为0:
∂ L ∂ w = w − ∑ i = 1 n α i y i x i = 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 = 1 n α i y i x i w=\sum_{i=1}^{n}\alpha_{i}y_{i}x_{i} w=i=1∑nαiyixi

可见,超平面的法向量 w w w可以由样本 x i x_{i} xi,标签 y i y_{i} yi和乘子 α i \alpha_{i} αi线性表示。

【2.2】对 b b b求偏导数

令 L 对 b L对b L对b的偏导数为0:
∂ L ∂ b = − ∑ i = 1 n α i y i = 0 \frac{\partial L}{\partial b}=-\sum_{i=1}^{n}\alpha_{i}y_{i}=0 ∂b∂L=−i=1∑nαiyi=0

获得:
∑ i = 1 n α i y i = 0 \sum_{i=1}^{n}\alpha_{i}y_{i}=0 i=1∑nαiyi=0

可见,标签 y i y_{i} yi和乘子 α i \alpha_{i} αi的加权和为0。

【2.3】对 ξ i \xi_{i} ξi求偏导数

令 L 对 ξ i L对\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可以由 C C C和 α i \alpha_{i} αi表示,因为前序已经规定 μ i ≥ 0 \mu_{i}\geq0 μi≥0和 α i ≥ 0 \alpha_{i}\geq0 αi≥0,所以有:
0 ≤ α i ≤ C 0\leq\alpha_{i}\leq C 0≤αi≤C

【2.4】将偏导数结果代入原方程

首先是 w w w项:
1 2 ∣ ∣ w ∣ ∣ 2 = 1 2 ( ∑ i = 1 n α i y i x i ) ( ∑ j = 1 n α j y j x j ) = 1 2 ∑ i , j = 1 n α i α j y i y j ( x i ⋅ x j ) \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 = 0 C\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} \\=0 C∑ξi−∑αiξi−∑μiξi=C∑ξi−∑αiξi−∑(C−αi)ξi=0

整理后获得的方程为:
L ( w , b , ξ , α , μ ) = ∑ α i − 1 2 ∑ i , j = 1 n α i α j y i y j ( x i ⋅ x j ) 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软边界拉格朗日方程求解的基本方法。

相关推荐
ZC跨境爬虫1 天前
LeetCode 119. 杨辉三角 II(原地更新优化详解 + Java Python 实现)
java·python·leetcode
ZJU_统一阿萨姆1 天前
【推理优化进阶】Hopper_Blackwell 微架构:从指令、流水线到真实性能上限
开发语言·人工智能·语言模型·架构·开源
比奇堡裤头村1 天前
统计学习方法——支持向量机
算法·支持向量机·学习方法
东坡肘子1 天前
越来越慢的 App Review,拦住了谁? -- 肘子的 Swift 周报 #149
人工智能·swiftui·swift
呆呆敲代码的小Y1 天前
Magic Resume 实战:开源 AI 简历编辑器(多模型 + 本地存储)
人工智能·开源·编辑器·magic resume·简历编辑器
jay神1 天前
深度学习的优化器应该怎么选?
人工智能·python·深度学习·毕业设计·课程设计
程序喵大人1 天前
【C++进阶】STL算法与函数对象 - 09 函数对象保存状态并复用规则
开发语言·c++·算法·stl·函数对象
Hello server1 天前
DeepSeek Harness 深度体验:把「万物皆插件」做到极致的 AI 编程 Agent
人工智能
致Great1 天前
DeepSeek Harness插件开发实战教程:我让它自己写了一个 arXiv 搜索插件
算法