try ai
科普
编辑
分享
反馈
  • 支撑函数:凸几何的对偶视角

支撑函数:凸几何的对偶视角

SciencePedia玻尔百科
  • 支撑函数通过将每个方向映射到集合在该方向上的最大投影,从而唯一地描述一个凸集。
  • 对集合进行的复杂几何运算,例如闵可夫斯基和,在其对应的支撑函数上变成了简单的算术运算。
  • 支撑函数提供了一种对偶视角,允许用包含凸集的超平面来表示它,而非其内部的点。
  • 在优化和控制等应用领域,支撑函数对于不确定性建模、确保鲁棒性和计算安全裕度至关重要。

引言

我们如何才能捕捉一个形状的本质?虽然我们通常将几何对象看作点的集合,但这种方法在处理复杂任务时可能显得笨拙。支撑函数提供了一种革命性的替代方案,一种对偶视角,它不是通过内部有什么来描述一个凸体形状,而是通过它在每个可能方向上延伸的距离来描述。本文旨在解决将复杂几何学转化为更易于管理的代数框架的挑战。在接下来的章节中,我们将首先揭示支撑函数的核心原理和机制,探索它如何将几何运算转化为简单的算术。随后,我们将遍览其广泛的应用和跨学科联系,揭示其在从优化和机器人学到机器学习和材料科学等领域的力量。

原理与机制

想象你站在一个巨大而黑暗的房间里,房间中央有一个凸体——可以把它想象成一块光滑圆润的石头。你有一种特殊的手电筒,能发出一束笔直的光。你的目标是在不直接触摸石头表面的情况下了解它的形状。你会怎么做呢?

你可以站在一个我们称之为原点的固定点,向每个可能的方向照射你的光束。对于你手电筒指向的每个方向,你都可以测量石头沿该光束延伸的“距离”。这个测量值,即石头上最远点在你所选方向上的坐标,就是​​支撑函数​​的精髓。这是一个看似简单却极其强大的想法。

你能走多远?

让我们把这个想法变得更精确一些。我们可以用一个点的数学集合来表示这块凸形石头,我们称之为KKK。我们可以用一个向量,比如说uuu,来表示空间中的任意方向。对于石头KKK内的任意点xxx,点积x⊤ux^\top ux⊤u告诉我们点xxx在由方向uuu定义的直线上投影的距离。要找到整个石头在这个方向上“最远”的延伸范围,我们只需找出KKK中所有点的这个点积的最大可能值。

这个最大值就是集合KKK在方向uuu上的支撑函数,记为hK(u)h_K(u)hK​(u):

hK(u)=sup⁡x∈Kx⊤uh_K(u) = \sup_{x \in K} x^\top uhK​(u)=supx∈K​x⊤u

“上确界”(sup)只是最小上界的另一种说法,对于像我们石头这样的实心物体,它就是最大值。通过收集每个可能方向uuu的这些值,我们创建了一个将方向映射到距离的函数。

让我们来看一个简单的例子。假设我们的“石头”只是二维平面上的单位圆盘,C={y∈R2∣∥y∥2≤1}C = \{y \in \mathbb{R}^2 \mid \|y\|_2 \le 1\}C={y∈R2∣∥y∥2​≤1}。它的支撑函数hC(x)h_C(x)hC​(x)是什么?我们在寻找sup⁡y∈Cy⊤x\sup_{y \in C} y^\top xsupy∈C​y⊤x。著名的柯西-施瓦茨不等式告诉我们,对于任意两个向量,y⊤x≤∥y∥2∥x∥2y^\top x \le \|y\|_2 \|x\|_2y⊤x≤∥y∥2​∥x∥2​。由于我们圆盘中的每个点yyy的长度∥y∥2\|y\|_2∥y∥2​最多为1,我们得到y⊤x≤∥x∥2y^\top x \le \|x\|_2y⊤x≤∥x∥2​。当yyy是与xxx同向的单位向量,即y=x/∥x∥2y = x/\|x\|_2y=x/∥x∥2​时,达到最大值。所以,对于单位圆盘,支撑函数就是方向向量本身的长度:hC(x)=∥x∥2h_C(x) = \|x\|_2hC​(x)=∥x∥2​。这个函数是一个简单的范数,但它完美地编码了一个圆的形状。

洞悉形状的函数

真正的魔力从这里开始。这个函数hK(u)h_K(u)hK​(u)不仅给了我们一些关于集合KKK的信息,它给了我们所有的信息。一个闭凸集的支撑函数唯一地确定了这个集合。

这怎么可能呢?对于任何方向uuu,方程x⊤u=hK(u)x^\top u = h_K(u)x⊤u=hK​(u)定义了一条恰好“接触”我们集合KKK边界的直线(或在3D空间中的一个平面)。这被称为​​支撑超平面​​。现在,想象一下为每一个方向都画出这样一个支撑超平面。原始的凸集KKK正是被所有这些平面所包围的空间区域。在数学上,它是这些平面定义的所有半空间的交集:

K=⋂u≠0{x∈Rn∣x⊤u≤hK(u)}K = \bigcap_{u \neq 0} \{x \in \mathbb{R}^n \mid x^\top u \le h_K(u)\}K=⋂u=0​{x∈Rn∣x⊤u≤hK​(u)}

这是一个深刻的对偶性概念。我们可以用两种完全不同的方式来描述一个形状:要么列出所有在它内部的点(标准的,或“原始”视角),要么描述所有包含它的平面(由支撑函数管理的“对偶”视角)。这种对偶视角不仅仅是数学上的奇趣;它提供了巨大的计算能力,例如,在判断一个形状是否包含在另一个形状之内时。

形状的代数

当我们开始对集合进行运算时,支撑函数的真正威力就显现出来了。许多对集合进行的复杂几何运算,在它们的支撑函数上变成了异常简单的算术运算。

一个基本运算是​​闵可夫斯基和 (Minkowski sum)​​。两个集合AAA和BBB的闵可夫斯基和是它们元素所有可能向量和的集合:A⊕B={a+b∣a∈A,b∈B}A \oplus B = \{a+b \mid a \in A, b \in B\}A⊕B={a+b∣a∈A,b∈B}。这个运算在许多领域都至关重要。在机器人学中,它被用来计算机器人的“构型空间”,以规划避免碰撞的路径。在控制理论中,它描述了当受到加性扰动时,不确定的状态如何随时间演变。

直接计算闵可夫斯基和可能是一场几何噩梦。但它们的支撑函数会发生什么变化呢?答案惊人地优雅:

hA⊕B(u)=hA(u)+hB(u)h_{A \oplus B}(u) = h_A(u) + h_B(u)hA⊕B​(u)=hA​(u)+hB​(u)

两个集合之和的支撑函数就是它们各自支撑函数的和!几何的复杂性消解为简单的加法。

那么反过来呢?如果一个形状AAA被一个集合BBB“增肥”了,我们能恢复原始形状吗?这个运算被称为​​庞特里亚金差 (Pontryagin difference)​​,A⊖B={x∣x+B⊆A}A \ominus B = \{x \mid x+B \subseteq A\}A⊖B={x∣x+B⊆A},它表示可以放置形状BBB并使其完全保持在AAA内部的所有点的集合。这对于计算控制和机器人学中的“安全”区域至关重要。支撑函数再次提供了一个简单的答案:

hA⊖B(u)=hA(u)−hB(u)h_{A \ominus B}(u) = h_A(u) - h_B(u)hA⊖B​(u)=hA​(u)−hB​(u)

另一个有趣的构造是​​差体 (difference body)​​,K−K={x−y∣x,y∈K}K-K = \{x-y \mid x, y \in K\}K−K={x−y∣x,y∈K}。这个集合总是关于原点对称的,它的形状揭示了原始集合KKK在不同方向上的“宽度”信息。它的支撑函数也有一个同样优美的结构:

hK−K(u)=hK(u)+hK(−u)h_{K-K}(u) = h_K(u) + h_K(-u)hK−K​(u)=hK​(u)+hK​(−u)

这种将几何学转化为代数的过程是支撑函数最伟大的馈赠。它让我们能够使用熟悉的算术工具来推理复杂的形状。

函数中编码的几何

