前面讲了梯度下降的方法,关键在于步长的选择:固定步长、线搜索、BB方法等,但是如果优化函数本身存在不可导的点,就没有办法计算梯度了,这个时候就需要引入次梯度(Subgradient),这一节主要关注次梯度的计算。

1. 次梯度

次梯度(subgradient)的定义为
f(x)={gf(y)f(x)+gT(yx),ydomf} \partial f(x)= \{g|f(y)\ge f(x)+g^T(y-x),\forall y\in\text{dom} f \}
该如何理解次梯度 gg 呢?实际上经过变换,我们可以得到
[g1]([yt][xf(x)])0,(y,t)epif \left[\begin{array}{c} g \\ -1 \end{array}\right]^{\top}\left(\left[\begin{array}{l} y \\ t \end{array}\right]-\left[\begin{array}{c} x \\ f(x) \end{array}\right]\right) \leq 0, \forall(y, t) \in \operatorname{epi}f
实际上这里 [gT 1]T[g^T \ -1]^{T} 定义了 epigraph 的一个支撑超平面,并且这个支撑超平面是
非垂直的
,如下面的图所示

光滑函数 非光滑函数
凸优化学习笔记16:次梯度 Subgradient 凸优化学习笔记16:次梯度 Subgradient

而对于任意的下水平集 {yf(y)f(x)}\{y|f(y)\le f(x)\},都有
f(y)f(x)gT(yx)0 f(y)\le f(x) \Longrightarrow g^T(y-x)\le0
这说明次梯度 gg 实际上也是下水平集的一个支撑超平面

凸优化学习笔记16:次梯度 Subgradient

Remarks:很有意思的一件事是函数的梯度 f\nabla f 包含有大量的信息,他的方向代表了函数下降最快的方向,也就是下水平集的法线方向;而他的模长代表了下降的速度,[f 1]T[\nabla f\ -1]^T 是 epigraph 的法线方向,可以直观想象,如果 f\Vert \nabla f\Vert 越大,那么这个法线方向越趋向于水平,也就是说 epigraph 的标面越趋近于竖直,函数下降速度当然也越快。

每个点的次梯度 f(x)\partial f(x) 实际上是一个集合,我们先来看这个集合有什么性质呢?我们先列出来然后一一解释:

  1. 次梯度映射是单调算子
  2. 如果 xri domfx\in\text{ri dom}f,则 f(x)\partial f(x)\ne \varnothing,而且是有界、闭的凸集
  3. x=argminf(x)    0f(x)x^\star= \arg\min f(x) \iff 0\in \partial f(x^\star)

首先,他是一个 set-valued mapping,而且是一个单调算子,也即
(uv)T(yx)0,uf(y),vf(x) (u-v)^T(y-x)\ge0,\forall u\in\partial f(y),v\in\partial f(x)
这个性质很容易由定义导出。

其次,内点处的次梯度总是非空的闭凸集,且有界。

首先可以证明其非空,(默认我们考虑的 ff 为凸函数)因为函数 ff 是凸的,其 epigraph 在 (x,f(x))(x,f(x)) 一定存在一个支撑超平面
(a,b)0,[ab]T([yt][xf(x)])0(y,t) epi f \exists(a, b) \neq 0, \quad\left[\begin{array}{l} a \\ b \end{array}\right]^{T}\left(\left[\begin{array}{l} y \\ t \end{array}\right]-\left[\begin{array}{c} x \\ f(x) \end{array}\right]\right) \leq 0 \quad \forall(y, t) \in \text { epi } f
由于 tt 可以趋于 ++\infty,因此 b0b\le0,如果 b=0b=0,由于 xx 为内点,也很容易导出矛盾,因此可以证明 b<0b<0,于是就可以得到 g=a/bg=a/|b|

其次可以证明其为闭凸集,次梯度还可以表示为
f(x)={gf(y)f(x)+gT(yx),ydomf}=ydomf{ggT(yx)f(y)f(x)} \begin{aligned} \partial f(x)&= \{g|f(y)\ge f(x)+g^T(y-x),\forall y\in\text{dom} f \} \\ &= \bigcap_{y\in \text{dom}f} \{g|g^T(y-x)\le f(y)-f(x) \} \end{aligned}
这是很多个半空间的交集,因此 f(x)\partial f(x) 是一个闭的凸集。

