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

2024-03-25 19:12
文章标签 函数 学习 引言 次模

本文主要是介绍学习次模函数-第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}_+^*表示严格正实数集。

这篇关于学习次模函数-第1章 引言的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/845979

相关文章

MySQL 日期时间格式化函数 DATE_FORMAT() 的使用示例详解

《MySQL日期时间格式化函数DATE_FORMAT()的使用示例详解》`DATE_FORMAT()`是MySQL中用于格式化日期时间的函数,本文详细介绍了其语法、格式化字符串的含义以及常见日期... 目录一、DATE_FORMAT()语法二、格式化字符串详解三、常见日期时间格式组合四、业务场景五、总结一、

golang panic 函数用法示例详解

《golangpanic函数用法示例详解》在Go语言中,panic用于触发不可恢复的错误,终止函数执行并逐层向上触发defer,最终若未被recover捕获,程序会崩溃,recover用于在def... 目录1. panic 的作用2. 基本用法3. recover 的使用规则4. 错误处理建议5. 常见错

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

Java function函数式接口的使用方法与实例

《Javafunction函数式接口的使用方法与实例》:本文主要介绍Javafunction函数式接口的使用方法与实例,函数式接口如一支未完成的诗篇,用Lambda表达式作韵脚,将代码的机械美感... 目录引言-当代码遇见诗性一、函数式接口的生物学解构1.1 函数式接口的基因密码1.2 六大核心接口的形态学

Oracle的to_date()函数详解

《Oracle的to_date()函数详解》Oracle的to_date()函数用于日期格式转换,需要注意Oracle中不区分大小写的MM和mm格式代码,应使用mi代替分钟,此外,Oracle还支持毫... 目录oracle的to_date()函数一.在使用Oracle的to_date函数来做日期转换二.日

C++11的函数包装器std::function使用示例

《C++11的函数包装器std::function使用示例》C++11引入的std::function是最常用的函数包装器,它可以存储任何可调用对象并提供统一的调用接口,以下是关于函数包装器的详细讲解... 目录一、std::function 的基本用法1. 基本语法二、如何使用 std::function

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert