当前位置: 首页 > news >正文

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∣∣w2+Ci=1nξii=1nαi[yi(wxi+b)1+ξi]i=1nμiξi

【2.1】对www求偏导数

L对wL对wLw的偏导数为0:
∂L∂w=w−∑i=1nαiyixi=0\frac{\partial L}{\partial w}=w-\sum_{i=1}^{n}\alpha_{i}y_{i}x_{i}=0wL=wi=1nαiyixi=0
获得:
w=∑i=1nαiyixiw=\sum_{i=1}^{n}\alpha_{i}y_{i}x_{i}w=i=1nαiyixi
可见,超平面的法向量www可以由样本xix_{i}xi,标签yiy_{i}yi和乘子αi\alpha_{i}αi线性表示。

【2.2】对bbb求偏导数

L对bL对bLb的偏导数为0:
∂L∂b=−∑i=1nαiyi=0\frac{\partial L}{\partial b}=-\sum_{i=1}^{n}\alpha_{i}y_{i}=0bL=i=1nαiyi=0
获得:
∑i=1nαiyi=0\sum_{i=1}^{n}\alpha_{i}y_{i}=0i=1nα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ξiL=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μi0αi≥0\alpha_{i}\geq0αi0,所以有:
0≤αi≤C0\leq\alpha_{i}\leq C0αiC

【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∣∣w2=21(i=1nαiyixi)(j=1nαjyjxj)=21i,j=1nαiαjyiyj(xixj)
然后是ξ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,ξ,α,μ)=αi21i,j=1nαiαjyiyj(xixj)

【3】总结

学习了SVM软边界拉格朗日方程求解的基本方法。

http://www.lryc.cn/news/615241.html

相关文章:

  • 【Mac】MLX:Lora微调工作流
  • 学习Java的Day28
  • windows10 ubuntu 24.04 双系统 安装教程
  • ✨ 基于 JsonSerialize 实现接口返回数据的智能枚举转换(优雅告别前端硬编码!)
  • 【ref、toRef、toRefs、reactive】ai
  • 矩阵的条件数 向量的条件数
  • Ubuntu22.04 安装vitis2023.2 卡在“Generating installed device list“.
  • Day 36: 复习
  • 什么情况下需要JVM调优?
  • 如何更改win11自带录音机所录制文件的存储路径
  • 进阶向:Python编写网页爬虫抓取数据
  • synchronized和RentrantLock用哪个?
  • leetcode 49. 字母异位词分组 - java
  • 视图是什么?有什么用?什么时候用?MySQL中的视图
  • 深入理解强化学习:近端策略优化(PPO)算法详解
  • 阿里云 ECS 怎么用 nginx 部署80端口多个网站
  • 组件通信的方式
  • Docker容器部署Tomcat线上商城
  • Leetcode——556. 下一个更大元素 III
  • 八、《DaaS(设备即服务):企业轻资产化新路径》--从97.4%首期投入削减到AI算力高效迭代的范式革命
  • Spring 框架中提供Aware接口,实现感知容器对象
  • spring.config.import 不存在
  • “高大上“的SpringCloud?(微服务体系入门)
  • ELK常见的问题
  • 智能机票助手-接入Ollama本地模型-Spring-AI-Alibaba
  • 在ubuntu服务器下安装cuda和cudnn(笔记)
  • 揭秘MyBatis核心类MappedStatement
  • 多模态RAG赛题实战--Datawhale AI夏令营
  • 如何分析需求的可行性
  • 生产环境某业务服务JVM调优总结