凸优化理论,凸二次规划问题,对偶问题及KKT条件

凸优化理论

​ 研究凸优化之前我们不妨提出几个小问题:

  1. 什么是优化问题?
  2. 优化问题的解是什么?
  3. 什么是凸优化问题?
  4. 凸优化问题的解决方案是什么?
1.1 优化问题

​ 理解优化问题其实很简单,我们其实从高中事情就一直在做,优化问题的定义是:在一定约束条件下,寻找一个或一组最优解使得某个目标函数达到最大或最小的问题。如果没有约束条件就可以理解为求解函数的最大最小值问题,如果有约束条件我们也接触过,比如在高等数学多元微分中求解条件最值。

​ 求解优化问题一般有两种方案:第一种是数学分析法,如一元函数的优化问题,可以使用导数为零的方法找到极值点,另一种是数值优化方法,通过迭代地改进决策变量的值,逐步逼近最优解,而我们学习过的梯度下降算法就属于数值优化方法。

​ 优化问题的解一般是标量或者一个向量,比如说一元求导的结果往往会得到一个X的值,在X处取到函数的最大最小值。而对于基于样本进行对模型进行迭代优化的问题,优化问题的解往往是一个参数向量。

1.2 凸优化问题

我们直接给出凸优化问题的定义:

设f: R n R^ {n} Rn → \rightarrow R为目标函数,C ⊆ \subseteq R n R^ {n} Rn 为可行域。如果满足以下条件, 则该优化问题为凸优化问题:
1.目标函数f是凸函数,即对于任意x,y ∈ \in R n R^ {n} Rn 以及任意0 ⩽ \leqslant λ \lambda λ ⩽ \leqslant 1,都有
f ( λ x + ( 1 − λ ) y ) ⩽ λ f ( x ) + ( 1 − λ ) f ( y ) 。 f(\lambda x+(1- \lambda )y) \leqslant \lambda f(x)+(1- \lambda )f(y)。 f(λx+(1λ)y)λf(x)+(1λ)f(y)
2.可行域C是凸集,即对于任意x,y ∈ \in C以及任意0 ⩽ \leqslant λ \lambda λ ⩽ \leqslant 1,都有 λ \lambda λ x+(1- λ \lambda λ )y ∈ \in C。
那么凸优化问题可以表述为:
min ⁡ x ∈ C f ( x ) 。 \min_{x \in C} f(x)。 xCminf(x)
其中,求解的目标是在可行域C中找到一个点 $ x^ {*} $ ,使得目标函数f(x)取得最小值,并且满足凸函数和凸集的条件

​ 从几何的角度可以这样去理解凸函数,首先凸函数不要求连续和可导,其次凸函数可以理解为在图像中任取两点连线,如果函数图像在这个连线的下方,则为凸函数:

image-20241109113439388

​ 从几何角度也可以这样去理解凸集,在集合范围内任取两点连线,如果两个点的连线仍然在集合内,那么该集合为凸集,显然如果集合是一个圆或者椭圆则为凸集,如果集合是一个心形则是非凸集。

image-20241109114008108

1.3 凸优化问题的分类

​ 凸优化问题可以根据目标函数和约束条件划分为:

  • 凸线性规划问题:目标函数是线性的,约束条件是仿射
  • 凸二次规划问题:目标函数是二次函数,约束条件是仿射
  • 凸半定规划问题:目标函数和约束条件涉及半正定矩阵
1.4 凸二次规划通过拉格朗日对偶法转最小最大问题

问题的一般形式:设初始优化问题为P,则P为
min ⁡ f ( x ) s . t . C i ( x ) ≤ 0 , i = 1 , 2 , . . . k H j ( x ) = 0 , j = 1 , 2 , . . . l \min f(x) \\ s.t. \\ C_i(x)\leq 0,i=1,2,...k\\ H_j(x) =0,j=1,2,...l minf(x)s.t.Ci(x)0,i=1,2,...kHj(x)=0,j=1,2,...l
其中目标函数为f(x),优化变量为x,可行域为凸集,约束条件规定x的范围

Step1: 构造拉格朗日函数
L ( x , α , β ) = f ( x ) + ∑ i = 1 k α i C i ( x ) + ∑ j = 1 l β j H j ( x ) s . t . α i ≥ 0 L(x,\alpha,\beta)=f(x)+\sum_{i=1}^k \alpha_iC_i(x)+\sum_{j=1}^l \beta_j H_j(x)\\ s.t.\\ \alpha_i \geq 0 L(x,α,β)=f(x)+i=1kαiCi(x)+j=1lβjHj(x)s.t.αi0
Step2:转换优化问题,则初始问题P可以转化为极小极大拉格朗日函数问题:
p = min ⁡ x max ⁡ α , β L ( x , α , β ) p = \min_x \max_{\alpha,\beta} L(x,\alpha,\beta) p=xminα,βmaxL(x,α,β)
Step3.将原问题转为对偶问题
p ∗ = max ⁡ α , β min ⁡ x L ( x , α , β ) p^* = \max_{\alpha,\beta} \min_x L(x,\alpha,\beta) p=α,βmaxxminL(x,α,β)
Step4.求解出x与 α , β \alpha,\beta α,β的关系,代入L,对 α , β \alpha,\beta α,β极大化求解

