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

学习次模函数-第1章 引言

许多组合优化问题可以被转换为集合函数的最小化,集合函数是在给定基集合V的子集的集合上定义的函数。同样地,它们可以被定义为超立方体的顶点上的函数,即\left \{ 0,1 \right \}^p,其中p是基集合V的基数-它们通常被称为伪布尔函数[27]。在这些集合函数中,次模函数起着重要的作用,类似于向量空间上的凸函数,因为在实际问题中出现的许多函数都是次模函数或其轻微的修改的,在计算机科学和应用数学的许多领域中有应用,例如机器学习[125,157,117,124],计算机视觉[31,96],运筹学[98,182],电气网络[162]或经济学[203]。由于次模函数可以精确最小化,并且在某些保证下近似地最大化,因此在多项式时间内,它们很容易为它们所应用的所有众多问题带来有效的算法。它们也出现在理论计算机的几个领域中科学,如拟阵理论[189]。

然而,对次模函数的兴趣并不限于离散优化问题。 事实上,次模函数的丰富结构及其通过Lovász扩展与凸分析的联系[135]和各种相关的多面体使它们特别适用于组合优化之外的问题,即作为信号处理和机器学习问题中的正则化器[38,7]。

实际上,许多连续优化问题表现出潜在的离散结构(例如, 基于链、树或更一般的图)和次模函数提供了有效和通用的工具来捕获这样的组合结构。

在这本专著中,次模函数的理论以一种独立的方式呈现,所有结果都是从机器学习中常见的凸分析的第一原理证明的,而不是依赖于组合优化和传统的理论计算机科学概念,如拟阵或流(见,例如, [72]有关这些方法的参考书)。 此外,我们提出的算法是基于传统的凸优化算法,如单纯形法线性规划,二次规划的有效集方法,椭球方法,切割平面,和条件梯度。 这些将详细介绍,特别是在次模函数最小化及其各种连续扩展的背景下。 假设具有良好的凸分析知识(见,例如, [30,28]),并在附录A中对重要概念进行了简短的回顾-更多详细信息,请见,例如, [95,第30、28、185页]。

各章大纲。分为几个章节,总结如下(在目录中,第一次阅读时可以跳过的章节用星星标记):

(1)定义:在第二章中,我们给予了次模函数及其相关多面体的不同定义,特别是基多面体和次模多面体,它们在次模分析中是至关重要的,因为许多算法和模型都可以用这些多面体自然地表示。

(2)Lovász扩展:在第三章中,我们将Lovász扩展定义为从定义在\left \{ 0,1 \right \}^p上的函数到定义在[0,1]^p上的函数的扩展(然后是\mathbb{R}^p),并给予它的主要性质,特别是给出了次模分析中的关键结果:Lovász扩展是凸的当且仅当集函数是次模的;此外,最小化次模集函数F等价于最小化[0,1]^p上的Lovász扩展。这意味着次模函数最小化可以在多项式时间内解决。最后,通过所谓的“贪婪算法”建立了Lovász扩展和次模多面体之间的联系:Lovász扩展是基多面体的支撑函数,并且可以以封闭形式计算。

(3)多面体:第四章将进一步研究伴随多面体,计算线性函数的支撑函数和伴随极大化子,我们还详细讨论了这种多面体的面结构,这在第五章中与Lovász扩展的稀疏诱导性质相关时将很有用。

(4)次模罚函数的凸松弛:虽然次模函数可以直接使用(用于集函数的最小化或最大化),但我们在第5章中展示了如何使用它们来惩罚向量的支撑集或水平集,由此产生的混合组合/连续优化问题可以使用Lovász扩展自然地松弛为凸优化问题。

(5)示例如下:在第6章中,我们介绍了次模函数的经典例子,以及在机器学习中的几个应用,特别是割,集合覆盖,网络流,熵,谱函数和拟阵。

(6)非光滑凸优化:在第七章中,我们回顾了经典的迭代算法,如次梯度法、椭球法、单纯法、割平面法、有效集法和条件梯度法,并特别注意在适用的情况下提供这些算法的原始/对偶解释。

(7)可分离优化-分析:在第八章中,我们考虑了由Lovász扩展w \mapsto f(w)正则化的可分优化问题,即形式为min_{w\in \mathbb{R}^p}{\sum_{k\in V}\psi _k(w_k)+f(w)}的问题,并证明了这如何等价于一系列次模函数极小化问题。这是与次模函数相关的组合优化问题和凸优化问题之间的关键理论联系,这将在后面的章节中使用。

(8)可分离优化-算法:在第9章中,我们提出了两套可分离优化问题的算法。 第一个算法是一个精确的算法,它依赖于一个有效的次模函数最小化算法的可用性,而第二组算法是基于现有的凸优化迭代算法,其中一些来与在线和离线的理论保证。 我们考虑有效集方法(“最小范数”算法)和条件梯度方法。

(9)次模函数最小化:在第10章中,我们介绍了各种次模函数最小化的方法。 我们简要介绍了精确次模函数最小化的组合算法,并专注于更深入地使用特定的凸优化问题,可以迭代求解,以获得近似或精确解次模函数最小化,有时理论保证和近似最优性证书。 我们考虑了次梯度法,椭球法,单纯形算法和解析中心割平面。 我们还展示了第8章和第9章中的可分离优化问题如何用于次模函数最小化。 第12章将对这些方法进行实证比较。