支撑函数不仅是一个计算工具;它是一面镜子,在其自身的代数性质中反映了集合的几何性质。

  • ​​对称性:​​ 一个集合KKK何时关于原点对称?这意味着如果一个点xxx在KKK中,那么−x-x−x也必须在KKK中。这对它的支撑函数意味着什么?使用差体的公式,如果KKK是原点对称的,那么K=−KK = -KK=−K,所以K−K=K⊕(−K)=K⊕K=2KK-K = K \oplus (-K) = K \oplus K = 2KK−K=K⊕(−K)=K⊕K=2K。其支撑函数为h2K(u)=2hK(u)h_{2K}(u) = 2h_K(u)h2K​(u)=2hK​(u)。但我们又知道hK−K(u)=hK(u)+hK(−u)h_{K-K}(u) = h_K(u) + h_K(-u)hK−K​(u)=hK​(u)+hK​(−u)。将两者相等得到2hK(u)=hK(u)+hK(−u)2h_K(u) = h_K(u) + h_K(-u)2hK​(u)=hK​(u)+hK​(−u),简化为hK(u)=hK(−u)h_K(u) = h_K(-u)hK​(u)=hK​(−u)。一个集合是原点对称的当且仅当它的支撑函数是偶函数!。

  • ​​形状与体积:​​ 支撑函数甚至可以告诉我们一个物体的确切形状和大小。假设我们给定一个形式为h(u)=u⊤Quh(u) = \sqrt{u^\top Q u}h(u)=u⊤Qu​的支撑函数,其中QQQ是某个正定矩阵。我们已经知道单位球的支撑函数是∥u∥=u⊤Iu\|u\| = \sqrt{u^\top I u}∥u∥=u⊤Iu​。事实证明,线性变换x↦Axx \mapsto Axx↦Ax会将支撑函数变换为hAK(u)=hK(A⊤u)h_{AK}(u) = h_K(A^\top u)hAK​(u)=hK​(A⊤u)。将这些事实结合起来,我们可以推断出我们给定的函数h(u)h(u)h(u)必定是一个椭球体——一个线性变换后的单位球——的支撑函数,其中变换矩阵AAA满足AA⊤=QAA^\top = QAA⊤=Q。我们甚至可以求出这个椭球体的体积,它与AAA的行列式有关,因此与QQQ的行列式的平方根有关。这个函数不仅描述了形状;在非常真实的意义上,它就是这个形状。

  • ​​曲率:​​ 也许最令人惊讶的联系是与曲率的联系。对于平面上一条光滑的闭合凸曲线,其支撑函数p(θ)p(\theta)p(θ)(其中θ\thetaθ是法向量的角度)与其曲率半径ρ(θ)\rho(\theta)ρ(θ)直接相关。该关系由优美而紧凑的公式给出: ρ(θ)=p(θ)+p′′(θ)\rho(\theta) = p(\theta) + p''(\theta)ρ(θ)=p(θ)+p′′(θ) 曲率半径告诉我们曲线在特定点弯曲的程度。这个纯粹的几何量竟然可以通过对支撑函数求二阶导数得到,这是几何世界与微积分世界之间深刻而惊人的联系。

形状的微积分

我们已经看到支撑函数是方向的函数。这自然引出了一个问题:支撑函数的导数告诉我们什么?

对于像支撑函数这样的不可微凸函数,导数的概念被推广为​​次梯度​​。hKh_KhK​在方向uuu处的次梯度是一个满足特定不等式的向量ggg,但其直觉很简单:次梯度是KKK边界上在方向uuu上“最远”的点。这些正是达到hK(u)h_K(u)hK​(u)定义中最大值的点。

∂hK(u)={g∈K∣g⊤u=hK(u)}\partial h_K(u) = \{g \in K \mid g^\top u = h_K(u)\}∂hK​(u)={g∈K∣g⊤u=hK​(u)}

让我们回到单位圆盘的例子。对于给定的方向xxx,圆盘上沿xxx方向最远的点是唯一的边界点x/∥x∥2x/\|x\|_2x/∥x∥2​。这个单点就是支撑函数hC(x)=∥x∥2h_C(x) = \|x\|_2hC​(x)=∥x∥2​的次梯度(在这种情况下也是梯度)。

但如果我们的石头“最远”的部分不是一个点,而是一个平坦的面呢?想象一个多边形。如果你将光垂直照射到它的一条边上,那么该边上的每个点都同样“远”。在这种情况下,所有次梯度的集合——​​次微分​​∂hK(u)\partial h_K(u)∂hK​(u)——不是一个单点,而是被方向向量uuu“照亮”的整个面。支撑函数的微积分为我们提供了一种发现形状的面、边和顶点的方法!

这就引出了最后一个优美的思想:​​极性 (polarity)​​。一个包含原点的集合KKK的极集是另一个凸集K∘K^\circK∘,定义为K∘={y∣y⊤x≤1 for all x∈K}K^\circ = \{y \mid y^\top x \le 1 \text{ for all } x \in K\}K∘={y∣y⊤x≤1 for all x∈K}。这个定义看起来很抽象,但使用支撑函数,它变得异常具体:yyy在极集K∘K^\circK∘中当且仅当hK(y)≤1h_K(y) \le 1hK​(y)≤1。极体就是支撑函数的1-次水平集。极性在集合与其对偶之间建立了一种深刻而对称的关系,这种关系被支撑函数完全阐明了。

