最优化--坐标下降法--凸优化问题与凸集

news2024/11/20 6:37:01

目录

坐标下降法

概念

坐标下降法的步骤

案例演示

 数值优化算法面临的问题

凸优化问题与凸集

凸优化问题

性质

优点

凸集

性质 


坐标下降法

概念

坐标下降法是一种非梯度优化算法。算法在每次迭代中,在当前点处沿一个坐标方向

进行一维搜索以求得一个函数的局部极小值。在整个过程中循环使用不同的坐标方向。

例如,要最小化函数f(x),即:min f (x), x = (x~1~, x~2~ ,…, x~n~ )

它的思想是按住其它的不动,只优化其中一个比如 x1 ,那就把多元函数求极值问题变成了

一元函数求极值问题,这样优化的难度就小了很多,紧接着我们把其它的按住不动,再优化

x2,一直到 xn ,完了之后再回来优化 x1,把所有的从 x1、 x2 到 xn 优化一遍,就好比梯

度下降迭代一次,计算的工作量小。

坐标下降法的步骤

  1. 初始化变量:选择初始变量的取值。

  2. 选择维度:按照一定的顺序或随机选择一个维度。

  3. 单变量优化:在选择的维度上,固定其他维度的变量,并对当前维度的变量进行优化,找到使目标函数最小(或最大)的值。

  4. 更新变量:将优化得到的当前维度上的变量值更新到整体变量中。

  5. 判断停止条件:检查是否满足停止条件,如目标函数的变化很小或达到最大迭代次数。

  6. 切换维度:如果未达到停止条件,则切换到下一个维度,重复步骤3到步骤5。

  7. 返回结果:返回最终优化得到的变量值作为最优解。

案例演示

假设我们有目标函数f(x,y)=5x^2^-6xy+5y^2^,其等高线图如下所示,求(x, y)以使得目标

函数在该点的值最小。

图中红色十字标示的是起始点(-0.5, -1.0),此时f =3.25。现在我们固定x,将f

看成关于y的一元二次方程并求当f最小时y的值:

即,现在自变量的取值就更新成了(-0.5, -0.3), f = 0.8。

下一步,将新得到的y值固定,将f看成关于x的一元二次方程并求当函数最小时x的值。计算

过程与上一步相似,由于计算过于简单,我们直接绘制出经过多轮如上迭代后自变量(x,

y)的运动轨迹:

可见,随着(x, y )依次在相应坐标轴上的移动,目标函数逐渐接近其极小值点,直至

在某次迭代中函数得不到优化,即达到某一驻点后停止。

 数值优化算法面临的问题

  • 局部极值问题

    要求全局最优解,要把所有极小值找出来,可能要不断的去设置不同的初始迭代点,

    反复的求解让它收敛到不同的局部最小值,然后来比较谁最小来找到一个全局最小值

  • 鞍点问题

    一元函数 x^3^函数,在坐标为 0 处它是驻点,但是它连局部最小值点都不是,对应多元函

    数来说,我们称之为鞍点(既不是极大值点也不是极小值点的临界点,叫做鞍点。)

凸优化问题与凸集

凸优化问题

前面我们说过数值优化面临两个问题,一个是局部极值问题,和鞍点问题,我们能不能避免

这两个问题呢?

只要我们对优化问题进行限定就可以,这类问题有两个限定条件

  1. 优化变量的可行域必须是凸集
  2. 优化函数必须是个凸函数

同时满足这两个限定条件的问题,叫做凸优化问题。一个凸优化问题的局部最优解就

是它的全局最优解。

性质

  1. 凸函数的定义域是凸集。凸集是指对于任意的两个点在集合内,连接这两个点的线段上的所有点也在集合内。
  2. 函数在定义域内的任意两点之间的连线上的函数值不大于这两个点上函数值的线段上的函数值。也就是说,凸函数的函数值不会出现“凹”的形状。
  3. 函数的二阶导数是非负的,即凸函数的二阶导数大于等于零。

