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

python学智能算法(二十五)|SVM-拉格朗日乘数法理解

引言

前序学习进程中,已经对最佳超平面的求解有了一定认识。
刚好在此梳理一下:

函数距离

首先有函数距离F,也可以称为函数间隔F:
F=min⁡i=1...myi(w⋅xi+b)F= \min_{i=1...m}y_{i}(w \cdot x_{i}+b)F=i=1...mminyi(wxi+b)

几何距离

然后有几何距离δ,也可以称为几何间隔δ:
δ=min⁡i=1...myi(w∥w∥⋅xi+b∥w∥)\delta=\min_{i=1...m}y_{i}(\frac{w}{\left\|w\right\|} \cdot x_{i}+\frac{b}{\left\|w\right\|}) δ=i=1...mminyi(wwxi+wb)
很显然,几何距离δ和函数距离F之间只相差一个量||w||:
δ=F∥w∥\delta=\frac{F}{\left\|w\right\|}δ=wF然后我们再次回忆最佳超平面的寻找过程:

第一步,一个特定超平面的周围会有很多点,通过计算后会获得不同的几何距离,取出这些距离中的最小值;
第二步,遍历所有可能的超平面,重复步骤一;
第三步:在前两步的基础上,在取出的所有几何距离中,选取最大值对应的超平面为最优超平面。

这是一个稍微有点绕的过程,首先是每个备选超平面都选取最小几何距离,然后是在所有最小几何距离中挑出最大值,取这个最大的几何距离对应的超平面为最佳超平面。可以总结为:在最小值集合中挑选最大值。
为了寻找这个最大值,我们联想到同比率变换权重矩阵w和偏置量b不会改变几何距离,因此有一种巧妙的解法:
通过同比率调整权重矩阵w和偏置量b,使得函数距离F=1,这个时候最佳超平面对应的最大几何距离δmax满足:
δmax=max⁡i=1...m1∥w∥\delta_{max}=\max_{i=1...m}\frac{1}{\left\|w\right\|}δmax=i=1...mmaxw1
为求解这个最佳超平面对应的最大几何距离,一种更好理解的思路被提出来,把寻找过程中的除法转化为了乘法,定义距离函数f:
f=mini=1...m12∥w∥2f=min_{i=1...m}\frac{1}{2}{\left\|w\right\|}^2f=mini=1...m21w2这篇文章的学习任务,就是梳理距离函数f的最佳解法:拉格朗日乘数法。

拉格朗日乘数法

拉格朗日乘数法的构造需要两个前提条件,一个是目标函数,比如此处的距离函数f,另一个是约束函数,可以定义为g。
关于f和g,展开如下讨论:
f和g在任意位置的梯度都指向它们增长最快的方向,和它们本身的图像垂直;
对于目标函数f,它取特定值的时候,结果可能绘制出一条闭合的等高线,也可能是孤立的点。对于孤立的点,法向量是(0,0);对于等高线,可以记录任意一点的梯度为▽f\bigtriangledown ff
目标函数f和约束函数g可能有很多交点,但当目标函数取极值的时候,一定会满足条件:▽f=λ▽g\bigtriangledown f=\lambda \bigtriangledown gf=λg
为解释这个梯度平行的条件,我们这样想:
将f的梯度▽f\bigtriangledown ff分解到互相垂直的▽g\bigtriangledown gg和g的切线方向vvv上,此时沿着vvv的方向只要还有f的梯度,就表明f的取值还可以继续改变;
▽f\bigtriangledown ffvvv上没有任何分量时,f只能在垂直g的方向上增长,也就是沿着约束函数g再也无法改变f。
当然,f的取值也无法脱离g的约束,所以▽f\bigtriangledown ffvvv上没有任何分量时,f就取到了极值,此时f的法向量垂直于g,g的法向量自然也垂直于g,这两个法向量平行,所以一定有:
▽f=λ▽g\bigtriangledown f=\lambda\bigtriangledown gf=λg

当f为孤立点时,λ=0,上式依然满足。
为辅助理解,求助了deepseek,它提供了一张图,放在这里和大家共享,也可复制链接直达原图:https://upload.wikimedia.org/wikipedia/commons/thumb/f/fa/Lagrange_multiplier.png/300px-Lagrange_multiplier.png等高线图和约束

总结

学习了一下拉格朗日乘数法的基本概念。

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

相关文章:

  • 车载诊断架构 --- OEM对于DTC相关参数得定义
  • 开疆智能Profinet转ModbusTCP网关连接康耐视InSight相机案例
  • VUE2 学习笔记1
  • python爬虫之获取渲染代码
  • 【机器学习深度学习】为什么要将模型转换为 GGUF 格式?
  • 计算机网络:(十一)多协议标记交换 MPLS
  • 结合python面向对象编程,阐述面向对象三大特征
  • 软件设计师之开发模型
  • HTML5中的自定义属性
  • 从Prompt到结构建模:如何以数据驱动重构日本语言学校体系?以国际日本语学院为例
  • World of Warcraft [CLASSIC] The Ruby Sanctum [RS] Halion
  • 在 .NET Core 中创建 Web Socket API
  • Kotlin泛型约束
  • NLP中情感分析与观念分析、价值判断、意图识别的区别与联系,以及四者在实际应用中的协同
  • RabbitMQ—事务与消息分发
  • espidf启用vTaskList方法
  • 使用MATLAB探索圆周率π的奇妙计算之旅
  • day25 力扣90.子集II 力扣46.全排列 力扣47.全排列 II
  • bws-rs:Rust 编写的 S3 协议网关框架,支持灵活后端接入
  • VBA 运用LISTBOX插件,选择多个选项,并将选中的选项回车录入当前选中的单元格
  • 关于NUC+雷达+倍福组网交换机是否完全足够的问题(是否需要一个路由器)
  • 软考 系统架构设计师系列知识点之杂项集萃(113)
  • WPF为启动界面(Splash Screen)添加背景音乐
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - snowNLP库实现中文情感分析
  • 标准文件和系统文件I/O
  • 车载刷写框架 --- 关于私有节点刷写失败未报引起的反思
  • 《命令行参数与环境变量:从使用到原理的全方位解析》
  • 移除debian升级后没用的垃圾
  • laravel RedisException: Connection refused优雅草PMS项目管理系统报错解决-以及Redis 详细指南-优雅草卓伊凡
  • 2025第15届上海国际生物发酵展:聚焦合成生物与绿色制造,共启生物经济新时代