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

线性可分支持向量机的原理推导【补充知识部分】拉格朗日函数 公式解析

本文是将文章《线性可分支持向量机的原理推导》中的公式单独拿出来做一个详细的解析,便于初学者更好的理解。在主文章中,有一个部分是关于补充拉格朗日对偶性的相关知识,此公式即为这部分内容。


公式 9-9 是关于拉格朗日函数 L ( x , α , β ) L(x, \alpha, \beta) L(x,α,β) 的定义,它结合了目标函数和约束条件,并通过引入拉格朗日乘子 α \alpha α β \beta β 将带有约束的优化问题转化为一个无约束的优化问题。公式 9-9 的形式如下:
L ( x , α , β ) = f ( x ) + ∑ i = 1 p α i c i ( x ) + ∑ j = 1 q β j h j ( x ) L(x, \alpha, \beta) = f(x) + \sum_{i=1}^{p} \alpha_i c_i(x) + \sum_{j=1}^{q} \beta_j h_j(x) L(x,α,β)=f(x)+i=1pαici(x)+j=1qβjhj(x)

1. 公式 9-9 的组成部分

该公式表示的是拉格朗日函数,它结合了原始的目标函数和一组约束条件,通过引入拉格朗日乘子来处理这些约束。公式中的各个部分解释如下:

  • 目标函数 f ( x ) f(x) f(x):这是原始问题中需要最小化或最大化的目标函数。
  • ∑ i = 1 p α i c i ( x ) \sum_{i=1}^{p} \alpha_i c_i(x) i=1pαici(x):这是不等式约束的部分,每个 c i ( x ) ≤ 0 c_i(x) \leq 0 ci(x)0 是一个不等式约束, α i ≥ 0 \alpha_i \geq 0 αi0 是对应于这些约束的拉格朗日乘子。
  • ∑ j = 1 q β j h j ( x ) \sum_{j=1}^{q} \beta_j h_j(x) j=1qβjhj(x):这是等式约束的部分,每个 h j ( x ) = 0 h_j(x) = 0 hj(x)=0 是一个等式约束, β j \beta_j βj 是对应于等式约束的拉格朗日乘子。

2. 公式的含义

公式 9-9 是为了将一个带有不等式和等式约束的优化问题转化为一个无约束的优化问题。拉格朗日函数将约束条件通过拉格朗日乘子 α \alpha α β \beta β 纳入到目标函数中,这样我们可以在求解过程中同时处理目标函数和约束条件。

拉格朗日乘子的作用:
  • α i ≥ 0 \alpha_i \geq 0 αi0:拉格朗日乘子 α i \alpha_i αi 对应于不等式约束 c i ( x ) ≤ 0 c_i(x) \leq 0 ci(x)0。当 c i ( x ) > 0 c_i(x) > 0 ci(x)>0 时,约束被违反,拉格朗日乘子会对优化方向产生惩罚作用。只有当 c i ( x ) = 0 c_i(x) = 0 ci(x)=0 时(即样本位于约束边界上),拉格朗日乘子才会影响优化过程。

  • β j \beta_j βj:拉格朗日乘子 β j \beta_j βj 对应于等式约束 h j ( x ) = 0 h_j(x) = 0 hj(x)=0。因为等式约束要求严格等于 0, β j \beta_j βj 可以是正或负值,用来保证约束的平衡。

3. 公式 9-9 的目的

公式 9-9 的主要目的在于将带有约束的原始优化问题转化为一个新的问题,通过拉格朗日函数处理约束条件。通过这种方式,我们可以使用标准的无约束优化方法来求解问题,例如通过最大化或最小化拉格朗日函数来找到最优解。

4. 拉格朗日对偶问题

根据拉格朗日对偶理论,我们可以将拉格朗日函数进一步用于构造对偶问题。对偶问题是通过求解拉格朗日函数对 α \alpha α β \beta β 的最大值,或者对 x x x 的最小值来找到最优解的。

公式 9-10 继续引入了拉格朗日函数的最大值:
θ p ( x ) = max ⁡ α , β L ( x , α , β ) \theta_p(x) = \max_{\alpha, \beta} L(x, \alpha, \beta) θp(x)=α,βmaxL(x,α,β)