从一个简单的问题——“你能走多远?”——支撑函数展开了一套丰富而优美的理论。它像一座桥梁,一个神奇的透镜,让我们能通过代数和微积分的眼睛来看待几何。它将形状转化为函数,揭示了复杂凸形式世界中隐藏的统一性和简单性。

应用与跨学科联系

我们已经探索了支撑函数的优雅机制,这是一个通过在每个方向上的“影子”来刻画凸集的工具。但它有什么用呢?这仅仅是凸几何画廊里一件巧妙的抽象艺术品吗?远非如此。支撑函数对科学家和工程师来说,简直是一把瑞士军刀。它是一个实用的工具,让我们能够驾驭无限复杂的问题,构建能够抵御不确定性的鲁棒系统,并揭示看似不相关的领域之间令人惊讶和美丽的联系。通过选择不是用它包含的点来描述一个形状,而是用它延伸的距离来描述,我们获得了一种新的力量。现在,让我们踏上旅程,去见证这种力量的实际应用。

优化的引擎:驾驭无限与对偶博弈

优化的核心是从一组选择中做出最佳决策。但如果我们的决策后果不确定呢?想象一下,你正在管理一个投资组合,你的资产回报并不精确可知。你只知道回报向量aaa会落在某个“可能性集合”,一个凸不确定性集UUU之内。如果你选择一个投资组合分配xxx,你最坏情况下的结果是什么?它是最大可能的损失(或最小的收益),这可以通过在UUU中搜索所有可能的情景来找到。这种对最坏情况的搜索在数学上等同于计算不确定性集的支撑函数:sup⁡a∈Ua⊤x=σU(x)\sup_{a \in U} a^{\top} x = \sigma_{U}(x)supa∈U​a⊤x=σU​(x)。这个抽象的定义突然变成了一个具体的风险管理工具,将一个令人生畏的“如果……会怎样”问题转化为一个函数的求值。

这个想法以一种真正非凡的方式扩展。假设你正在设计一座桥梁,必须确保它在连续范围的载荷条件下的安全——也许是所有可能的风角或交通分布。你现在面临的不是少数几个约束,而是无限多个。这是半无限规划的领域,听起来极其困难。然而,如果这些无限的约束可以被参数化,它们通常会呈现max⁡u∈Ua(u)⊤x≤1\max_{u \in \mathcal{U}} a(u)^{\top}x \le 1maxu∈U​a(u)⊤x≤1的形式。支撑函数在此施展了压缩的奇迹:这整个无限系列的等式坍缩成一个单一、优雅的条件:σC(x)≤1\sigma_{C}(x) \le 1σC​(x)≤1,其中CCC是所有向量a(u)a(u)a(u)的凸包。一个不可能检查的无限列表变成了一个关于函数值的简单问题。

然而,支撑函数的真正魔力是通过对偶性的镜头揭示的。在优化中,每个问题都有一个“对偶”问题,一个自身的影子版本,它通常提供深刻的洞察和计算优势。支撑函数是解锁这个对偶世界的钥匙。考虑一个几何任务:在一个凸集CCC中找到离集外一点yyy最近的点。这是一个约束在集合CCC上的最小化问题。其对偶形式,惊人地,变成了一个无约束的最大化问题,其目标函数由支撑函数σC\sigma_{C}σC​构建而成。这是Fenchel-Rockafellar对偶性的一种体现,这是一个深刻的原理,其中支撑函数被揭示为集合的指示函数——一个在集合内部为零,外部为无穷大的函数——的*凸共轭*。这是一种深刻的对称性:指示函数从“内部”描述集合,而支撑函数从“外部”描述它。

现代算法:信号处理与机器学习

机器学习和大规模数据分析的兴起建立在新一代快速、迭代的优化算法之上。其中许多算法,如近端梯度法,通过将复杂问题分解为一系列简单步骤来工作。但与支撑函数相关的“简单步骤”是什么?