优点

  1. 全局最优解:凸优化问题的局部最优解也是全局最优解,因此可以保证求解的结果是全局最优解。
  2. 唯一性:凸优化问题的解是唯一的,不存在多个不同的局部最优解。
  3. 算法可行性:凸优化问题可以通过多种有效的算法进行求解,如梯度下降法、牛顿法、内点法等。

凸集

对于一个点的集合C,有 x,y 它都是属于C里面的两个点,它们两点的连线中任何一点

也是属于集合C的。

例如,立方体是凸集,但是任何中空的或具有凹痕的例如月牙形都不是凸集。

性质 

  1. 对于两个凸集的交集,它仍然是一个凸集。
  2. 对于一组凸集的并集,它仍然是一个凸集。

注意

  • 凸集的交集也是凸集
  • 凸集的并集不一定是凸集

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Shell、Xshell以及两者的关系

编程语言分为编译型语言(需要使用编译器生成可执行的文件)和解释型语言(需要解释器,不需要编译器)。shell语言是一种解释型语言所使用的解释器有bash解释器或者sh解释器等。我们通过shell命令使之和操作系统交互&#…

漏洞复现-网康(奇安信)NGFW下一代防火墙远程命令执行

漏洞描述 网康下一代防火墙(NGFW)是网康科技推出的一款可全面应对网络威胁的高性能应用层防火墙。该NGFW存在远程命令执行漏洞,攻击者可通过构造特殊请求执行系统命令。凭借超强的应用识别能力,下一代防火墙可深入洞察网络流量中…

vscode python 自定义函数无法跳转到定义处,且定义处无法展示所有调用该函数的位置

问题描述 在vscode中编写python代码,在自定义类的forward函数中调用该类的成员函数,但在调用处无法通过ctrl鼠标左键直接跳转到该成员函数的定义中,系统显示找不到函数声明。同时,在该函数的定义处无法通过ctrl鼠标左键展示项目中…

React小项目-题解列表

1. 项目初始化 首先创建一个新项目 solution-app: npx create-react-app solution-app cd solution-app npm start先将 src 目录中除了 index.css 与 index.js 之外的文件删除,然后创建一个 components 目录,在该目录中创建一个 solution.j…

浅析舆情监测系统

舆情及内容简述 大家对于“舆情”应该有一个简单地概念,尤其是在现在微博、微信、知乎、抖音等平台普及化的今天,舆情的力量日渐凸显。比如最近萧敬腾的求婚、《消失的她》的热议、ikun的翻车等等,舆情既可以让明星塌房,也会让一…

Android Compose UI实战练手----Google Bloom登录页

目录 1.概述2.页面展示1.1 亮色主题1.2暗色主题 3.登录页面拆分以及编码实现3.1 登录页面拆分3.2 编码实现3.2.1 LoginPage3.2.2 LoginTitle3.2.3 LoginInoutBox3.2.4 LoginHintWithUnderLine3.2.5 LoginButton 4.源码地址 1.概述 在之前的章节中我们已经介绍了如何实现Google…

每个前端开发需要了解的10个强大的CSS属性

微信搜索 【大迁世界】, 我会第一时间和你分享前端行业趋势,学习途径等等。 本文 GitHub https://github.com/qq449245884/xiaozhi 已收录,有一线大厂面试完整考点、资料以及我的系列文章。 快来免费体验ChatGpt plus版本的,我们出的钱 体验地…

vue 启动项目报错:TypeError: Cannot set property ‘parent‘ of undefined异常解决

场景:从git上面拉下来一个项目 npm i 下载完依赖以后 npm run serve 去运行项目的时候 报错TypeError: Cannot set property ‘parent’ of undefined 如图所示 原因:首先排查发现判断得出是less解析失败导致 但是经过长时间的查询解决方案发现是因为v…

【Redis一】Redis简介及安装部署