这个函数表示的是拉格朗日函数在 α \alpha α β \beta β 取最大值时的情况,用于构造进一步的优化步骤。

5. 公式 9-9 在支持向量机中的应用

在支持向量机(SVM)的优化问题中,拉格朗日函数也被广泛使用。SVM 的优化目标是最小化超平面法向量的范数,同时满足所有数据点的分类约束条件。通过引入拉格朗日乘子 α i \alpha_i αi 来处理这些分类约束,SVM 的优化问题可以被转化为一个对偶问题,从而更高效地求解。

在 SVM 中,拉格朗日函数的形式类似于公式 9-9,约束条件表示的是分类点的误差容限。

总结

公式 9-9 是拉格朗日函数的定义,它通过将目标函数和约束条件结合起来,将一个带有约束的优化问题转化为一个无约束的优化问题。拉格朗日乘子 α i \alpha_i αi β j \beta_j βj 用于处理不等式和等式约束,通过求解拉格朗日函数的最优值,我们可以间接求解原始问题或构造对偶问题来找到最优解。


为什么约束条件是加上拉格朗日乘子项,而不是减去?

1. 拉格朗日函数的构造

拉格朗日函数 L ( x , α , β ) L(x, \alpha, \beta) L(x,α,β) 通常用来将带约束的优化问题转化为无约束问题。它通过引入拉格朗日乘子 α i \alpha_i αi β j \beta_j βj,将原始的约束条件和目标函数结合起来。具体公式是:

L ( x , α , β ) = f ( x ) + ∑ i = 1 p α i c i ( x ) + ∑ j = 1 q β j h j ( x ) L(x, \alpha, \beta) = f(x) + \sum_{i=1}^{p} \alpha_i c_i(x) + \sum_{j=1}^{q} \beta_j h_j(x) L(x,α,β)=f(x)+i=1pαici(x)+j=1qβjhj(x)

其中:

  • f ( x ) f(x) f(x) 是目标函数(我们要最小化或最大化的)。
  • c i ( x ) ≤ 0 c_i(x) \leq 0 ci(x)0 是不等式约束, α i ≥ 0 \alpha_i \geq 0 αi0 是对应的不等式约束的拉格朗日乘子。
  • h j ( x ) = 0 h_j(x) = 0 hj(x)=0 是等式约束, β j \beta_j βj 是对应的等式约束的拉格朗日乘子。

2. 为什么是加上约束条件?

这涉及到拉格朗日函数的设计目标:通过将原来的约束条件惩罚化,使得在违反约束时,优化过程会受到惩罚。在不违反约束时,这些惩罚不会影响目标函数。具体的逻辑如下:

不等式约束 c i ( x ) ≤ 0 c_i(x) \leq 0 ci(x)0

对于每个不等式约束 c i ( x ) ≤ 0 c_i(x) \leq 0 ci(x)0,引入了拉格朗日乘子 α i ≥ 0 \alpha_i \geq 0 αi0。如果 c i ( x ) > 0 c_i(x) > 0 ci(x)>0(即违反了约束),则乘子 α i c i ( x ) \alpha_i c_i(x) αici(x) 会变成一个正数,从而使得优化目标 f ( x ) f(x) f(x) 增加,即增加“惩罚”。反之,如果 c i ( x ) ≤ 0 c_i(x) \leq 0 ci(x)0,则该项为非正数,不会惩罚目标函数。由于 α i ≥ 0 \alpha_i \geq 0 αi0,这确保了在约束被违反时,该惩罚是正向的。

因此,对于不等式约束项,约束条件实际上是在拉格朗日函数中的,因为在违反约束时,需要增加惩罚,强制优化过程向满足约束的方向移动。

等式约束 h j ( x ) = 0 h_j(x) = 0 hj(x)=0

对于等式约束 h j ( x ) = 0 h_j(x) = 0 hj(x)=0,引入的拉格朗日乘子 β j \beta_j βj 并没有非负的限制,它可以是任意实数。当 h j ( x ) ≠ 0 h_j(x) \neq 0 hj(x)=0 时,即等式约束被违反时, β j h j ( x ) \beta_j h_j(x) βjhj(x) 会使拉格朗日函数值发生变化,从而影响优化过程。如果 h j ( x ) = 0 h_j(x) = 0 hj(x)=0,即约束成立,约束项对目标函数没有影响。

