前面我们讲了凸优化问题、对偶原理、拉格朗日函数、KKT 条件,还从几何角度解释了强对偶性,那么这一节将从代数角度解释强对偶性。
有需要的话可以参考前面两节内容
凸优化学习笔记 10:凸优化问题
凸优化学习笔记 11:对偶原理
凸优化学习笔记 12:KKT条件
在此之前我们先回顾一下比较重要的三类凸优化问题:LP、SOCP、SDP,为什么这么说呢?因为本质上这三类问题非常相似。我们先来回顾一下三类问题
L P : minimize c T x subject to A x = b x ⪰ 0 ( ★ ) S O C P : minimize c T x subject to A x = b ∥ x ˉ ∥ 2 ≤ x 0 ⟺ x = ( x 0 , x ˉ ) ⪰ Q 0 ( ★ ) S D P : minimize < C , X > ≜ t r ( C X ) X ∈ S n subject to A ( X ) = b X ⪰ 0 ( ★ ) \begin{aligned} LP:\quad \text{minimize} \quad& c^{T} x \\ \text{subject to} \quad& A x=b \\ & x \succeq 0 \qquad(\bigstar)\\ SOCP:\quad \text {minimize} \quad& c^{T} x \\ \text {subject to} \quad& Ax=b \\ & \left\|\bar{x}\right\|_{2} \leq x_0 \iff x=(x_0,\bar{x})\succeq_Q 0 \qquad(\bigstar)\\ SDP:\quad \text{minimize} \quad& \left
注:上面 SDP 中定义了矩阵内积 < C , X > ≜ t r ( C X ) \left
上面三种凸优化问题中,不等式约束都用星号标记出来了,可以看出,他们的形式非常相似,其实都是在不同维度的正常锥里面。不过 LP 的可行域为多面体,最优解往往位于极值点,因此较为简单;但是 SOCP 的可行域则是一个多面体与一个锥的交集,同样的 SDP 和 SOCP 的可行域都是 Nonpolyhedral 的,这就使他们比 LP 要更难求解。
考虑 LP 问题及其对偶问题
( P ) : minimize c T x subject to A x = b x ⪰ 0 ( D ) : maximize b T y subject to A T y + s = c s ⪰ 0 \begin{aligned} (P):\quad \text{minimize} \quad& c^{T} x \\ \text{subject to} \quad& A x=b \\ & x \succeq 0 \\ (D):\quad \text {maximize} \quad& b^Ty\\ \text {subject to} \quad& A^Ty+s=c \\ & s\succeq0 \end{aligned} (P):minimizesubject to(D):maximizesubject tocTxAx=bx⪰0bTyATy+s=cs⪰0
那么原问题与对偶问题的 duality gap 就是
c T x − b T y = x T s c^Tx - b^Ty = x^Ts cTx−bTy=xTs
我们很容易验证 x T s ≥ 0 x^Ts\ge0 xTs≥0,也就是弱对偶性。如果满足 强对偶性(Strong duality) 的话,应该有
x T s = 0 ⟺ x i s i = 0 , i = 1 , . . . , n x^Ts=0 \iff x_is_i=0,i=1,...,n xTs=0⟺xisi=0,i=1,...,n
那么我们再来回顾一下 KKT 条件的 4 个部分:
因此实际上利用上面 3 个约束就可以求解最优解了。对于上面的互补性条件 x i s i = 0 x_is_i=0 xisi=0 我们可以定义一个算子
x ∘ s : = ( x 1 s 1 , . . . , x n s n ) T = diag ( x ) s : = L x s = L x L s 1 x\circ s := (x_1s_1,...,x_ns_n)^T = \text{diag}(x)s :=L_xs=L_xL_s\mathbf{1} x∘s:=(x1s1,...,xnsn)T=diag(x)s:=Lxs=LxLs1
它满足 x ∘ 1 = x x\circ \mathbf{1}=x x∘1=x。这里其实只是定义了一个新的符号,并没有引入新的东西,之所以这么做是为了与后面的 SOCP、SDP 统一起来用类似的符号表示,便于计算机进行优化计算。
现在我们再来看看 SOCP 问题
( P ) : minimize c T x subject to A x = b x ⪰ Q 0 ( D ) : maximize b T y subject to A T y + s = c s ⪰ Q 0 \begin{aligned} (P):\quad \text {minimize} \quad& c^{T} x \\ \text {subject to} \quad& Ax=b \\ & x\succeq_Q 0 \\ (D):\quad \text {maximize} \quad& b^{T} y \\ \text {subject to} \quad& A^Ty+s=c \\ & s\succeq_Q 0 \end{aligned} (P):minimizesubject to(D):maximizesubject tocTxAx=bx⪰Q0bTyATy+s=cs⪰Q0
Remarks:注意 二阶锥(Second order cone) 的对偶锥还是其自身。
对偶锥是其自身怎么直观理解呢?大家想象三维中的这样一个锥,我们任取一个过锥的顶点 ( 0 , 0 , 0 ) (0,0,0) (0,0,0)的竖直平面,切出来的是应该一个直角吧。那么假如说我们考虑任意的锥呢?切出来的这个角如果不是直角,假如是钝角,那么他的对偶锥一定不是其自身,要比自身“小”,锐角也类似。这里提到这个直观理解在后面会用到。
同样的我们可以得到 dualligity gap 为
x T s = c T x − b T y ≥ 0 x^Ts=c^Tx-b^Ty\ge0 xTs=cTx−bTy≥0
如果想得到强对偶性则需要
x T s = 0 , x ⪰ Q 0 , s ⪰ Q 0 ⟺ x 0 s i + x i s 0 = 0 , i = 1 , . . . , n ⟺ x 0 s ˉ + s 0 x ˉ = 0 \begin{aligned} & x^Ts=0,x\succeq_Q 0,s\succeq_Q 0 \\ \iff& x_0s_i+x_is_0=0,i=1,...,n \\ \iff& x_0\bar{s}+s_0\bar{x}=0 \end{aligned} ⟺⟺xTs=0,x⪰Q0,s⪰Q0x0si+xis0=0,i=1,...,nx0sˉ+s0xˉ=0
上面这个证明可以利用 Cauchy-Schwarz 不等式 x T s = x 0 s 0 + ∑ i x i s i ≥ 0 x^Ts=x_0s_0+\sum_ix_is_i\ge0 xTs=x0s0+∑ixisi≥0,取等条件即为上式。这从几何角度理解就如下图,其中 x , s x,s x,s 为正交的,而且他们向后 R n R^n Rn 维子空间的投影 x ˉ , s ˉ \bar{x},\bar{s} xˉ,sˉ 是反向平行的。
Remarks: x , s x,s x,s 均为锥 Q Q Q 当中的向量,二者内积为 0,则表明他们相互正交。假如我们固定了 x x x, x x x 作为法向量定义了一个超平面 A A A,超平面内的任意一个向量都应垂直于 x x x,所里直观理解的话 x x x 应该有无穷多个单位正交向量。但是根据上面的结果, s = ( s 0 , s 0 x ˉ / x 0 ) s=(s_0,s_0\bar{x}/x_0) s=(s0,s0xˉ/x0) 只有一个方向,这说明锥 Q Q Q 内部只有一个方向上的向量与 x x x 正交!也就是说超平面 A A A 与锥 Q Q Q 的交集是一条线,实际上就是说 A A A 与 Q Q Q 相切!
再回想一下我们前面提到这个锥 Q Q Q 的顶角应该是一个直角,假如 x x x 位于 Q Q Q 的内部(不在边界上),那么 A ∩ Q = { ( 0 , 0 , 0 ) } A\cap Q=\{(0,0,0)\} A∩Q={(0,0,0)},只有一个点, s s s 也就不存在。所以如果想要 x T s = 0 x^Ts=0 xTs=0 有非零解,就一定要求 x x x 在 Q Q Q 的边界上,这个时候实际上就有 x 0 = ∥ x ˉ ∥ , s 0 = ∥ s ˉ ∥ x_0=\Vert\bar{x}\Vert,s_0=\Vert\bar{s}\Vert x0=∥xˉ∥,s0=∥sˉ∥ 。这一点很容易从我们上面的式子 x 0 s i + x i s 0 = 0 x_0s_i+x_is_0=0 x0si+xis0=0 得到验证。
同样得回顾一下 KKT 条件
这里再定义一个算子
x ∘ s = ( x 0 x 1 ⋮ x n ) ∘ ( s 0 s 1 ⋮ s n ) = ( x ⊤ s x 0 s 1 + s 0 x 1 ⋮ x 0 s n + s 0 x n ) x\circ s = \left(\begin{array}{c} x_{0} \\ x_{1} \\ \vdots \\ x_{n} \end{array}\right) \circ\left(\begin{array}{c} s_{0} \\ s_{1} \\ \vdots \\ s_{n} \end{array}\right)=\left(\begin{array}{c} x^{\top} s \\ x_{0} s_{1}+s_{0} x_{1} \\ \vdots \\ x_{0} s_{n}+s_{0} x_{n} \end{array}\right) \\ x∘s=⎝⎜⎜⎜⎛x0x1⋮xn⎠⎟⎟⎟⎞∘⎝⎜⎜⎜⎛s0s1⋮sn⎠⎟⎟⎟⎞=⎝⎜⎜⎜⎛x⊤sx0s1+s0x1⋮x0sn+s0xn⎠⎟⎟⎟⎞
为了简化表示可以写成下面的形式,这样跟 LP 就统一了。
L x = Arw ( x ) = ( x 0 x ˉ ⊤ x ˉ x 0 I ) x ∘ s = Arw ( x ) s = Arw ( x ) Arw ( s ) e L_{x}=\operatorname{Arw}(x)=\left(\begin{array}{ll} x_{0} & \bar{x}^{\top} \\ \bar{x} & x_{0} I \end{array}\right)\\ x \circ s=\operatorname{Arw}(x) s=\operatorname{Arw}(x) \operatorname{Arw}(s) e Lx=Arw(x)=(x0xˉxˉ⊤x0I)x∘s=Arw(x)s=Arw(x)Arw(s)e
算子满足性质
但是注意不满足结合律 x ∘ ( y ∘ z ) ≠ ( x ∘ y ) ∘ z x \circ(y \circ z) \neq(x \circ y) \circ z x∘(y∘z)=(x∘y)∘z 。
最后我们再来看看 SDP 问题及其对偶问题
( P ) : minimize < C , X > subject to < A i , X > = b i , i = 1 , . . . , m X ⪰ 0 ( D ) : minimize b T y subject to ∑ i y i A i + S = C S ⪰ 0 \begin{aligned} (P):\quad \text{minimize} \quad& \left
同样的 duality gap 为
< X , S > = < C , X > − b T y = < X , S 1 / 2 S 1 / 2 > = < S 1 / 2 X , S 1 / 2 > ≥ 0 \begin{aligned} \left \ge0 \end{aligned}
强对偶性则要求
X ⪰ 0 , S ⪰ 0 , < X , S > = 0 ⟺ X S = 0 ⟺ X S + S X 2 = 0 X\succeq0,S\succeq0,\left
证明: < X , S > = < S 1 / 2 X 1 / 2 , X 1 / 2 S 1 / 2 > = 0 ⟺ X 1 / 2 S 1 / 2 = 0 \left=0 \iff X^{1/2}S^{1/2}=0
为了简化表达,我们再定义一个算子 X ∘ S = X S + S X 2 X\circ S=\frac{XS+SX}{2} X∘S=2XS+SX,它满足以下性质
注意不满足结合律 X ∘ ( Y ∘ Z ) ≠ ( X ∘ Y ) ∘ Z X \circ(Y \circ Z) \neq(X \circ Y) \circ Z X∘(Y∘Z)=(X∘Y)∘Z
再来复习一下 KKT 条件
最后我们总结一下
最后给我的博客打个广告,欢迎光临
https://glooow1024.github.io/
https://glooow.gitee.io/
前面的一些博客链接如下
凸优化专栏
凸优化学习笔记 1:Convex Sets
凸优化学习笔记 2:超平面分离定理
凸优化学习笔记 3:广义不等式
凸优化学习笔记 4:Convex Function
凸优化学习笔记 5:保凸变换
凸优化学习笔记 6:共轭函数
凸优化学习笔记 7:拟凸函数 Quasiconvex Function
凸优化学习笔记 8:对数凸函数
凸优化学习笔记 9:广义凸函数
凸优化学习笔记 10:凸优化问题
凸优化学习笔记 11:对偶原理
凸优化学习笔记 12:KKT条件