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

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

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


公式 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. 总结

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


http://www.kler.cn/news/364812.html

相关文章:

  • 线性代数学习
  • vue2 el-select赋值无效(无法选中)
  • 【MySQL】实战篇—项目需求分析:如何进行需求分析与数据库设计
  • javaWeb项目-ssm+jsp大学生校园兼职系统功能介绍
  • 比较相同机器上 redis和mysql分别单独承载的 最大连接数量
  • Java项目-基于springboot框架的原创歌曲分享系统项目实战(附源码+文档)
  • Ubuntu下查看指定文件大小
  • Jenkins发布vue项目,版本不一致导致build错误
  • C++,STL 042(24.10.21)
  • 探索Web3与区块链的融合:未来互联网的新范式
  • Linux的用户管理、组帐号管理(chmod,chown)
  • Makefile:1954: recipe for target ‘Modules/_ssl.o‘ failed请安装ssl后,重新安装或编译Python
  • VS2022控制台程序显示命名空间引用
  • 影刀RPA实战:网页爬虫之桌面壁纸图片
  • 闯关leetcode——168. Excel Sheet Column Title
  • CSV文件自动化生成:用Pandas与Datetime高效处理商品信息
  • 【matlab 计算任意两个序列的dtw距离】
  • CG-66无线土壤水分传感器,实时在线测量土壤温湿度,并使用物联网进行传输
  • 嵌入式面试刷题(day19)
  • 从零开始的LeetCode刷题日记:55. 跳跃游戏
  • 全面了解MindSporeLite轻量化推理工具(概念版)
  • 企业内部知识库管理系统,nlp,知识图谱,全文检索的知识库源码
  • 数据挖掘:基于电力知识图谱的客户画像构建实施方案
  • Python os模块详解
  • 开源运维软件适用性评估:多维度视角下的理性选择
  • 【python_修改PPT中字体,run.font.name只对英文生效怎么办?】