​ 那么为什么原问题P能转换为极小极大拉格朗日函数问题呢?我们可以来仔细分析一下:
∵ i f α i ≥ 0 ∵ C i ( x ) ≤ 0 若取 max ⁡ α i C i ( x ) ∴ α i = 0 o r C i ( x ) = 0 ∵ H j ( x ) = 0 ∴ β j H j ( x ) = 0 ∴ p = min ⁡ x { f ( x ) , H j ( x ) = 0 , C i ( x ) ≤ 0 ∞ , o t h e r \because if \quad\alpha_i\geq 0 \\ \because C_i(x)\leq 0 \quad 若取\max{\alpha_iC_i(x)} \\ \therefore \alpha_i =0 \quad or \quad C_i(x)=0 \\ \because H_j(x) =0 \\ \therefore \beta_j H_j(x)=0 \\ \therefore p= \min_x \begin{cases} f(x), & H_j(x)=0, C_i(x)\leq 0\\ \infty, & other \end{cases} ifαi0Ci(x)0若取maxαiCi(x)αi=0orCi(x)=0Hj(x)=0βjHj(x)=0p=xmin{f(x),,Hj(x)=0,Ci(x)0other

1.5 极小极大的对偶问题

​ 什么是对偶问题呢?我们直接给出形式再进行分析,以上面的极大极小问题为例?
p = min ⁡ x max ⁡ α , β L ( x , α , β ) p = \min_x \max_{\alpha,\beta} L(x,\alpha,\beta) p=xminα,βmaxL(x,α,β)
​ 它的对偶问题是:
p ∗ = max ⁡ α , β min ⁡ x L ( x , α , β ) p^* = \max_{\alpha,\beta} \min_x L(x,\alpha,\beta) p=α,βmaxxminL(x,α,β)

​ 这样的好处在于,当我们求解时可以先对x进行求解,将 α , β \alpha,\beta α,β看作参数,这样会一定程度上降低我们求解的麻烦,其次求原问题min的时候x是已经被约束的,所以要考虑x的可行域,但是我们在求对偶问题的时候,因为先对x进行最小化求解,所以这个时候x是没有被约束,也就是x的可行域属于R。

​ 为什么会这样呢?我们可以通过放缩直观的分析到:
p ∗ ≤ max ⁡ α , β min ⁡ x ∈ 可行域 L ( x , α , β ) p^* \leq \max_{\alpha,\beta} \min_{x \in 可行域}L(x,\alpha,\beta) pα,βmaxx可行域minL(x,α,β)
​ 由于 p ∗ p^* p中x取的是全局最小,而现在缩小x的范围,因而能得到 p ∗ p^* p要更小一些

​ 同时:
max ⁡ α , β min ⁡ x ∈ 可行域 L ( x , α , β ) ≤ min ⁡ x ∈ 可行域 f ( x ) \max_{\alpha,\beta} \min_{x \in 可行域}L(x,\alpha,\beta) \leq \min_{x \in 可行域} f(x) α,βmaxx可行域minL(x,α,β)x可行域minf(x)
​ 当x属于可行域范围内时,会使得 ∑ j = 1 l β j H j ( x ) \sum_{j=1}^l \beta_j H_j(x) j=1lβjHj(x)这一项为0,使得 ∑ i = 1 k α i C i ( x ) ≤ 0 \sum_{i=1}^k \alpha_iC_i(x) \leq 0 i=1kαiCi(x)0,从而拉格朗如函数肯定是小于f(x)的。

​ 最终我们得到:
p ∗ ≤ max ⁡ α , β min ⁡ x ∈ 可行域 L ( x , α , β ) ≤ min ⁡ x ∈ 可行域 f ( x ) p^* \leq \max_{\alpha,\beta} \min_{x \in 可行域}L(x,\alpha,\beta) \leq \min_{x \in 可行域} f(x) pα,βmaxx可行域minL(x,α,β)x可行域minf(x)
​ 也就是说对偶问题极小值为我们的原始问题提供了一个极小值的下界。当然这个等式并不是最优的,我们十分渴望知道什么时候可以取等号。在解决这个问题之前我们应该先解决一个小问题?

​ 所有的问题都可以采用对偶问题吗?原来的极小极大问题什么时候可以通过取对偶问题来简化计算?

​ 当原凸优化问题满足Slater条件时该问题可以转为一个强对偶性(对偶问题的解可以和原问题的解取等号,也就是上面等号成立的情况)的凸优化问题。

​ Slater条件:Slater条件是对凸优化问题中不等式约束的限制,我们假设每一个不等式的约束为一个凸集,如果这些凸集相交且有公共交集,则称该问题符合Slater条件,否则则称不符合。如下图,图一为符合slater条件的情况图二则不符合Slater条件,无法转为对偶问题。

image-20241110214523384

​ 接下来我们解决等号的问题,其实我们已经解决了,如果一个凸优化问题同时这个问题符合Slater条件,则代表存在强对偶性,则原问题的解可以等于对偶问题的解。

​ 那么我们又将提出一个问题?是,现在是可以等于对偶问题的解,如此复杂的式子,这个解当然可以根据先求最小再求最大去求,有没有什么简单做法呢?KKT条件

1.6 KKT条件

​ 根据上文,我们直观的了解到,如果一个式子可以转为对偶问题,我们已经能很方便的去对这个问题进行求解,但是强对偶性是一个非常特殊的条件,它的特殊就体现再它又提供给了我们一个方法去求解,也就是KKT条件。KKT条件是解的充分条件,也就是说如果对偶问题具有强对偶性,则该问题的解可以通过KKT条件计算出来,也就是:
{ ∂ x L ( x , α , β ) = 0 α i C i ( x ) = 0 互补松弛条件 C i ( x ) ≤ 0 α i ≥ 0 h j ( x ) = 0 \begin{cases} \partial_x L(x,\alpha,\beta)=0\\ \alpha_iC_i(x) =0 & 互补松弛条件 \\ Ci(x) \leq 0 \\ \alpha_i \geq 0 \\ h_j(x) =0 \end{cases} xL(x,α,β)=0αiCi(x)=0Ci(x)0αi0hj(x)=0互补松弛条件
​ 根据KKT条件求出的x为原问题的最优解 α , β \alpha,\beta α,β 为对偶问题的最优解,从这个角度,KKT条件建立了原问题和对偶问题的联系。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/913018.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

实战攻略 | ClickHouse优化之FINAL查询加速

【本文作者:擎创科技资深研发 禹鼎侯】 查询时为什么要加FINAL 我们在使用ClickHouse存储数据时,通常会有一些去重的需求,这时候我们可以使用ReplacingMergeTree引擎。这个引擎允许你存储重复数据,但是在merge的时候会根据order …

3DGS与NeRF的区别

0 论文链接 nerf:https://arxiv.org/abs/2003.08934 3dgs:https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/3d_gaussian_splatting_low.pdf 1 简要 1.1 nerf neural radiance fields神经辐射场 作者提出了一种优化来自一组输入图像的场景…

关于python的复习

Python的基础 自动声明: 在 Python 中,不需要显式声明变量类型,变量的类型是在赋值时根据值自动推断的。 动态类型: Python 是动态类型语言,变量的类型可以在运行时改变。 x 10 # 整数 x "hello" # 现在是字符串 变量…

HBuilderX运行微信小程序,编译的文件在哪,怎么运行

1. 点击HBuilderX顶部的运行-运行到小程序模拟器-微信开发者工具,就会开始编译 2. 编译完成后的文件在根目录找到 unpackage -- dist -- dev -- mp-weixin, 这里面就是编译后的文件,如果未跳转到开发者工具,那可能是没设置启动路径&#xff0…

自然语言处理在客户服务中的应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 自然语言处理在客户服务中的应用 自然语言处理在客户服务中的应用 自然语言处理在客户服务中的应用 引言 自然语言处理概述 定义…

【学习笔记】Kylin-Desktop-V10-SP1 麒麟系统知识4——设备设置

提示:学习麒麟Kylin-Desktop-V10-SP1系统设备设置相关知识,包含设备设置进入方法、配置打印机、设置鼠标、键盘相关参数(包含输入法的配置)、以及管理快捷键组合、和多屏协同相关配置 一、前期准备 成功安装麒麟系统&#xff08…

Gen-RecSys——一个通过生成和大规模语言模型发展起来的推荐系统

概述 生成模型的进步对推荐系统的发展产生了重大影响。传统的推荐系统是 “狭隘的专家”,只能捕捉特定领域内的用户偏好和项目特征,而现在生成模型增强了这些系统的功能,据报道,其性能优于传统方法。这些模型为推荐的概念和实施带…

【国内中间件厂商排名及四大中间件对比分析】

国内中间件厂商排名 随着新兴技术的涌入,一批国产中间件厂商破土而出,并在短时间内迅速发展,我国中间件市场迎来洗牌,根据市占率,当前我国中间件厂商排名依次为:东方通、宝兰德、中创股份、金蝶天燕、普元…

PVE纵览-备份与快照指南

PVE纵览-备份与快照指南 文章目录 PVE纵览-备份与快照指南摘要1 备份与快照概述定义与区别备份与快照在PVE中的应用场景 2 PVE 备份功能详解备份类型与策略配置备份任务自动化备份管理 3 PVE 快照功能详解快照的工作原理快照的创建与恢复机制快照对系统性能的影响快照的使用场景…

解非线性方程组

实验类型:●验证性实验 ○综合性实验 ○设计性实验 实验目的:进一步熟练掌握解非线性方程组牛顿迭代算法,提高编程能力和解算非线性方程组问题的实践技能。 实验内容: 设有非线性方程组(此方程组是非标准型) 实验说明&#xff1…

JavaWeb合集23-文件上传

二十三 、 文件上传 实现效果&#xff1a;用户点击上传按钮、选择上传的头像&#xff0c;确定自动上传&#xff0c;将上传的文件保存到指定的目录中&#xff0c;并重新命名&#xff0c;生成访问链接&#xff0c;返回给前端进行回显。 1、前端实现 vue3AntDesignVue实现 <tem…

设计模式-七个基本原则之一-开闭原则 + SpringBoot案例

开闭原则:(SRP) 面向对象七个基本原则之一 对扩展开放&#xff1a;软件实体&#xff08;类、模块、函数等&#xff09;应该能够通过增加新功能来进行扩展。对修改关闭&#xff1a;一旦软件实体被开发完成&#xff0c;就不应该修改它的源代码。 要看实际场景&#xff0c;比如组内…

图形几何之美系列:仿射变换矩阵(二)

“ 在几何计算、图形渲染、动画、游戏开发等领域&#xff0c;常需要进行元素的平移、旋转、缩放等操作&#xff0c;一种广泛应用且简便的方法是使用仿射变换进行处理。相关的概念还有欧拉角、四元数等&#xff0c;四元数在图形学中主要用于解决旋转问题&#xff0c;特别是在三维…

python识别ocr 图片和pdf文件

#识别图片 pip3 install paddleocr pip3 install paddlepaddle#识别pdf pip3 install PyMuPDF 重点&#xff1a;路径不能有中文&#xff0c;不然pdf文件访问不了 from paddleocr import PaddleOCR from rest_framework.response import Response from rest_framework.views im…

使用Ubuntu快速部署MinIO对象存储

想拥有自己的私有云存储&#xff0c;安全可靠又高效&#xff1f;MinIO是你的理想选择&#xff01;这篇文章将手把手教你如何在Ubuntu 22.04服务器上部署MinIO&#xff0c;并使用Nginx反向代理和Let’s Encrypt证书进行安全加固。 即使你是新手&#xff0c;也能轻松完成&#xf…

EasyUI弹出框行编辑,通过下拉框实现内容联动

EasyUI弹出框行编辑&#xff0c;通过下拉框实现内容联动 需求 实现用户支付方式配置&#xff0c;当弹出框加载出来的时候&#xff0c;显示用户现有的支付方式&#xff0c;datagrid的第一列为conbobox,下来选择之后实现后面的数据直接填充&#xff1b; 点击新增&#xff1a;新…

【神经科学学习笔记】基于分层嵌套谱分割(Nested Spectral Partition)模型分析大脑网络整合与分离的学习总结

一、前言 1.学习背景 最近在学习脑网络分析方法时&#xff0c;笔者偶然读到了一篇发表在Physical Review Letters上的文章&#xff0c;文章介绍了一种名为嵌套谱分割(Nested-Spectral Partition, NSP)的方法&#xff0c;用于研究大脑功能网络的分离和整合特性。 传统的脑网络分…

如何优雅处理异常?处理异常的原则

前言 在我们日常工作中&#xff0c;经常会遇到一些异常&#xff0c;比如&#xff1a;NullPointerException、NumberFormatException、ClassCastException等等。 那么问题来了&#xff0c;我们该如何处理异常&#xff0c;让代码变得更优雅呢&#xff1f; 1 不要忽略异常 不知…

海量数据迁移:Elasticsearch到OpenSearch的无缝迁移策略与实践

文章目录 一&#xff0e;迁移背景二&#xff0e;迁移分析三&#xff0e;方案制定3.1 使用工具迁移3.2 脚本迁移 四&#xff0e;方案建议 一&#xff0e;迁移背景 目前有两个es集群&#xff0c;版本为5.2.2和7.16.0&#xff0c;总数据量为700T。迁移过程需要不停服务迁移&#…

macOS开发环境配置与应用开发(详细讲解)

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 1. 引言 macOS作为Apple公司推出的桌面操作系统&#xff0c;以其稳定性、优雅的用户界面和强大的开发工具吸引了大量开发者。对于…