3. 直观理解:为何使用“加”而非“减”

让我们从直观的角度理解为何是“加”而非“减”:

  • 不等式约束 c i ( x ) ≤ 0 c_i(x) \leq 0 ci(x)0 的惩罚机制:假设优化过程中产生了一个解 x x x,它违反了约束 c i ( x ) ≤ 0 c_i(x) \leq 0 ci(x)0,即 c i ( x ) > 0 c_i(x) > 0 ci(x)>0。此时,拉格朗日函数中的 α i c i ( x ) \alpha_i c_i(x) αici(x) 这一项会变为正值,增加目标函数的值,从而引导优化过程返回到满足约束的方向。如果我们减去这项惩罚,目标函数可能会变小,优化算法会倾向于进一步违反约束,因此这种惩罚机制是通过“加”来实现的。

  • 等式约束 h j ( x ) = 0 h_j(x) = 0 hj(x)=0:等式约束要求严格等于零,如果我们发现 h j ( x ) ≠ 0 h_j(x) \neq 0 hj(x)=0,拉格朗日函数通过 β j h j ( x ) \beta_j h_j(x) βjhj(x) 来调整,使得优化过程返回到满足约束的路径上。

4. 数学解释:KKT 条件与拉格朗日函数

拉格朗日函数的构造与Karush-Kuhn-Tucker(KKT)条件密切相关。KKT 条件是广义拉格朗日乘子法的延伸,用来处理非线性规划问题中的不等式和等式约束。在优化问题满足一定的凸性条件时,KKT 条件提供了必要且充分的最优性条件。

根据 KKT 条件:

  • 拉格朗日乘子 α i ≥ 0 \alpha_i \geq 0 αi0 确保了在违反不等式约束时,目标函数增加,从而引导回满足约束的区域。
  • 等式约束的拉格朗日乘子 β j \beta_j βj 则允许正负,从而在偏离最优解时向不同方向进行调整。

KKT 条件要求拉格朗日函数的梯度关于 x x x 和拉格朗日乘子同时为零,即在最优解处,不等式约束和等式约束同时满足。

5. 总结

拉格朗日函数将约束条件入目标函数是为了在违反约束时产生惩罚,从而引导优化过程返回到满足约束的路径上。这种设计使得我们可以通过处理一个无约束的优化问题来解决带约束的问题,简化了求解过程。

相关文章:

线性可分支持向量机的原理推导【补充知识部分】拉格朗日函数 公式解析

