前面讲了梯度下降的方法,关键在于步长的选择:固定步长、线搜索、BB方法等,但是如果优化函数本身存在不可导的点,就没有办法计算梯度了,这个时候就需要引入次梯度(Subgradient),这一节主要关注次梯度的计算。
1. 次梯度
次梯度(subgradient)的定义为
∂f(x)={g∣f(y)≥f(x)+gT(y−x),∀y∈domf}
该如何理解次梯度 g 呢?实际上经过变换,我们可以得到
[g−1]⊤([yt]−[xf(x)])≤0,∀(y,t)∈epif
实际上这里 [gT −1]T 定义了 epigraph 的一个支撑超平面,并且这个支撑超平面是非垂直的,如下面的图所示
| 光滑函数 |
非光滑函数 |
 |
 |
而对于任意的下水平集 {y∣f(y)≤f(x)},都有
f(y)≤f(x)⟹gT(y−x)≤0
这说明次梯度 g 实际上也是下水平集的一个支撑超平面

Remarks:很有意思的一件事是函数的梯度 ∇f 包含有大量的信息,他的方向代表了函数下降最快的方向,也就是下水平集的法线方向;而他的模长代表了下降的速度,[∇f −1]T 是 epigraph 的法线方向,可以直观想象,如果 ∥∇f∥ 越大,那么这个法线方向越趋向于水平,也就是说 epigraph 的标面越趋近于竖直,函数下降速度当然也越快。
每个点的次梯度 ∂f(x) 实际上是一个集合,我们先来看这个集合有什么性质呢?我们先列出来然后一一解释:
- 次梯度映射是单调算子
- 如果 x∈ri domf,则 ∂f(x)=∅,而且是有界、闭的凸集
- x⋆=argminf(x)⟺0∈∂f(x⋆)
首先,他是一个 set-valued mapping,而且是一个单调算子,也即
(u−v)T(y−x)≥0,∀u∈∂f(y),v∈∂f(x)
这个性质很容易由定义导出。
其次,内点处的次梯度总是非空的闭凸集,且有界。
首先可以证明其非空,(默认我们考虑的 f 为凸函数)因为函数 f 是凸的,其 epigraph 在 (x,f(x)) 一定存在一个支撑超平面
∃(a,b)=0,[ab]T([yt]−[xf(x)])≤0∀(y,t)∈ epi f
由于 t 可以趋于 +∞,因此 b≤0,如果 b=0,由于 x 为内点,也很容易导出矛盾,因此可以证明 b<0,于是就可以得到 g=a/∣b∣。
其次可以证明其为闭凸集,次梯度还可以表示为
∂f(x)={g∣f(y)≥f(x)+gT(y−x),∀y∈domf}=y∈domf⋂{g∣gT(y−x)≤f(y)−f(x)}
这是很多个半空间的交集,因此 ∂f(x) 是一个闭的凸集。
最后可以证明次梯度集合是有界的,为了证明他有界,只需证明他的 l∞ 范数有界即可。可以取
B={x±rek∣k=1,…,n}⊂domf
定义 M=maxy∈Bf(y)<∞,应用次梯度的定义就可以得到
∥g∥∞≤rM−f(x) for all g∈∂f(x)
注意上面的非空、有界、闭凸集都要求 x 为定义域的内点,如果是边界上则无法保证。
例子 1:对于凸集 C,定义函数 δC(x)={0,+∞,x∈Cx∈/C,那么次梯度为
g∈∂δC(x)⟺δC(y)≥δC(x)+gT(y−x),∀y∈C⟺gT(y−x)≤0,∀y∈C⟺g∈NC(x) (normal cone at x)
Remarks:集合 C 的 normal cone 的定义为
∀x∈C,NC(x)={g∣gT(y−x)≤0,∀y∈C}
例子 2:函数 f(x)=∣x∣,∂f(x)=⎩⎪⎨⎪⎧1,[−1,1],−1x>0x=0x<0
例子 3:函数 f(x)=∥x∥2,∂f(0)={g∣∥g∥2≤1}
例子 4:对于任意范数 f(x)=∥x∥
∂f(x)={y∣∥y∥∗≤1,⟨y,x⟩=∥x∥}
证明:∀g∈∂f(x),需要 ∥y∥≥∥x∥+gT(y−x)(Δ)
可以取 y=2x⟹∥x∥≥gTx,也可以取 y=0⟹0≥∥x∥−gTx,因此有 gTx=∥x∥
由 (Δ) 式可知应有 ∥y∥≥gTy⟺∥g∥∗≤1。
2. 次梯度计算
每个点的次梯度是一个集合,这里有两个概念
Weak subgradient calculus:只需要计算其中一个次梯度就够了;
Strong subgradient calculus:要计算出 ∂f(x) 中的所有元素。
要想计算出所有的次梯度是很难的,所以大多数时候只需要得到一个次梯度就够了,也就是 Weak subgradient calculus。不过,对于下面这几种特殊情况,我们可以得到完整的次梯度描述(也即 Strong subgradient calculus),他们是:
- 如果 f 在 x 是可微的,那么 ∂f(x)={∇f(x)}
- 非负线性组合:f(x)=α1f1(x)+α2f2(x),那么 ∂f(x)=α1∂f1(x)+α2∂f2(x),第二个式子是集合的加法;
- 仿射变换:f(x)=h(Ax+b),那么 ∂f(x)=ATh(Ax+b)
对于第一条的证明,我们可以取 y=x+r(p−∇f(x)),p∈∂f(x),那么根据次梯度的定义就有 ∥p−∇f(x)∥2≤rO(r2)→0 随着 r→0,因此就有 ∇f(x)=p。
对于第三条的证明,只需要分别证明 ATh(Ax+b)⊆∂f(x) 和 ∂f(x)⊆ATh(Ax+b),前者很容易,主要是后者。由于次梯度 d∈∂f(x) 需要满足 f(z)≥f(x)+dT(z−x)⟺h(Az+b)−dTz≥h(Ax+b)−dTx,也就是说 (x,Ax+b) 实际上是如下问题的最优解
mins.t.h(z)−dTyAy+b=z,z∈domh
如果 (Range(A)+b)∩ri domh=∅,说明 SCQ 成立,则强对偶性成立,于是根据拉格朗日对偶原理有
∃λ, s.t. (x,Ax+b)∈argmin{h(z)−dTy+λT(Ay+b−z)}⟹{∇yL(y,z,λ)=0⟹0∈∂h(z)−λ∇zL(y,z,λ)=0⟹d=ATλ
推论:根据第 3 条,可以得到:如果考虑函数 F(x)=f1(x)+...+fm(x),且 ⋂iri domfi=∅,则 ∂F(x)=∂f1(x)+...+∂fm(x)。(这个实际上可以直接右上面的第二条得到,这里只不过又验证了一次)
证明:我们可以考虑函数 f(x)=f1(x1)+...+fm(xm),在定义 A=[I,...,I]T,那么就有 F(x)=f(Ax),所以 ∂F(x)=AT∂f(Ax)=[I ... I][∂f1(x),...,∂fm(x)]T=∂f1(x)+...+∂fm(x)。
上面是能获得 Strong subgradient calculus 的几个原则,对于其他情况,我们考虑找到一个次梯度就够了。下面给出一些常见的情况。
点点最大值:f(x)=max{f1(x),...,fm(x)},可以定义 I(x)={i∣fi(x)=f(x)},那么他的
-
weak result:choose any g∈∂fk(x),其中 k∈I(x)
-
strong result:∂f(x)=conv⋃i∈I(x)∂fi(x)
点点上确界:f(x)=supα∈Afα(x),其中 fα(x) 关于 x 是凸的,定义 I(x)={α∈A∣fα(x)=f(x)},那么
-
weak result:choose any g∈∂fβ(x^),其中 f(x^)=fβ(x^)
-
strong result:conv⋃α∈I(x)∂fα(x)⊆∂f(x),如果要取等号,需要额外的条件
下确界:f(x)=infyh(x,y),其中 h(x,y) 关于 (x,y) 是联合凸的,那么
-
weak result:(g,0)∈∂h(x^,y^),其中 y^=argminh(x^,y)
复合函数:f(x)=h(f1(x),...,fk(x)),其中 h 为单调不减的凸函数,fi 为凸函数
-
weak result:g=z1g1+...+zkgk,z∈∂h(f1(x),...,fk(x)),gi∈∂fi(x)
期望:f(x)=Eh(x,u),其中 u 为随机变量,h 对任意的 u 关于 x 都是凸的
-
weak result:选择函数 u↦g(u),g(u)∈∂xh(x^,u),则 g=Eug(u)∈∂f(x^)
例子 1:picewise-linear function f(x)=maxi=1,...,m(aiTx+bi),∂f(x)=conv{ai∣i∈I(x)}

例子 2:l1 范数 f(x)=∥x∥1=∣x1∣+...+∣xn∣,∂f(x)=J1×⋯×Jn,其中 Jk=⎩⎪⎨⎪⎧[−1,1]1−1xk=0xk>0xk<0

例子 3:f(x)=λmax(A(x))=sup∥y∥2=1yTA(x)y,其中 A(x)=A0+x1A1+⋯+xnAn,则取 λmax(A(x^)) 对应的单位特征向量 y,次梯度可以表示为 (yTA1y,...,yTAny)∈∂f(x^)
例子 4:到凸集的欧氏距离 f(x)=infy∈C∥x−y∥2=infyh(x,y),其中集合 C 为凸集,函数 h 关于 (x,y) 是联合凸的。
g={0∥y^−x^∥21(x^−y^)=∥x^−P(x^)∥21(x^−P(x^))x^∈Cx^∈/C
例子 5:定义如下凸优化问题的最优解为 f(u,v)
minimizesubject tof0(x)fi(x)≤ui,i=1,…,mAx=b+v
如果假设 f(u^,v^) 有界且强对偶性成立,那么对于对偶问题如下对偶问题
maximizesubject toxinf(f0(x)+i∑λi(fi(x)−u^i)+vT(Ax−b−v^))λ⪰0
若其最优解为 (λ^,ν^),则有 (−λ^,−ν^)∈∂f(u^,v^)。
3. 对偶原理与最优解条件
前面我们对于可导函数获得了对偶原理以及 KKT 条件,那如果是不可导的函数呢?我们有
f(y)≥f(x⋆)+0T(y−x⋆) for all y⟺0∈∂f(x⋆)

例子:对于优化问题 minf(x),s.t. x∈C⟺minf(x)+δC(x)=F(x),因此
0∈∂f(x⋆)+∂δC(x⋆)⟹∃p∈∂f(x⋆),s.t.−p∈∂δC(x⋆)=NC(x⋆)
如果 f∈C1,则有 −∇f(x⋆)∈NC(x⋆)。
KKT 条件怎么变呢?只需要修改一下梯度条件:
- 原问题可行性 x⋆ is primal feasible
- 对偶问题可行性 λ⋆⪰0
- 互补性条件 λi⋆fi(x⋆)=0,i=1,...,m
- 梯度条件 0∈∂f0(x⋆)+∑iλi⋆∂fi(x⋆)
4. 方向导数
方向导数(directional derivative)的定义为
f′(x;y)=α↘0limαf(x+αy)−f(x)=t→∞lim(tf(x+t1y)−tf(x))
方向导数是齐次的,也即
f′(x;λy)=λf′(x;y)for λ≥0
对于凸函数,方向导数也可以定义为
f′(x;y)=α>0infαf(x+αy)−f(x)=t>0inf(tf(x+t1y)−tf(x))
要证明的话,只需要证明 g(α)=αf(x+αy)−f(x) 随着 α 单调递减有下界。
实际上方向导数定义了沿着 y 方向的函数下界,也即
f(x+αy)≥f(x)+αf′(x;y) for all α≥0
对于凸函数,x∈int domf,也有
f′(x;y)=g∈∂f(x)supgTy
也即 f′(x;y) 是 ∂f(x) 的支撑函数

Remarks:需要注意的是负的次梯度方向不一定是函数值下降方向,而只有方向导数 <0 的方向才是函数值下降方向。反例如下图

如果我们想找到下降最快的方向(Steepest descent direction),则需要
Δxnsd=∥y∥2≤1argminf′(x;y)
根据前面的式子我们知道 minf′(x;y)=min∥y∥2≤1supg∈∂f(x)gTy,如果假设极大极小可以换序,则可以等价为 supginfygTy=supg∈∂f(x)−∥g∥2,上面过程可以表述为原问题与对偶问题
minimizesubject tof′(x;y)∥y∥2≤1minimizesubject to−∥g∥2g∈∂f(x)
于是就有 f′(x;Δxnsd)=−∥g⋆∥2, if 0∈/∂f(x),Δxnsd=−g⋆/∥g⋆∥2,如下图所示

最后给我的博客打个广告,欢迎光临
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条件
凸优化学习笔记 13:KKT条件 & 互补性条件 & 强对偶性
凸优化学习笔记 14:SDP Representablity
凸优化学习笔记 15:梯度方法
凸优化学习笔记 16:次梯度
凸优化学习笔记 17:次梯度下降法