对偶性是我们研究凸优化问题的重要工具, 在优化和算法设计等领域应用广泛. 本文将以几何直观的方式较为自然的引入对偶性, 并且证明一些比较重要的对偶定理.
基本定义
设 V 是一个线性空间, 扩展实数 R:=R∪{+∞,−∞}, 为了方便我们使用如下的凸函数定义:
我们称 f:V→R 是凸函数当且仅当:
∀u,v∈V,λ∈[0,1],f(λu+(1−λ)v)≤λf(u)+(1−λ)f(v).(1)
上式只在 u 和 v 不是不同号的无穷大时作要求.
我们定义函数 f 的图像 (英文: epigraph) 是集合 epif:={(u,a)∈V×R:f(u)≤a}. 注意这里我们并不考虑 ±∞.
证明. 由于 “仅当” 的方向比较简单, 下面只证 “当” 的方向.
任取 u,v∈V,λ∈[0,1]. 如果 f(u) 或 f(v) 为 +∞, (1) 式明显成立, 否则取实数 a≥f(u),b≥f(v), 由于 epif 是凸集, λ(u,a)+(1−λ)(v,b)∈epif, 于是:
f(λu+(1−λ)v)≤λa+(1−λ)b(2)
如果
f(u) 和
f(v) 不是
−∞ 令
a=f(u),b=f(v) 即可, 否则令
a,b→−∞.
从而, 凸集 epif 的一个截面 {u∈V:f(u)≤a} 也是凸集. 反过来, 若 S 是凸集, 其示性函数 indS(x)={0+∞x∈Sx∈/S 也是凸函数.
凸优化问题是指在凸集 S⊆V 上求解凸函数 f 的最小值 (确切地说, infx∈Sf(x)) . 由上面的讨论, 我们可以只考虑优化问题 inf{f(x):g(x)≤0}, 其中 f,g 都是 V 上的凸函数.
凸集的对偶
后面的讨论中, 我们总假设 V 是 Banach 空间, 记 V∗ 是 V 的对偶空间, 即 V 上的连续线性函数集合配备算子范数.
对于 m∗∈V∗,α∈R, 我们把 x↦m∗(x)−α 称为一个仿射函数, m∗ 和 α 分别是斜率和截距, 集合 {x∈V:m∗(x)−α=0} 则是超平面; 相应的, {x∈V:m∗(x)−α≤0} 则是半平面. 我们不加区分的使用这几个词.
对于两个不交的凸集, 我们总可以用一个超平面将它们分离开, 于是有下面的定理.
令 A,B 是 V 上两个不交的非空凸子集, 存在不同时为 0 的 m∗,α 使得:
∀x∈A,y∈B,m∗(x)−α≥0,m∗(y)−α≤0
注意两个等号都是取得到的, 考虑 V=R2, A={(x,y):x>0}∪{(0,y):y>0}, B=A. 对两个闭子集, 则可以建立严格的分离, 但我们不需要.
该定理的完整证明需要许多铺垫且与主题无关, 我们难以收录, 读者可在任何泛函分析教材上找到, 也可参考 Hahn–Banach theorem. Hilbert 空间的证明可以见维基百科 (另外, 我们知道 Rn 上的线性映射都可以表为内积) .
下面的命题是上述定理的简单推论:
对于闭的凸集 S, 所有包含 S 的半平面之交 aff(S) 恰好为 S.
证明. 显然
S⊆aff(S). 若
x∈/S, 则有包含
x 的小球
Bε(x) 与
S 不交, 对
Bε(x) 和
S 使用定理 2.2 得到分离超平面
m∗(x)−α=0. 该仿射函数在
x 上的取值不可能是
0, 否则以
x 为原点其是非零线性函数, 在球内取值有正有负, 与分离的同号要求相悖. 从而
x 同样不在
aff(S) 内.
命题 2.3 给我们这样的启发: 为了研究凸集, 我们可以转而研究包含它的所有超平面, 后者包含了前者的全部信息. 这一思想是所谓的对偶原理的核心.
共轭函数
现在, 我们考虑包含凸函数 f 的图像 epif 的半平面 {(x,y)∈V×R:m∗(x)−α≤y}, 需满足:
∀x∈V,m∗(x)−α≤f(x)
这也就是:
∀x∈V,α≥m∗(x)−f(x)
我们显然只用考虑最紧的那些半平面, 这使得如下定义顺理成章:
f 的共轭函数 f∗:V∗→R 定义为:
∀m∗∈V∗,f∗(m∗)=x∈Vsupm∗(x)−f(x)(3)
有了 “对偶”、“共轭” 的暗示, 下面的关系成立也并不奇怪:
设 id:V→V∗∗ 是 V 与 V∗∗ 的自然保距同构. 如果 f 闭 (即 epif 闭) , 那么 f=f∗∗∘id.
证明. 我们只需证 epif=epi(f∗∗∘id).
依定义,
∀n∈V,f∗∗(id(n))=m∗∈V∗supid(n)(m∗)−f∗(m∗)=m∗∈V∗supm∗(n)−x∈Vsup(m∗(x)−f(x))=m∗∈V∗supx∈Vinfm∗(n−x)+f(x)≤f(n)
这说明 epif⊆epi(f∗∗∘id). 由命题 2.3, aff(epif)=epif, 故只需证 epi(f∗∗∘id)⊆aff(epif).
任取满足 ∀x∈V,l∗(x)−α≤f(x) 的超平面, 需证 l∗(n)−α≤f∗∗(id(n)), 在 sup 号中取 m∗=l∗ 归约到证明:
⟺⟺l∗(n)−α≤x∈Vinfl∗(n−x)+f(x)−α≤x∈Vinff(x)−l∗(x)x∈Vinff(x)−(l∗(x)−α)≥0
优化问题的对偶
读者或许已经知道 (我们也将会提及) , 同一优化问题的不同写法会导致对偶问题不同, 实际上对偶问题的确定需要我们指定一个扰动方式.
对两个 Banach 空间 X,Y, 有函数 φ:X×Y→R, 优化目标是 infx∈Xφ(x,0), 那么扰动后的问题便是 h(y)=infx∈Xφ(x,y), 而对偶问题, 正是求 h∗∗(0). 如果 h 是凸函数且闭, 那么由命题 3.2 h∗∗(0)=h(0), 这叫做强对偶原理, 否则只能得到 h∗∗(0)≥h(0) (命题 3.2 证明的前半段) , 这叫做弱对偶原理. 此时 h∗∗(0)−h(0) 被叫做对偶间隙 (英文: duality gap) .
先处理一下 h 的凸性. 至于闭性 (约等于在值不取无穷部分的连续性) 则比较复杂, 后面再说.
证明. 对 y1,y2∈Y 和 λ∈[0,1], 我们必须证明:
x∈Xinfφ(x,λy1+(1−λ)y2)≤λx∈Xinfφ(x,y1)+(1−λ)x∈Xinfφ(x,y2)
上式的右边如果是 +∞ 或无定义, 没什么好证明的. 否则任取 h(y1)<a<+∞,h(y2)<b<+∞, 存在 h(y1)≤φ(x,y1)<a,h(y2)≤φ(v,y2)<b, 从而:
≤≤<x∈Xinfφ(x,λy1+(1−λ)y2)φ(λu+(1−λ)v,λy1+(1−λ)y2)λφ(u,y1)+(1−λ)φ(v,y2)λa+(1−λ)b
令 a→h(y1),b→h(y2) 即证.
我们写出对偶问题的具体形式:
h∗∗(0)=m∗∈Y∗supy∈Vinfh(y)−m∗(y)=m∗∈Y∗supy∈Vinfx∈Vinfφ(x,y)−m∗(y)=m∗∈Y∗sup−φ∗(0,m∗)
总结一下:
优化问题 infx∈Xφ(x,0) 的对偶问题是 supm∗∈Y∗−φ∗(0,m∗).
以下命题正当化了 “对偶” 一词的使用.
如果 V 自反, φ 凸且闭, 优化问题 supm∗∈Y∗−φ∗(0,m∗) 的对偶问题是 infx∈Xφ(x,0).
证明. 为了让对偶问题有定义, 我们改写成
−infm∗∈Y∗φ∗(0,m∗), 对偶后就是
supm∗∗∈X∗∗φ∗∗(m∗∗,0), 由命题 3.2 立得.
Lagrange 对偶
我们现在讨论优化问题 inf{f(x):g(x)≤0}, 其中 f:X→R,g:X→Y, Y 是元素为 I→R 映射的实 Banach 空间, 这里 g 的含义是一族限制的交, 这些限制以 I 为指标集.
扰动方式很直接: inf{f(x):g(x)+y≤0}. 于是定义 φ(x,y)={f(x)+∞g(x)+y≤0otherwise, 计算 −φ∗(0,y∗):
−φ∗(0,y∗)=−g(x)+q≤0supy∗(q)−f(x)=−x∈X,q≥0supy∗(−g(x)−q)−f(x)=x∈X,q≥0inff(x)+y∗(g(x))+y∗(q)=x∈Xinff(x)+y∗(g(x))+q≥0infy∗(q)
注意里面的 inf 号如果 y∗≥0 不成立 (y∗≥0 是指 ∀q≥0,y∗(q)≥0) , 可以取 q 使得 q(y)→−∞, 最终得到:
y∗∈Y∗sup−φ∗(0,y∗)=y∗≥0supx∈Xinff(x)+y∗(g(x))(4)
上面的形式相信读者并不陌生: y∗ 便是所谓的 Lagrange 乘数. 处理形如 g(x)=0 的限制则拆成 g(x)≤0 和 −g(x)≤0, 重算一遍:
−φ∗(0,y∗,z∗)=−g(x)+q≤0,−g(x)+p≤0supy∗(q)+z∗(p)−f(x)=−x∈X,p,q≥0supy∗(−g(x)−q)+z∗(g(x)−p)−f(x)=x∈X,p,q≥0inff(x)+(y∗−z∗)(g(x))+y∗(q)+z∗(p)=x∈Xinff(x)+(y∗−z∗)(g(x))+p,q≥0infy∗(q)+z∗(p)于是:
y∗,z∗∈Y∗sup−φ∗(0,y∗,z∗)=y∗,z∗≥0supx∈Xinff(x)+(y∗−z∗)(g(x))=y∗∈Y∗supx∈Xinff(x)+y∗(g(x))
最后一步是由于 Y∗ 中每个元素都能拆成两个非负元素之差: y∗=∥y∗∥−(∥y∗∥−y∗).
为了使用命题 3.2, 我们需要验证两个条件. 首先 f 和 g 凸时, φ 的凸性等价于 {(x,y):g(x)+y∗≤0} 是凸集, 由 g(x)+y∗ 的凸性立得. 现在整理成如下定理:
对于凸函数 f 和 g, 若扰动函数 h(y)=infg(x)+y≤0f(x) 在某个包含 0 的邻域上连续, 则成立:
g(x)≤0inff(x)=y∗≥0supx∈Xinff(x)+y∗(g(x))(5)
请注意, f,g 再光滑都不能推出 h 连续, 事实上 h 的连续性是优化问题本身的正则性. 如果 g 是一个局部的同胚, 即 Y 的包含 0 的开集和 X 中的一个开集之间的连续双射, 那么 h(y)=infx+y≤0f(g−1(x)) 自然连续. 然而, 如果我们的限制有 (譬如说) 很大的冗余性, 一些限制必须取到 0, 那么将 g 扰动一下就一定会远离最小值, h 不可能连续, 不过我们也不是没有办法. 我们考虑 (5) 式左边如果在 x∗ 处取到最小值, 若向量 g(x∗) 中已经有一些限制是紧的 (即取到 0) , 无法再扰动, 我们可以进入不紧的那些限制构成的子空间扰动, 这样我们便可能继续使用定理 5.1.
下面看几个经典例子.
线性规划是指 f 和 g 都是仿射函数的情形, 即 f(x)=c∗(x),g(x)=A(x)+b (f 的常数没多少意义) , 其中 c∗∈X∗,b∈Y, A:X→Y 是连续线性映射.
回忆对偶映射 A∗:Y∗→X∗ 的定义: A∗(y∗)(x)=y∗(A(x)).
我们化简对偶问题:
===y∗≥0supx∈Xinff(x)+y∗(g(x))y∗≥0supx∈Xinfc∗(x)+y∗(A(x))+y∗(b)y∗≥0supy∗(b)+x∈Xinf(A∗(y∗)+c∗)(x)y∗≥0,A∗(y∗)+c∗=0supy∗(b)
最后一步是因为当仿射 A∗(y∗)+c∗ 不为 0 时, 值必定无下界. 如果原始问题里有 x≥0 的要求, 这里自然就是 A∗(y∗)+c∗≥0.
给定复 Hilbert 空间 H 上的连续线性算子 A:H→C, 求解优化问题 ∥A∥op=sup{∥Ax∥2:∥x∥2≤1}.
改写成 −inf{−⟨Ax,Ax⟩:⟨x,x⟩−1≤0}, 计算对偶问题 (注意需要验证凸且连续) :
=α≥0supx∈Rninf−⟨Ax,Ax⟩+α(⟨x,x⟩−1)α≥0sup−α+x∈Rninf⟨(αI−A∗A)x,x⟩
当 αI−A∗A≥0 不成立时, 里面的 inf 号是 −∞, 因此答案就是:
=−αI−A∗A≥0sup−ααI−A∗A≥0infα
集合 {α∈R:αI−A∗A≥0} 是 R 的一个后部. 由连续性, 取到该 inf 的 ≥ 必然不严格, 即 αI−A∗A 不是单射, 或者说 α 是 A∗A 的特征值. 这样 ∥A∥op 就是 A∗A 的最小特征值开根号.
考虑有限维复 Hilbert 空间 H, 设 B={x∈H:∥x∥2=1} 是 H 上的单位球, 在例 5.2 中取 X 是 H 上所有自伴算子组成的有限维实 Hilbert 空间, Y=C(B) 是紧集 B 上的连续函数组成的 Banach 空间 (配备 L∞ 范数) . ∀A∈X,x∈B,g(A)(x)=⟨−Ax,x⟩, 容易验证 g 的确是 X→Y 的连续线性映射.
除了由这里 g(A)≤0 给出的 A≥O 的限制外, 还可以加一些 A 的线性限制 ⟨Li,A⟩+bi≤0,i=1,2,…,m, 现在对偶:
===y∗≥0,z≥0supA∈Xinf⟨C,A⟩+y∗(g(A))+⟨z,b⟩+i=1∑mzi⟨Li,A⟩y∗≥0,z≥0sup⟨z,b⟩+A∈Xinf((C+i=1∑mziLi)∗+(y∗∘g))(A)sup{⟨z,b⟩:z≥0,T(z):=C+i=1∑mziLi,∃y∗≥0,∀A∈X,⟨T(z),A⟩=y∗(−g(A))}sup{⟨z,b⟩:z≥0,C+i=1∑mziLi≥O}
最后一步的集合相等关系的解释: 若 T(z) 非半正定, 可以找到与 T(z) 交换的半正定的 A 使得内积为负, 然而等式右边非负; 若 T(z)≥O, 设其谱分解为 T(z)=∑i=1nλivivi∗, 则 ⟨T(z),A⟩=∑i=1nλi⟨Avi,vi⟩. 那么我们定义 y∗(f)=∑i=1nλif(vi), 则容易验证 y∗ 是 B 上连续线性映射, y∗≥0, 且 y∗(−g(A))=⟨T(z),A⟩.
Minimax 定理
我们仍然让底空间是 X×Y, 其中 X 和 Y 是自反的 Banach 空间. 为了避免琐碎的正则性讨论喧宾夺主, 我们考虑一个较弱的版本:
令 K⊂X 和 C⊂Y 是两个紧凸集, 若连续函数 f:X×Y→R 满足:
1. | ∀y∈C, f(⋅,y) 是凸函数, |
2. | ∀x∈K, f(x,⋅) 是凹函数, |
那么成立:
xminymaxf(x,y)=ymaxxminf(x,y).
和弱对偶性类似, 我们有以下的命题:
对任意实值函数 f, 成立:
xinfysupf(x,y)≤ysupxinff(x,y)
证明. ⇔xinfysupf(x,y)≤ysupxinff(x,y)∀x0,y0,ysupf(x0,y)≤xinff(x,y0)
而
supyf(x0,y)≥f(x0,y0)≥infxf(x,y0).
容易验证, maxyf(x,y) 是连续凸函数, minxf(x,y) 是连续凹函数. 下面证明较难的另一半:
定理 6.1 的证明. 考虑优化问题 −inf{a:∀x∈K,−a≤maxyf(x,y)}: 这是一个线性规划问题, 限制空间取紧集 K 上的连续函数组成的 Banach 空间 C(K) (配备 L∞ 范数) , 那么限制函数 h(a)(x)=−maxyf(x,y)−a 自然是 R→C(K) 的连续线性映射.
对偶: infL≥0,L(id)=1L(maxyf(x,y)), 其中 id 将实数映至对应的常函数. 那么我们必须证明:
∀L≥0,L(id)=1,y0,L(ymaxf(x,y0))≥xminf(x,y0)
然而
∀x0,y0,ymaxf(x0,y)≥f(x0,y0)≥xminf(x,y0)
考虑到 maxy(x,y0)−minxf(x,y0)≥0, 两边用 L 作用即证.
然而这个证明肯定是错的. . 因为没用到凸函数条件, 看来还得将无穷维 LP 对偶的正则性问题处理好, 有限维是没这个问题的 参考文献
[ET99] | Ekeland and Témam (1999). Convex Analysis and Variational Problems. Society for Industrial and Applied Mathematics. |