最后可以证明次梯度集合是有界的,为了证明他有界,只需证明他的 ll_\infty 范数有界即可。可以取
B={x±rekk=1,,n}domf B=\left\{x \pm r e_{k} | k=1, \ldots, n\right\} \subset \operatorname{dom} f
定义 M=maxyBf(y)<M=\max _{y \in B} f(y)<\infty,应用次梯度的定义就可以得到
gMf(x)r for all gf(x) \|g\|_{\infty} \leq \frac{M-f(x)}{r} \quad \text { for all } g \in \partial f(x)
注意上面的非空、有界、闭凸集都要求 xx 为定义域的内点,如果是边界上则无法保证。

例子 1:对于凸集 CC,定义函数 δC(x)={0,xC+,xC\delta_C(x)=\begin{cases}0,&x\in C\\+\infty,&x\notin C\end{cases},那么次梯度为
gδC(x)    δC(y)δC(x)+gT(yx),yC    gT(yx)0,yC    gNC(x) (normal cone at x) \begin{aligned} g\in\partial \delta_C(x) &\iff \delta_C(y)\ge \delta_C(x)+g^T(y-x),\forall y\in C \\ &\iff g^T(y-x)\le0, \forall y\in C \\ &\iff g\in N_C(x) \quad \text{ (normal cone at $x$)} \end{aligned}
Remarks:集合 CC 的 normal cone 的定义为
xC,NC(x)={ggT(yx)0,yC} \forall x\in C,\quad N_C(x)=\{g| g^T(y-x)\le0,\forall y\in C\}
例子 2:函数 f(x)=x,f(x)={1,x>0[1,1],x=01x<0f(x)=\vert x\vert,\partial f(x)=\begin{cases}1,&x>0\\ [-1,1],&x=0\\ -1&x<0\end{cases}

例子 3:函数 f(x)=x2,f(0)={gg21}f(x)=\Vert x\Vert_2,\partial f(0)=\{g|\Vert g\Vert_2\le1\}

例子 4:对于任意范数 f(x)=xf(x)=\Vert x\Vert
f(x)={yy1,<y,x>=x} \partial f(x)=\{y|\Vert y\Vert_*\le1,\left<y,x\right>=\Vert x\Vert \}
证明:gf(x)\forall g\in\partial f(x),需要 yx+gT(yx)(Δ)\Vert y\Vert \ge \Vert x\Vert+ g^T(y-x)\quad(\Delta)

可以取 y=2xxgTxy=2x \Longrightarrow \Vert x\Vert \ge g^Tx,也可以取 y=00xgTxy=0\Longrightarrow 0\ge \Vert x\Vert-g^Tx,因此有 gTx=xg^Tx=\Vert x\Vert

(Δ)(\Delta) 式可知应有 ygTy    g1\Vert y\Vert \ge g^Ty \iff \Vert g\Vert_*\le1

2. 次梯度计算

每个点的次梯度是一个集合,这里有两个概念

Weak subgradient calculus:只需要计算其中一个次梯度就够了;

Strong subgradient calculus:要计算出 f(x)\partial f(x) 中的所有元素。

要想计算出所有的次梯度是很难的,所以大多数时候只需要得到一个次梯度就够了,也就是 Weak subgradient calculus。不过,对于下面这几种特殊情况,我们可以得到完整的次梯度描述(也即 Strong subgradient calculus),他们是:

  1. 如果 ffxx 是可微的,那么 f(x)={f(x)}\partial f(x)=\{\nabla f(x)\}
  2. 非负线性组合:f(x)=α1f1(x)+α2f2(x)f(x)=\alpha_1 f_1(x)+\alpha_2 f_2(x),那么 f(x)=α1f1(x)+α2f2(x)\partial f(x)=\alpha_1 \partial f_1(x)+\alpha_2 \partial f_2(x),第二个式子是集合的加法;
  3. 仿射变换:f(x)=h(Ax+b)f(x)=h(Ax+b),那么 f(x)=ATh(Ax+b)\partial f(x)=A^T h(Ax+b)

对于第一条的证明,我们可以取 y=x+r(pf(x)),pf(x)y=x+r(p-\nabla f(x)),p\in\partial f(x),那么根据次梯度的定义就有 pf(x)2O(r2)r0\Vert p-\nabla f(x)\Vert^2\le \frac{O(r^2)}{r}\to0 随着 r0r\to0,因此就有 f(x)=p\nabla f(x)=p

对于第三条的证明,只需要分别证明 ATh(Ax+b)f(x)A^T h(Ax+b) \subseteq \partial f(x)f(x)ATh(Ax+b)\partial f(x) \subseteq A^T h(Ax+b),前者很容易,主要是后者。由于次梯度 df(x)d\in \partial f(x) 需要满足 f(z)f(x)+dT(zx)    h(Az+b)dTzh(Ax+b)dTxf(z)\ge f(x)+d^T(z-x) \iff h(Az+b)-d^Tz\ge h(Ax+b)-d^Tx,也就是说 (x,Ax+b)(x,Ax+b) 实际上是如下问题的最优解
minh(z)dTys.t.Ay+b=z,zdomh \begin{aligned} \min \quad& h(z)-d^Ty \\ \text{s.t.}\quad& Ay+b = z,\quad z\in\text{dom}h \end{aligned}
如果 (Range(A)+b)ri domh(Range(A)+b)\cap \text{ri dom}h \ne \varnothing,说明 SCQ 成立,则强对偶性成立,于是根据拉格朗日对偶原理有
λ, s.t. (x,Ax+b)argmin{h(z)dTy+λT(Ay+bz)}{yL(y,z,λ)=00h(z)λzL(y,z,λ)=0d=ATλ \exist \lambda,\text{ s.t. }(x,Ax+b) \in \arg\min \{h(z)-d^Ty+\lambda^T(Ay+b-z)\} \\ \Longrightarrow \begin{cases} \nabla_y L(y,z,\lambda)=0 \Longrightarrow 0\in \partial h(z)-\lambda \\ \nabla_z L(y,z,\lambda)=0 \Longrightarrow d=A^T\lambda \end{cases}

推论:根据第 3 条,可以得到:如果考虑函数 F(x)=f1(x)+...+fm(x)F(x)=f_1(x)+...+f_m(x),且 iri domfi\bigcap_i \text{ri dom}f_i\ne \varnothing,则 F(x)=f1(x)+...+fm(x)\partial F(x)=\partial f_1(x)+... + \partial f_m(x)。(这个实际上可以直接右上面的第二条得到,这里只不过又验证了一次)

证明:我们可以考虑函数 f(x)=f1(x1)+...+fm(xm)f(x)=f_1(x_1)+...+f_m(x_m),在定义 A=[I,...,I]TA=[I,...,I]^T,那么就有 F(x)=f(Ax)F(x)=f(Ax),所以 F(x)=ATf(Ax)=[I ... I][f1(x),...,fm(x)]T=f1(x)+...+fm(x)\partial F(x)=A^T \partial f(Ax)=[I\ ...\ I][\partial f_1(x),...,\partial f_m(x)]^T = \partial f_1(x)+... + \partial f_m(x)

上面是能获得 Strong subgradient calculus 的几个原则,对于其他情况,我们考虑找到一个次梯度就够了。下面给出一些常见的情况。

点点最大值f(x)=max{f1(x),...,fm(x)}f(x)=\max\{f_1(x),...,f_m(x) \},可以定义 I(x)={ifi(x)=f(x)}I(x)=\{i|f_i(x)=f(x)\},那么他的

  • weak result:choose any gfk(x)g\in\partial f_k(x),其中 kI(x)k\in I(x)
  • strong resultf(x)=conviI(x)fi(x)\partial f(x)=\text{conv}\bigcup_{i\in I(x)}\partial f_i(x)

点点上确界f(x)=supαAfα(x)f(x)=\sup_{\alpha\in \mathcal{A}} f_\alpha (x),其中 fα(x)f_\alpha(x) 关于 xx 是凸的,定义 I(x)={αAfα(x)=f(x)}I(x)=\{\alpha\in\mathcal{A}|f_\alpha(x)=f(x)\},那么

  • weak result:choose any gfβ(x^)g\in\partial f_\beta (\hat{x}),其中 f(x^)=fβ(x^)f(\hat{x})=f_\beta(\hat{x})
  • strong resultconvαI(x)fα(x)f(x)\text{conv}\bigcup_{\alpha\in I(x)}\partial f_\alpha(x) \subseteq \partial f(x),如果要取等号,需要额外的条件

下确界f(x)=infyh(x,y)f(x)=\inf_y h(x,y),其中 h(x,y)h(x,y) 关于 (x,y)(x,y) 是联合凸的,那么

  • weak result(g,0)h(x^,y^)(g,0)\in \partial h(\hat{x},\hat{y}),其中 y^=argminh(x^,y)\hat{y}=\arg\min h(\hat{x},y)

复合函数f(x)=h(f1(x),...,fk(x))f(x)=h(f_1(x),...,f_k(x)),其中 hh 为单调不减的凸函数,fif_i 为凸函数

  • weak resultg=z1g1+...+zkgk,zh(f1(x),...,fk(x)),gifi(x)g=z_1g_1+...+z_kg_k,z\in\partial h(f_1(x),...,f_k(x)),g_i\in \partial f_i(x)

期望f(x)=Eh(x,u)f(x)=\mathbb{E}h(x,u),其中 uu 为随机变量,hh 对任意的 uu 关于 xx 都是凸的

  • weak result:选择函数 ug(u),g(u)xh(x^,u)u\mapsto g(u),g(u)\in \partial_x h(\hat{x},u),则 g=Eug(u)f(x^)g=\mathbb{E}_u g(u) \in \partial f(\hat{x})

例子 1:picewise-linear function f(x)=maxi=1,...,m(aiTx+bi),f(x)=conv{aiiI(x)}f(x)=\max_{i=1,...,m}(a_i^Tx+b_i),\partial f(x)=\text{conv}\{a_i|i\in I(x)\}

凸优化学习笔记16:次梯度 Subgradient

例子 2l1l_1 范数 f(x)=x1=x1+...+xn,f(x)=J1××Jnf(x)=\Vert x\Vert_1=|x_1|+...+|x_n|,\partial f(x)=J_1\times \cdots \times J_n,其中 Jk={[1,1]xk=01xk>01xk<0J_k=\begin{cases}[-1,1]&x_k=0\\ {1}&x_k>0\\ {-1}&x_k<0 \end{cases}

凸优化学习笔记16:次梯度 Subgradient

例子 3f(x)=λmax(A(x))=supy2=1yTA(x)yf(x)=\lambda_{\max}(A(x))=\sup_{\Vert y\Vert_2=1}y^TA(x)y,其中 A(x)=A0+x1A1++xnAnA(x)=A_0+x_1A_1+\cdots +x_nA_n,则取 λmax(A(x^))\lambda_{\max}(A(\hat{x})) 对应的单位特征向量 yy,次梯度可以表示为 (yTA1y,...,yTAny)f(x^)(y^TA_1y,...,y^TA_ny)\in \partial f(\hat{x})

例子 4:到凸集的欧氏距离 f(x)=infyCxy2=infyh(x,y)f(x)=\inf_{y\in C}\Vert x-y\Vert_2=\inf_{y} h(x,y),其中集合 CC 为凸集,函数 hh 关于 (x,y)(x,y) 是联合凸的。
g={0x^C1y^x^2(x^y^)=1x^P(x^)2(x^P(x^))x^C g=\begin{cases}0&\hat{x}\in C\\ \frac{1}{\|\hat{y}-\hat{x}\|_{2}}(\hat{x}-\hat{y})=\frac{1}{\|\hat{x}-P(\hat{x})\|_{2}}(\hat{x}-P(\hat{x})) & \hat{x}\notin C \end{cases}
例子 5:定义如下凸优化问题的最优解为 f(u,v)f(u,v)
minimizef0(x)subject tofi(x)ui,i=1,,mAx=b+v \begin{aligned} \text{minimize} \quad& f_{0}(x) \\ \text{subject to}\quad& f_{i}(x) \leq u_{i}, \quad i=1, \ldots, m\\ &A x=b+v \end{aligned}
如果假设 f(u^,v^)f(\hat{u},\hat{v}) 有界且强对偶性成立,那么对于对偶问题如下对偶问题
maximizeinfx(f0(x)+iλi(fi(x)u^i)+vT(Axbv^))subject toλ0 \begin{aligned} \text{maximize} \quad& \inf _{x}\left(f_{0}(x)+\sum_{i} \lambda_{i}\left(f_{i}(x)-\hat{u}_{i}\right)+v^{T}(A x-b-\hat{v})\right) \\ \text{subject to}\quad& \lambda\succeq 0 \end{aligned}
若其最优解为 (λ^,ν^)(\hat\lambda,\hat\nu),则有 (λ^,ν^)f(u^,v^)(-\hat\lambda,-\hat\nu)\in \partial f(\hat{u},\hat{v})

3. 对偶原理与最优解条件

前面我们对于可导函数获得了对偶原理以及 KKT 条件,那如果是不可导的函数呢?我们有
f(y)f(x)+0T(yx) for all y0f(x) f(y) \geq f\left(x^{\star}\right)+0^{T}\left(y-x^{\star}\right) \quad \text { for all } y \quad \Longleftrightarrow \quad 0 \in \partial f\left(x^{\star}\right)
凸优化学习笔记16:次梯度 Subgradient

例子:对于优化问题 minf(x),s.t. xC    minf(x)+δC(x)=F(x)\min f(x),\text{s.t. }x\in C \iff \min f(x)+\delta_C(x)=F(x),因此
0f(x)+δC(x)pf(x),s.t.pδC(x)=NC(x) 0\in \partial f(x^\star)+\partial \delta_C(x^\star) \Longrightarrow \exist p\in\partial f(x^\star),\quad\text{s.t.}-p\in \partial\delta_C(x^\star)=N_C(x^\star)
如果 fC1f\in C^1,则有 f(x)NC(x)-\nabla f(x^\star)\in N_C(x^\star)

KKT 条件怎么变呢?只需要修改一下梯度条件:

  1. 原问题可行性 xx^\star is primal feasible
  2. 对偶问题可行性 λ0\lambda^\star \succeq0
  3. 互补性条件 λifi(x)=0,i=1,...,m\lambda_i^\star f_i(x^\star)=0,i=1,...,m
  4. 梯度条件 0f0(x)+iλifi(x)0\in \partial f_0(x^\star)+\sum_i \lambda_i^\star \partial f_i(x^\star)

4. 方向导数

方向导数(directional derivative)的定义为
f(x;y)=limα0f(x+αy)f(x)α=limt(tf(x+1ty)tf(x)) \begin{aligned} f^{\prime}(x ; y) &=\lim _{\alpha \searrow 0} \frac{f(x+\alpha y)-f(x)}{\alpha} \\ &=\lim _{t \rightarrow \infty}\left(tf\left(x+\frac{1}{t} y\right)-t f(x)\right) \end{aligned}
方向导数是
齐次
的,也即
f(x;λy)=λf(x;y)for λ0 f'(x;\lambda y)=\lambda f'(x;y) \quad \text{for }\lambda\ge0
对于凸函数,方向导数也可以定义为
f(x;y)=infα>0f(x+αy)f(x)α=inft>0(tf(x+1ty)tf(x)) \begin{aligned} f^{\prime}(x ; y) &=\inf _{\alpha > 0} \frac{f(x+\alpha y)-f(x)}{\alpha} \\ &=\inf _{t >0}\left(tf\left(x+\frac{1}{t} y\right)-t f(x)\right) \end{aligned}
要证明的话,只需要证明 g(α)=f(x+αy)f(x)αg(\alpha)=\frac{f(x+\alpha y)-f(x)}{\alpha} 随着 α\alpha 单调递减有下界。

实际上方向导数定义了沿着 yy 方向的函数下界,也即
f(x+αy)f(x)+αf(x;y) for all α0 f(x+\alpha y) \geq f(x)+\alpha f^{\prime}(x ; y) \quad \text { for all } \alpha \geq 0
对于凸函数,xint domfx\in\text{int dom}f,也有
f(x;y)=supgf(x)gTy f^{\prime}(x ; y)=\sup _{g \in \partial f(x)} g^{T} y
也即 f(x;y)f'(x;y)f(x)\partial f(x) 的支撑函数

凸优化学习笔记16:次梯度 Subgradient

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

凸优化学习笔记16:次梯度 Subgradient

如果我们想找到下降最快的方向(Steepest descent direction),则需要
Δxnsd=argminy21f(x;y) \Delta x_{\mathrm{nsd}}=\underset{\|y\|_{2} \leq 1}{\operatorname{argmin}} f^{\prime}(x ; y)
根据前面的式子我们知道 minf(x;y)=miny21supgf(x)gTy\min f'(x;y)=\min_{\Vert y\Vert_2\le1}\sup_{g\in\partial f(x)}g^Ty,如果假设极大极小可以换序,则可以等价为 supginfygTy=supgf(x)g2\sup_g \inf_y g^Ty = \sup_{g\in\partial f(x)} -\Vert g\Vert_2,上面过程可以表述为原问题与对偶问题
minimizef(x;y)subject toy21minimizeg2subject togf(x) \begin{aligned} \text{minimize} \quad& f'(x;y) \\ \text{subject to}\quad& \|y\|_{2} \leq 1 \end{aligned} \qquad \begin{aligned} \text{minimize} \quad& -\|g\|_{2} \\ \text{subject to}\quad& g \in \partial f(x) \end{aligned}
于是就有 f(x;Δxnsd)=g2f^{\prime}\left(x ; \Delta x_{\mathrm{nsd}}\right)=-\left\|g^{\star}\right\|_{2} if 0f(x),Δxnsd=g/g2\text { if } 0 \notin \partial f(x), \Delta x_{\mathrm{nsd}}=-g^{\star} /\left\|g^{\star}\right\|_{2},如下图所示

凸优化学习笔记16:次梯度 Subgradient

最后给我的博客打个广告,欢迎光临
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:次梯度下降法

相关文章: