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

python学智能算法(二十六)|SVM-拉格朗日函数构造

【1】引言

前序学习进程中,已经了解了拉格朗日乘数法求极值的基本原理,也了解了寻找最佳超平面就是寻找最佳分隔距离。
这篇文章的学习目标是:使用拉格朗日乘数法获取最佳的分隔距离。

【2】构造拉格朗日函数

目标函数

首先是目标函数f:
f=min⁡12∥w∥2f=\min\frac{1}{2}{\left\|w\right\|}^2f=min21w2
然后是约束函数g:
之前定义了函数距离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∥⋅x+b∥w∥)\delta=\min_{i=1...m}y_{i}(\frac{w}{\left\|w\right\|}\cdot x+\frac{b}{\left\|w\right\|})δ=i=1...mminyi(wwx+wb)

约束函数

在引出目标函数f的过程中,使用的方法是:等比率调整权重矩阵w
和偏执量b,使得F=1。
所以才会有最佳超平面对应的最大分隔距离δmax:
δmax=max⁡1∥w∥\delta_{max}=\max{\frac{1}{\left\|w\right\|}}δmax=maxw1
也是据此才转化出来的目标函数f。
我们在理解这个转化的时候可能过于简略,没有强调一个细节:

  • F=1是对最小的函数距离F调整权重矩阵w和偏置量b获得, 每个候选超平面都先将最小函数距离调整到1,;
    然后再来对比调整后的权重矩阵w,最小的w对应最大的f。

再强调一遍:
每个超平面的最小函数距离F都先调整为1,然后对比挑出来的所有1对应的权重矩阵w,取最小w对应的超平面为最佳超平面。

为此,将约束函数的定义重新也回到函数距离F的应用上,将F的定义改写成g:
g=yi(w⋅xi+b)≥1g=y_{i}(w \cdot x_{i}+b)\geq1 g=yi(wxi+b)1
或者:
g=yi(w⋅xi+b)−1≥0g=y_{i}(w \cdot x_{i}+b)-1\geq0 g=yi(wxi+b)10
g就是约束函数。

在此基础上,构造拉格朗日函数:
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+b)1]上式使用了自动求和符号,这是因为拉格朗日函数需要感知每一个约束条件,只有每个约束条件都满足,才能获得真正的最优解。
这里的每个约束条件都分配了单独的因子αi\alpha_{i}αi

总结

学习了SVM算法中的拉格朗日函数构造方法。

http://www.dtcms.com/a/289153.html

相关文章:

  • 非广告!! 【实用工具推荐】自用多功能视频播放器-РotРlayer详细图文安装使用教程
  • 【安卓笔记】RecyclerView之ItemDecoration实现吸顶效果
  • codepen使用
  • FFmpeg 图片处理
  • 数据结构 | 栈:构建高效数据处理的基石
  • 【高等数学】第四章 不定积分——第三节 分部积分法
  • 【深度学习新浪潮】什么是robotaxi?
  • 【设计模式C#】享元模式(用于解决多次创建对象而导致的性能问题)
  • MPLS转发
  • windows C#-本地函数
  • Docker Compose 配置
  • docker compose 编排容器 mysql Springboot应用
  • 使用pytorch创建模型时,nn.BatchNorm1d(128)的作用是什么?
  • gradle关于dependency-management的使用
  • SpringBoot 整合 Langchain4j 实现会话记忆存储深度解析
  • OpenCV 入门知识:图片展示、摄像头捕获、控制鼠标及其 Trackbar(滑动条)生成!
  • 【LeetCode刷题指南】--反转链表,链表的中间结点,合并两个有序链表
  • Day25| 491.递增子序列、46.全排列
  • SQL Server(2022)安装教程及使用_sqlserver下载安装图文
  • redis-plus-plus安装与使用
  • [BUG]关于UE5.6编译时出现“Microsoft.MakeFile.Targets(44,5): Error MSB3073”问题的解决
  • 30天打牢数模基础-SVM讲解
  • Facebook 开源多季节性时间序列数据预测工具:Prophet 快速入门 Quick Start
  • UE5多人MOBA+GAS 26、为角色添加每秒回血回蓝(番外:添加到UI上)
  • Go并发聊天室:从零构建实战
  • Mysql(事务)
  • 30个常用的Linux命令汇总和实战场景示例
  • 30天打牢数模基础-粒子群算法讲解
  • 详解Mysql索引合并
  • Jetpack - ViewModel、LiveData、DataBinding(数据绑定、双向数据绑定)