前面我们讲了凸优化问题、对偶原理、拉格朗日函数、KKT 条件,还从几何角度解释了强对偶性,那么这一节将从代数角度解释强对偶性。
有需要的话可以参考前面两节内容
凸优化学习笔记 10:凸优化问题
凸优化学习笔记 11:对偶原理
凸优化学习笔记 12:KKT条件
1. LP / SOCP / SDP
在此之前我们先回顾一下比较重要的三类凸优化问题: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<C,X\right>\triangleq tr(CX) \quad X\in S^n \\ \text{subject to} \quad& A(X)=b \\ & X \succeq 0 \qquad(\bigstar)\\ \end{aligned}
LP:minimizesubject toSOCP:minimizesubject toSDP:minimizesubject tocTxAx=bx⪰0(★)cTxAx=b∥xˉ∥2≤x0⟺x=(x0,xˉ)⪰Q0(★)⟨C,X⟩≜tr(CX)X∈SnA(X)=bX⪰0(★)
注:上面 SDP 中定义了矩阵内积 < C , X > ≜ t r ( C X ) \left<C,X\right>\triangleq tr(CX) ⟨C,X⟩≜tr(CX),这跟向量内积非常类似,而且可以交换 < C , X > = < X , C > \left<C,X\right>=\left<X,C\right> ⟨C,X⟩=⟨X,C⟩;还定义了算子 A ( X ) = ( < A 1 , X > , ⋯ , < A n , X > ) A(X)=\left(\left<A_1,X\right>,\cdots,\left<A_n,X\right>\right) A(X)=(⟨A1,X⟩,⋯,⟨An,X⟩)。
上面三种凸优化问题中,不等式约束都用星号标记出来了,可以看出,他们的形式非常相似,其实都是在不同维度的正常锥里面。不过 LP 的可行域为多面体,最优解往往位于极值点,因此较为简单;但是 SOCP 的可行域则是一个多面体与一个锥的交集,同样的 SDP 和 SOCP 的可行域都是 Nonpolyhedral 的,这就使他们比 LP 要更难求解。
2. 强对偶性的代数解释
考虑 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 个部分:
- Primal feasibility: A x = b , x ≥ 0 Ax=b,x\ge0 Ax=b,x≥0
- Dual feasibility: A T y + s = c , s ≥ 0 A^Ty+s=c,s\ge0 ATy+s=c,s≥0
- Complementarity: x i s i = 0 , i = 1 , . . . , n x_is_i=0,i=1,...,n xisi=0,i=1,...,n
- 梯度条件包含在对偶可行性里面了
因此实际上利用上面 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 条件
- A x = b , x ⪰ Q 0 Ax=b,x\succeq_Q0 Ax=b,x⪰Q0
- A T y + s = c , s ⪰ Q 0 A^Ty+s=c,s\succeq_Q0 ATy+s=c,s⪰Q0
- x T s = 0 , x 0 s i + x i s 0 = 0 x^Ts=0,\quad x_0s_i+x_is_0=0 xTs=0,x0si+xis0=0
这里再定义一个算子
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 ∘ s = s ∘ x x\circ s = s\circ x x∘s=s∘x
- x ∘ ( x ∘ x ) = ( x ∘ x ) ∘ x x\circ(x\circ x)=(x\circ x)\circ x x∘(x∘x)=(x∘x)∘x
- x ∘ ( x 2 ∘ y ) = x 2 ∘ ( x ∘ y ) x \circ\left(x^{2} \circ y\right)=x^{2} \circ(x \circ y) x∘(x2∘y)=x2∘(x∘y)
- e = ( 1 , 0 , . . . , 0 ) T , x ∘ e = x e=(1,0,...,0)^T,x\circ e=x e=(1,0,...,0)T,x∘e=x
但是注意不满足结合律 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<C,X\right> \\ \text{subject to} \quad& \left<A_i,X\right>=b_i,i=1,...,m \\ & X \succeq 0\\ (D):\quad \text{minimize} \quad& b^Ty \\ \text{subject to} \quad& \sum_i y_iA_i+S=C \\ & S\succeq 0 \end{aligned}
(P):minimizesubject to(D):minimizesubject to⟨C,X⟩⟨Ai,X⟩=bi,i=1,...,mX⪰0bTyi∑yiAi+S=CS⪰0
同样的 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<X,S\right> &= \left<C,X\right> - b^Ty \\ &= \left<X,S^{1/2}S^{1/2}\right> = \left<S^{1/2}X,S^{1/2}\right> \ge0 \end{aligned}
⟨X,S⟩=⟨C,X⟩−bTy=⟨X,S1/2S1/2⟩=⟨S1/2X,S1/2⟩≥0
强对偶性则要求
X
⪰
0
,
S
⪰
0
,
<
X
,
S
>
=
0
⟺
X
S
=
0
⟺
X
S
+
S
X
2
=
0
X\succeq0,S\succeq0,\left<X,S\right>=0 \iff XS=0 \iff \frac{XS+SX}{2}=0
X⪰0,S⪰0,⟨X,S⟩=0⟺XS=0⟺2XS+SX=0
证明: < X , S > = < S 1 / 2 X 1 / 2 , X 1 / 2 S 1 / 2 > = 0 ⟺ X 1 / 2 S 1 / 2 = 0 \left<X,S\right>=\left<S^{1/2}X^{1/2},X^{1/2}S^{1/2}\right>=0 \iff X^{1/2}S^{1/2}=0 ⟨X,S⟩=⟨S1/2X1/2,X1/2S1/2⟩=0⟺X1/2S1/2=0
为了简化表达,我们再定义一个算子 X ∘ S = X S + S X 2 X\circ S=\frac{XS+SX}{2} X∘S=2XS+SX,它满足以下性质
- X ∘ S = S ∘ X X\circ S = S\circ X X∘S=S∘X
- X ∘ ( X ∘ X ) = ( X ∘ X ) ∘ X X\circ(X\circ X)=(X\circ X)\circ X X∘(X∘X)=(X∘X)∘X
- X ∘ ( X 2 ∘ Y ) = X 2 ∘ ( X ∘ Y ) X \circ\left(X^{2} \circ Y\right)=X^{2} \circ(X \circ Y) X∘(X2∘Y)=X2∘(X∘Y)
- X ∘ I = X X\circ I = X X∘I=X
注意不满足结合律 X ∘ ( Y ∘ Z ) ≠ ( X ∘ Y ) ∘ Z X \circ(Y \circ Z) \neq(X \circ Y) \circ Z X∘(Y∘Z)=(X∘Y)∘Z
再来复习一下 KKT 条件
- < A i , X > = b i \left<A_i,X\right>=b_i ⟨Ai,X⟩=bi
- ∑ i y i A i + S = C \sum_i y_iA_i+S=C ∑iyiAi+S=C
- X ∘ S = 0 X\circ S=0 X∘S=0
最后我们总结一下
最后给我的博客打个广告,欢迎光临
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条件