本文是将文章《线性可分支持向量机的原理推导》中的公式单独拿出来做一个详细的解析,便于初学者更好的理解。在主文章中,有一个部分是关于补充拉格朗日对偶性的相关知识,此公式即为这部分内容。 公式 9-9 是关于拉格朗日函数 L ( x , α , β…...

csdn(最新交流群)

SEOI Chathttps://seoi.net/room/10122?kwe7cp45v此网站开放性较强,小心诈骗...

新手maven入门学习教程

MAVEN基础入门 提示:java新人的学习之路记录 学习内容: 提示:了解并会初步使用maven构建管理java项目 Maven 是一个非常流行的 Java 项目管理和构建工具。它通过提供一套标准的构建生命周期和一组预定义的目标来简化 Java 应用程序的构建过…...

React 中级阶段学习计划

React 中级阶段学习计划 目标 掌握状态管理和路由。能够调用API并处理异步数据。学会使用CSS-in-JS和CSS Modules进行样式处理。 学习内容 状态管理 React Context API Context API:用于在组件树中传递数据,避免多层props传递。示例:im…...

[产品管理-47]:产品市场调研 - 一级市场、二级市场、次级市场?

目录 一、产品销售环节的一级二级市场 1、一级市场 2、二级市场 3、一级市场与二级市场的互动关系 二、金融中的一级二级市场 1、一级市场(Primary Market)- 新股发行、定向发行 2、二级市场(Secondary Market)- 普通投资者…...

Linux零基础教程学习(黑马)

1.初识Linux 1.2远程连接Linux系统 图形化、命令行 对于操作系统的使用,有2种使用形式: 图形化页面使用操作系统 以命令的形式使用操作系统 不论是Windows还是Linux亦或是MacOS系统,都是支持这两种使用形式。 图形化:使用操作…...

一款零依赖、跨平台的流媒体协议处理工具,支持 RTSP、WebRTC、RTMP 等视频流协议的处理

大家好,今天给大家分享一款功能强大的流媒体协议处理工具go2rtc,支持多种协议和操作系统,具有零依赖、零配置、低延迟等特点。 项目介绍 go2rtc可以从各种来源获取流,包括 RTSP、WebRTC、HomeKit、FFmpeg、RTMP 等,并…...

PHP 正则验证A-Z且排除某字母

都已经找到这里来了,相信已经尝试很多办法了,那么我们直接上答案 关键正则:(?!.*[IO]) //验证5到6个大写字母且排除I和O if (preg_match(/^(?!.*[IO])[A-Z\d]{5,6}$/u, AAAAM)) {echo "匹配成功"; } else {echo "匹配失败…...

如何安全运行别人上传的Python代码?

写后端的同学,有时候需要在网站上实现一个功能,让用户上传或者编写自己的Python代码。后端再运行这些代码。 涉及到用户自己上传代码,我们第一个想到的问题,就是如何避免用户编写危险命令。如果用户的代码里面涉及到下面两行&…...

matlab相位图

% 清空工作空间和命令窗口 clear; clc; % 模拟生成时间t,位移y(t)和角位移theta(t) t linspace(0, 100, 1000); % 时间从0到100,包含1000个点 y 1e-5 * sin(2 * pi * 0.1 * t) .* exp(-0.01 * t); % 位移y(t) 振荡衰减 theta 1e-6 * cos(2 * pi * …...

C语言笔记(指针的进阶)

目录 1.字符指针 2.指针数组 3.数组指针 3.1.创建数组指针 3.2.&数组名和数组名 1.字符指针 int main() { char ch w;char* pc &ch;const char *p "abcdef";//常量字符串 产生的值就是首元素的地址//常量字符串不能被修改 因此需要加上一个…...

NodeJS连接MySQL 8.4报错:code: ‘ER_TABLEACCESS_DENIED_ERROR‘

NodeJS连接MySQL 8.4报错:code: ER_TABLEACCESS_DENIED_ERROR { code: ER_TABLEACCESS_DENIED_ERROR, errno: 1142, sqlMessage: "SELECT command denied to user 用户名localhost for table 表名", sqlState: 42000, index: 0, sql: SELECT …...

力扣66~70题

题66(简单): python代码: class Solution:def plusOne(self, digits: List[int]) -> List[int]:s_str.join([str(i) for i in digits])nstr(int(s_str)1)n_strlist(n)res[int(i) for i in n_str]return res题67(简…...

Axure重要元件三——中继器添加数据

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! 本节课:中继器添加数据 课程内容:添加数据项、自动添加序号、自动添加数据汇总 应用场景:表单数据的添加 案例展示: 步骤…...

矩阵系统哪家好~矩阵短视频运营~怎么矩阵OEM

一、引言 在当今的数字化时代,矩阵系统在众多领域中发挥着至关重要的作用,如视频监控、信号切换、自动化控制等。然而,如何判断一个矩阵系统是否好用成为了许多用户面临的问题。本文将从多个方面探讨矩阵系统好用与否的判断标准,希…...

Axure树形菜单展开与折叠

亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! 课程主题:Axure树形菜单展开与折叠 主要内容:树形菜单制作——层级关系——隐藏与显示——值的变化——多层交互 应用场景:关系树、菜…...

开发一个微信小程序要多少钱?

在当今数字化时代,微信小程序成为众多企业和个人拓展业务、提供服务的热门选择。那么,开发一个微信小程序究竟需要多少钱呢? 开发成本主要取决于多个因素。首先是功能需求的复杂程度。如果只是一个简单的信息展示小程序,功能仅限…...

AnaTraf | TCP重传的工作原理与优化方法

目录 什么是TCP重传? TCP重传的常见触发原因 TCP重传对网络性能的影响 1. 高延迟与重传 2. 吞吐量的下降 如何优化和减少TCP重传 1. 优化网络设备配置 2. 优化网络链路 3. 网络带宽的合理规划 4. 部署CDN和缓存策略 结语 AnaTraf 网络性能监控系统NPM | …...

python从0快速上手(一)python环境搭建 windows macos linux

Python环境搭建超详细指南 Python是一种广泛使用的高级编程语言,它以其简洁的语法和强大的功能而受到开发者的喜爱。对于初学者来说,搭建一个合适的Python开发环境是开始Python之旅的第一步。本文将为你提供一个超级详细的Python环境搭建指南&#xff0…...

麒麟aarch64架构下安装compat-openssl10

问题描述: 麒麟aarch64架构下安装mysql8.0.40,报错nothing provides libcrypto.so.10()(64bit) needed by 原因: 你当前系统的 OpenSSL 版本与 MySQL 8.0.40 所需的库不匹配。MySQL 8.0.40 需要 libcrypto.so.10,而你的系统使用的是 OpenS…...

React远程组件

什么是远程组件? 远程组件指的是从远程服务器动态加载的组件,这些组件可以是React、Vue等框架的组件。 为什么需要远程组件 本质上就是为了解决复用问题,那引出新的问题有几种公共项目代码复用方式? Git仓库 将公共代码单独抽…...

ssm教师上课系统+vue

系统包含:源码论文 所用技术:SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习,获取源码请私聊我 需要定制请私聊 目 录 目 录 I 摘 要 III ABSTRACT IV 1 绪论 1 1.1 课题背景 1 1.2 研究现状 1 1.3 研究内容 2 [2 系统…...

【C】分支和循环--猜数字游戏

分支和循环 练习:猜数字游戏 游戏要求: 1;电脑自动生成1~100的随机数 2;玩家猜数字,猜数字的过程中,根据猜测数据的大小给出大了或小了的反馈,直到猜出,游戏结束 随机数生成 函数…...

Liunx 操作redis

1,到Liunx的redis的安装目录下/home/redis/redis-7.2.3/src 执行命令 ./redis-cli2,执行命令后,出现以下 127.0.0.1:6379>3,输入密码 127.0.0.1:6379> AUTH 你的密码4,切换db库 127.0.0.1:6379> SELECT 55,操作命令 查看当前 db库的缓存 127.0.0.1:63…...

C#教程笔记

C#开发的程序依附.NET平台 编译器->IL中间语言->CLR->机器指令 .NET CORE平台 跨平台 .cs后缀名 快捷键 CtrlKD格式化CtrlL或CtrlX删除一行CtrlY反撤销cwTab快速生成命令行输出Ctrl空格或CtrlJ获取提示///方法注释CtrlMO代码全部折叠CtrlML代码全部展开 上升沿0变1 安…...

Docker 部署 RocketMQ

1.拉取RocketMQ镜像 这里以dockerhub上 RocketMQ 5.2.0版本的镜像为例,介绍部署过程。 docker pull registry.cn-hangzhou.aliyuncs.com/qiluo-images/rocketmq:5.2.02.创建容器共享网络 RocketMQ 中有多个服务,需要创建多个容器,创建 docke…...

linux安装mysql数据库(最完整的yum源安装)

1.下载YUM库 wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm这里介绍一下wegt命令 wget 是一个非常强大的命令行工具,用于从网络上下载文件。它支持HTTP、HTTPS和FTP协议,并且可以通过HTTP代理进行下载。以下是 wget 的…...

工业物联网关-TCP透传

TCP透传功能提供类似于DTU(Data Transmit Unit)的功能,用户在网络端使用TCP协议连接网关,与串口通道绑定,建立起TCP与串口的通道,网关相当于一个中转点。 菜单选择"数据上行-tcp透传",查看当前透传通道列表&…...

sentinel原理源码分析系列(六)-统计指标

调用链和统计节点构建完成,进入统计指标插槽,统计指标在最后执行的,等后面的插槽执行完,资源调用完成了,根据资源调用情况累计。指标统计是最重要的插槽,所有的功能都依靠指标数据,指标的正确与…...

【代理模式使用场景】

一般来说,代理模式使用场景是远程代理、虚拟代理、安全代理等。下面来详细介绍下这三个场景是什么,实现原理和特点。不过在介绍三个场景前,我们还是先来回顾下代理模式。 代理模式 定义 是结构型设计模式,引入一个对象控制对另…...