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

python学智能算法(二十九)|SVM-拉格朗日函数求解中-KKT条件

引言

前序学习进程中,对拉格朗日函数执行了初步求导,并获得了简化后的拉格朗日函数极值计算式:
L(w,b,α)=∑i=1mαi−12∑i,j=1mαiαjyiyjxiTxjL(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=1mαi21i,j=1mαiαjyiyjxiTxj
这个计算式遵循的约束是:
∑i=1mαiyi=0\sum_{i=1}^{m}\alpha_{i}y_{i}=0i=1mαiyi=0
上述结果其实还有一个专用名称:乌尔夫对偶。
不过我们就不对这个名称进行细说,因为还有大事要办:理解KKT条件。

KKT条件

对于寻找最佳分割超平面的拉格朗日函数: L(w,b,α)=12∥w∥2−∑i=1mαi[yi(w⋅xi+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,α)=21w2i=1mαi[yi(wxi+b1)]
首先我们证明它是个凸优化问题:
凸优化问题满足两个条件,第一个是目标函数为凸函数,第二个是约束条件是凸集。
凸函数,最经典的形式为抛物线函数y=x2y=x^2y=x2,满足函数图像上任取两个点后连线,这两个点之间的所有函数取值都在这条线下方;
凸集,函数的取值范围内,取任意两个点连线后,这条线上的所有点依然在函数的取值范围内。
然后,回到拉格朗日函数,第一部分12∥w∥2\frac{1}{2}{\left\|w\right\|}^221w2是典型的抛物线函数,是凸函数;
第二部分yi(w⋅xi+b−1)=w⋅(yixi)+byi−yiy_{i}(w\cdot x_{i}+b-1)=w\cdot(y_{i}x_{i})+by_{i}-y{i}yi(wxi+b1)=w(yixi)+byiyi,因为变量是wwwbbb,所以实际看下来这是一条关于wwwbbb的线性函数(二维的时候理解为就是一根直线),线性函数既是凸函数也是非凸函数,而这一部分属于约束条件,所以约束条件是凸集。综合上述分析可知寻找最佳分割超平面的拉格朗日函数是个凸优化函数。
解决凸优化函数是在求解凸优化问题,找凸优化问题的极值要用到KKT条件。
平稳性条件:拉格朗日函数关于原始变量(w,b)(w,b)(w,b)的梯度为0,
∂L∂w==w−∑i=1mαiyixi=0\frac{\partial L}{\partial w}==w-\sum_{i=1}^{m}\alpha_{i}y_{i}x_{i}=0wL==wi=1mαiyixi=0
∂L∂b=−∑i=1mαiyi=0\frac{\partial L}{\partial b}=-\sum_{i=1}^{m}\alpha_{i}y_{i}=0bL=i=1mαiyi=0互补松弛条件:对于每个样本,拉格朗日乘子与约束的松弛量乘积为0,
αi[yi(w⋅xi+b)−1]=0\alpha_{i}[y_{i}(w\cdot x_{i}+b)-1]=0αi[yi(wxi+b)1]=0这表明,
αi=0\alpha_{i}=0αi=0,样本对超平面无影响;

αi>0\alpha_{i}>0αi>0,样本必须满足yi(w⋅xi+b)=1y_{i}(w\cdot x_{i}+b)=1yi(wxi+b)=1,样板刚好在超平面上;
原问题可行条件,样本必须满足分类约束:
yi(w⋅xi+b≥1)(i=1,2,...,m)y_{i}(w\cdot x_{i}+b≥1)(i=1,2,...,m)yi(wxi+b1)(i=1,2,...,m)
对偶可行条件,拉格朗日橙子非负,
αi≥0(i=1,2,...,m)\alpha_{i}≥0(i=1,2,...,m)αi0(i=1,2,...,m)
KKT条件是判断拉格朗日函数存在最优解的核心准则,最优解一定满足KKT条件,满足KKT条件一定是最优解。

总结

初步学习了KKT条件。

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

相关文章:

  • 华为云中,列表中的镜像无法删除可能由多种原因导致
  • MybatisPlus操作方法详细总结
  • CNN实战案例:从图像识别到医疗诊断
  • 19-动态路由
  • QEMU RISCV TCG 详解二 -- RISCV CPU Representation
  • Axios 响应拦截器
  • AI 搜索引擎:让信息“长脑子”而不是“堆数据”
  • 【Spring Cloud Gateway 实战系列】基础篇:路由、断言、过滤器、负载均衡深度解析
  • 【服务器】 MCTP Over PCIe 的内容、用途、工作原理及硬件设计注意事项
  • 基于php的校园招聘平台
  • SpringCloudGateWay 使用nacos网关自动负载均衡
  • 二分查找-162.寻找峰值-力扣(LeetCode)
  • 思路探索:当大型语言模型遇见数据分析的现实挑战
  • 统一服务入口——Spring Cloud Gateway
  • 高亮匹配关键词样式highLightMatchString、replaceHTMLChar
  • Effective Python 第15条 不要过分依赖给字典添加条目时所用的顺序
  • CodeBuddy IDE实战:用AI全栈能力快速搭建课程表网页
  • JavaScript HTTP 请求:从老古董到新潮流
  • 在线深凹槽深检测方法都有哪些 —— 激光频率梳 3D 轮廓检测
  • 如何在Pico等Android头显中实现无人机低延迟RTMP全景巡检画面播放
  • 2025年7月份实时最新获取地图边界数据方法,省市区县街道多级联动【文末附实时geoJson数据下载】
  • 从零开始学习Dify-Excel数据可视化(四)
  • 无人机光伏巡检误检率↓78%!陌讯多模态融合算法实战解析
  • 【Android】用 ViewPager2 + Fragment + TabLayout 实现标签页切换
  • Android用户鉴权实现方案深度分析
  • react18更新哪些东西
  • Nginx和Apache的区别
  • Apache PDFBox深入实践
  • Apache JMeter 使用记录踩坑
  • MCP客户端架构与实施