在这里,我们发现了另一个被称为莫罗恒等式 (Moreau's identity) 的数学炼金术。它建立了一个优美而令人惊讶的关系:支撑函数的“近端算子”,这些算法中的一个关键构建块,可以直接通过对基础凸集的几何投影来计算。这给了算法设计者一个强大的选择:如果在一个集合CCC上进行投影很容易,那么用它的支撑函数σC\sigma_CσC​进行优化也很容易,反之亦然。几何上的投影操作与涉及支撑函数的分析操作之间的这种互惠关系是现代凸优化的基石。

这种对偶性再次出现在从高维数据中寻找简单、可解释模型的探索中。像Lasso和Group Lasso范数这样的技术是寻找“稀疏”解——即大多数分量为零的解——不可或缺的工具。事实证明,这些范数可以被看作是某些凸集(它们的单位球)的规范函数。而这种范数的对偶是什么呢?它再次是那个单位球的支撑函数。这不仅仅是一个理论上的奇趣;这种对偶关系对于分析这些方法的统计特性和设计高效的求解算法至关重要。

此外,任何部署在现实世界中的机器学习模型都必须是鲁棒的。即使其输入被噪声破坏或被对手故意操纵,它也必须正常工作。我们可以通过假设未知扰动uuu位于一个凸集UUU中来对此建模。一个鲁棒的估计过程可能会被表述为找到一个与测量值yyy对于某个允许的扰动是一致的信号xxx,即y−Ax∈Uy-Ax \in Uy−Ax∈U。这种鲁棒公式的对偶自然地涉及到支撑函数σU\sigma_UσU​。更好的是,我们可以通过组合简单的噪声源来为复杂的不确定性建模。例如,我们可以对混合的背景相关噪声(一个椭球体)和稀疏的尖峰误差(一个超立方体)进行建模。由此产生的不确定性集是它们的闵可夫斯基和,而支撑函数的表现完美:它就是各个支撑函数的和。这使我们能够设计出对丰富而现实的潜在误差景观具有鲁棒性的模型。

控制与几何:规划一条安全路径

让我们从数据转向动力学。想象一下,你正在为一辆自动驾驶汽车或一个机械臂编程。一个常见的策略是模型预测控制(MPC),其中系统在短暂的未来时间范围内重复规划一条最优轨迹。它假设世界是完美的,并计算一条“标称”路径。但真实世界并不完美;存在不可预测的扰动,如阵风、传感器噪声或摩擦。系统的实际状态xkx_kxk​将不可避免地偏离计划的标称状态x^k\hat{x}_kx^k​。

我们如何保证安全?我们如何确保机械臂尽管有这些扰动也绝不会与障碍物碰撞?在预测范围内所有可能的偏差集合在标称路径周围形成一个“误差管”。这个管是一个动态对象,随着系统方程的演化而增长和扭曲。实际上,它是扰动集经系统动力学随时间变换后的闵可夫斯基和。为了保证安全,我们必须确保整个误差管都避开任何障碍物。这可以通过“收紧”对标称路径的约束来实现——实质上,是计划与障碍物保持更远的距离。

我们必须将约束收紧多少?答案以一种优雅的方式,由误差管的支撑函数给出。支撑函数关于线性变换和闵可夫斯基和的美妙简单性质,使我们能够处理这个复杂、演变的误差管,并以一种清晰、解析的方式计算所需的安全裕度。一个在连续可能的未来下确保安全的艰巨问题,变成了一个可处理的计算。

从材料到计算:描述与重建形状

支撑函数的影响延伸到物理科学和纯粹的几何世界。在材料力学中,固体从弹性变形到永久塑性流动的转变由主应力空间中的一个“屈服面”决定。对于许多各向同性材料,这个表面是一个凸集,其形状决定了材料在不同类型载荷下的强度。材料与给定应力状态的相互作用,由该屈服面的支撑函数捕捉。此外,材料表现出凸性的物理要求,直接转化为对该表面曲率的数学条件——这是物理定律与微分几何之间的一座美丽桥梁。

最后,让我们考虑最根本的几何问题:我们如何描述一个形状?一种方法是列出其顶点的坐标。这是“原始”视角。对偶视角是用其支撑半平面来描述形状。想象一个3D扫描仪,它不看点,而是从每个可能的角度测量一个物体的“宽度”。这组宽度数据无非是在方向网格上求值的支撑函数。仅凭这些数据,我们就可以将原始形状重建为由这些测量值定义的所有半平面的交集[@problem-id:3224294]。这种重建的精度取决于我们对角度的采样密度以及物体的“弯曲”程度。这种对偶性——一个凸集既是其点的凸包,也是其支撑半平面的交集——被支撑函数具体化了,它充当了这两种互补描述之间的桥梁。同样的原理甚至在统计学中也找到了用武之地,在某些模拟方法中,在一个多胞体上寻找概率分布的峰值——一个关键步骤——等同于在特定方向上计算该多胞体的支撑函数。

从优化到控制,从机器学习到材料科学,支撑函数一次又一次地作为一条统一的线索出现。它证明了单一、优雅的思想如何能提供清晰度、计算能力,以及对科学领域隐藏的统一性的更深层次的欣赏。