(10)次模块优化问题:在第11章中,我们提出了其他组合优化问题,可以部分解决使用次模分析,如次模函数最大化和次模函数的差异的优化,并将这些问题与非凸优化问题的次模多面体。 虽然这些问题通常不能在多项式时间内解决,但许多算法都具有基于次模性的近似保证。

(11)实验:在第12章中,我们提供了前面描述的优化算法的例子,用于次模函数最小化,以及凸优化问题(可分或不可分)。 所有这些实验的Matlab代码可以在http://www.di.ens.fr/~fbach/submodular/上找到。

在附录A中,我们回顾了凸分析的相关概念(如Fenchel对偶、对偶范数、规范函数和极集),而在附录B中,我们给出了与次模函数相关的几个结果,如保持次模性的运算。

已经有几本关于同一主题的书籍和专著文章,本专著中提供的材料依赖于这些[72,162,126]。 然而,为了以最简单的方式呈现材料,也使用了相关研究论文的思想,并更加强调凸分析和优化。

符号。 我们考虑集合V=\{1,2,3,\cdots,p \},其幂集为2^V,由V2^p个子集组成。 给定一个向量s\in{\mathbb{R}^p}s也表示定义为s(A)=\sum_{k\in A}s_k的模集函数。此外,A\subseteq B意味着AB的子集,可能等于B。 我们表示为\left | A \right |集合A的基数,并且,对于A\subseteq V=\{1,2,3,\cdots,p\}1_A\in \mathbb{R}^p表示集合A的指示向量。 若w\in \mathbb{R}^p,\alpha\in \mathbb{R},则\{w\geqslant \alpha\}表示V=\{1,2,3,\cdots,p\}定义为\{k\in V,w_k\geqslant \alpha\},我们称之为弱(或强)\alpha-超水平集。 类似地,如果v\in\mathbb{R}^p,我们记为\{w\geq v\}=\{k\in V,w_k\geqslant v_k\}

对于q\in{[1,\infty]},我们用\left \| w \right \|_q表示wq-范数,定义为\left \| w \right \|_q=(\sum_{k\in V}{\left | w_k \right |^q})^{1/q},其中q\in{[1,\infty)}\left \| w \right \|_\infty=max_{k\in V}\left | w_k \right |。最后,我们用\mathbb{R}_+表示非负实数集,用\mathbb{R}^*表示非零实数集,用\mathbb{R}_+^*表示严格正实数集。

相关文章:

  • 蓝桥杯算法基础(28)11道关于字符串的小题
  • gateway网关指定路由响应超时时间
  • C#宿舍信息管理系统
  • 基于深度学习的面部情绪识别算法仿真与分析
  • 【LAMMPS学习】三、构建LAMMPS(8)构建 LAMMPS 文档
  • 《python编程快速上手——让繁琐工作自动化》实践项目——逗号代码
  • 微信小程序多图列表页面性能问题为什么会出现?如何解决?
  • Linux环境JMeter脚本性能测试、easyNmon生成监控报告
  • Spring Boot 实现定时任务动态管理
  • web渗透测试漏洞流程:红队攻防流程详细大纲
  • 文献学习-22-Surgical-VQLA:具有门控视觉语言嵌入的转换器,用于机器人手术中的视觉问题本地化回答
  • 【MySQL】3.1MySQL索引的介绍
  • 腾讯云COS - 前端上传文件到 COS 跨域问题
  • 【Lazy ORM 框架学习】
  • 蓝牙HFP协议推荐的语音丢包补偿算法浮点实现的定点化
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • [译]前端离线指南(上)
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 【刷算法】从上往下打印二叉树
  • 2017届校招提前批面试回顾
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • CentOS6 编译安装 redis-3.2.3
  • CSS 提示工具(Tooltip)
  • CSS盒模型深入
  • java2019面试题北京
  • JavaScript 奇技淫巧
  • Java应用性能调优
  • js继承的实现方法
  • miaov-React 最佳入门
  • Netty源码解析1-Buffer
  • nginx 负载服务器优化
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • SpringCloud集成分布式事务LCN (一)
  • tweak 支持第三方库
  • 仿天猫超市收藏抛物线动画工具库
  • 工作中总结前端开发流程--vue项目
  • 开源SQL-on-Hadoop系统一览
  • # Java NIO(一)FileChannel
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • (5)STL算法之复制
  • (TOJ2804)Even? Odd?
  • (ZT)薛涌:谈贫说富
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (循环依赖问题)学习spring的第九天
  • (原創) 未来三学期想要修的课 (日記)
  • (转)母版页和相对路径
  • .Net 6.0 处理跨域的方式
  • .NET NPOI导出Excel详解
  • .net 中viewstate的原理和使用
  • .NET中两种OCR方式对比
  • ??myeclipse+tomcat
  • @configuration注解_2w字长文给你讲透了配置类为什么要添加 @Configuration注解
  • [] 与 [[]], -gt 与 > 的比较