Redis简介及安装部署 1.关系数据库 VS 非关系型数据库1.1 关系型数据库1.2 非关系型数据库1.3 关系型数据库和非关系型数据库区别1.4 非关系型数据库产生背景1.5 关系型数据库与非关系型数据库总结 2.Redis简介2.1 Redis概述2.2 Redis的优点2.3 Redis使用场景2.4 关于Redis的高…

nginx配置vue项目添加访问前缀

文章目录 前言实现需求Nginx配置访问前端正确配置注意点alias的含义举个栗子静态文件及js等404错误 前言 最近,在搞一个SASS系统,将原有的单服务,每次卖出一套啥软件就需要部署一套环境,使得运维人员有些捉襟见肘。产品调整为SAS…

链表理论基础

链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域,一个是指针域(存放指向下一节点的指针)。 链表的类型 单链表 每一个节点由两部分组成,一个是数据域一个是指针域&#xf…

汽车 EDI:博泽 brose EDI 需求分析

brose(博泽)是一家德国汽车零部件制造商,总部位于德国科堡。该公司成立于1908年,至今已有百年历史。brose主要专注于汽车驾驶员控制系统、座椅系统、电动驱动系统和电子技术等领域的开发和生产。作为一家全球化企业,br…

linux修改root密码

Linux修改root密码 红帽系统: 进入开机界面按e。 在linux这行末尾加上rd.break 然后按下ctrlx 按下图输入命令: redhat 即为你想修改的密码。 然后回车等待系统重启。 CentOS7: 前两步和之前一样,然后找到linux16这一行。 在这行末尾…

芯片设计中的功耗挑战和低功耗设计

在早期的IC设计中,关注的参数主要是性能(timing)和面积(area)。EDA工具在满足性能要求的情况下,最小化面积。此时,功耗是一个不怎么被关心的问题。 因为CMOS工艺在相对较低的时钟频率下具有相当低的功耗,漏电流可忽略不计。随着晶…

springboot+vue校园车辆校车调度管理系统_r4le2-

本论文中实现的校车调度管理系统将以用户核心的日常信息维护工作为主,主要涵盖了首页,个人中心,驾驶员管理,车辆信息管理,借调车辆管理,车辆调度管理,车辆运营管理等功能,采用该校车…

浏览器如何捕获元素的hover事件弹出的内容,并进行样式调整修改

项目场景: 最近前端需要重写antd的tab卡片的更多内容弹框,默认的背景色和文本颜色不合适,需要更改。 问题描述 只有鼠标指针放上去后才会显示弹出的内容 直接用审查元素还无法进行获取。 如何用浏览器的开发者工具去捕获这些浮框内容或其他…

js中的图是什么?

图 什么是图? 图是网络结构的抽象模型,是一组由边连接的节点。图可以表示任何二元关系,比如道路、航班等。在 JavaScript 中没有图,但是可以通过 Object 和 Array 来构建图。 常用操作 深度优先遍历广度优先遍历 图的表示法 …

sql内外连接图示

student表数据: idname34name22golitter66kerwin123yh12golemon score表数据: idscore34802298663345100 内连接 1、内连接:俗称左右拼接连接; 2、内连接特点:满足连接条件的才会出现在结果里面; SELECT 查询字段…

第 7 章 集合-----Scala集合继承图

7.1.1 不可变集合继承图 7.1.2 可变集合继承图 7.2.3 不可变数组与可变数组的转换 7.7.6 复杂 WordCount 案例 1)方式一 object TestWordCount {def main(args: Array[String]): Unit {// 第一种方式(不通用)val tupleList List(("H…

WebRTC的认知入门

一、学习目的 当前的音视频聊天功能很普通,社会对这方面的需求也很高,疫情期间的在线问诊模式解决类大量急需就医问诊患者的燃眉之急,我们需要了解WebRTC实现实时音视频聊天功能是如何操作的。 二、概念 什么是WebRTC?WebRTC是 Google 在…