当前位置: 首页 > 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.dtcms.com/a/287682.html

相关文章:

  • 7.19 Java基础 | 异常
  • OpenCV 官翻 4 - 相机标定与三维重建
  • [spring6: AspectJAdvisorFactory AspectJProxyFactory]-源码解析
  • 基于 OpenCV 的 Haar 级联人脸检测模型对比研究 —— 以典型应用场景验证为例 毕业论文——仙盟创梦IDE
  • 智能光电检测:YOLO+OpenCV联合算法工程实践
  • Spring Boot入门
  • NJU 凸优化导论(9) 对偶(II)KKT条件+变形重构
  • 从Prompt到结构建模:如何以数据驱动重构日本语言学校体系?以国际日本语学院为例
  • Java行为型模式---访问者模式
  • 自动驾驶仿真领域常见开源工具
  • Linux 内存管理(2):了解内存回收机制
  • Linux 技术概述与学习指南
  • 微信小程序——世界天气小助手
  • AWS Partner: Sales Accreditation (Business)
  • [MySQL基础3] 数据控制语言DCL和MySQL中的常用函数
  • LVS(Linux virtual server)-实现四层负载均衡
  • MyBatis动态SQL实战:告别硬编码,拥抱智能SQL生成
  • Python高级数据类型:集合(Set)
  • 【深度学习笔记 Ⅱ】5 梯度消失和梯度爆炸
  • 猎板:在 5G 与 AI 时代,印制线路板如何满足高性能需求
  • GeoPandas 城市规划:Python 空间数据初学者指南
  • gitee 分支切换
  • 【kafka4源码学习系列】kafka4总体架构介绍
  • Gerrit workflow
  • 3-大语言模型—理论基础:生成式预训练语言模型GPT(代码“活起来”)
  • 2、Redis持久化详解
  • 【iOS】编译和链接、动静态库及dyld的简单学习
  • 历史数据分析——国药现代
  • ABP VNext + Kubernetes Istio:微服务网格实战指南
  • 基于Socket来构建无界数据流并通过Flink框架进行处理