《Subgradients》
Subderivate-wiki
Subgradient method-wiki
《Subgradient method》
Subgradient-Prof.S.Boyd,EE364b,StanfordUniversity
《Characterization of the Subdifferential of Some Matrix Norms 》
定义
我们称g∈Rn是f:Rn→R在x∈domf的次梯度,如果对于任意的z∈domf,满足:
f(z)≥f(x)+gT(z−x)
如果f是可微凸函数,那么g就是f在x处的梯度。我们将z看成变量,那么仿射函数f(x)+gT(z−x)是f(z)的一个全局下估计。这个次梯度的作用,就是在处理不可微函数的时候,提供一个替代梯度的工具,而且,根据定义,沿着次梯度方向,函数的值是非降的:
f(αg+x)≥f(x)+αgTg
另外,如果极限存在,有下面的性质,这联系了方向导数和次梯度:
limz→x+f(z)−f(x)∥z−x∥≥gT(z−x)/∥z−x∥
当然,还有从左往右的来的,这里就不讲了。
下图是一个例子,我们可以看到,在存在梯度的地方,次梯度就是梯度,在不可导的地方,次梯度是一个凸集。

次梯度总是闭凸集,即便f不是凸函数,有下面的性质:
∂f(x)=⋂z∈domf{g|f(z)≥f(x)+gT(z−x)}
下面是f(x)=|x|的例子:

上镜图解释
g是次梯度,当且仅当(g,−1)是f的上镜图在(x,f(x))处的一个支撑超平面。

函数f的上镜图定义为:
epif={(x,t)|x∈domf,f(x)≤t}
一个函数是凸函数,当且仅当其上镜图是凸集。
我们来证明一开始的结论,即g是次梯度,当且仅当(g,−1)是f的上镜图在(x,f(x))处的一个支撑超平面。
首先,若(g,−1)是f的上镜图在(x,f(x))处的一个支撑超平面,则:
gT(x−x0)−(t−f(x0))≤0⇒t≥f(x0)+gT(x−x0)
对所有(x,t)∈epif成立,令t=f(x),结果便得到。
反过来,如果g是次梯度,那么:
f(z)≥f(x)+gT(z−x)⇒f(z)−f(x)≥gT(z−x)
又t≥f(z),(z,t)∈epif,所以:
t−f(x)≥f(z)−f(x)≥gT(z−x)
所以,(g,−1)在(x,f(x))处定义了一个超平面。
次梯度的存在性
如果f是凸函数,且x∈intdomf,那么∂f(x)非空且闭。根据支撑超平面定理,我们知道,在(x,f(x))处存在关于epif的一个超平面,设a∈Rn,b∈R,则对于任意的(z,t)∈epif都有:

显然,(x,f(x)+ϵ)也符合条件,这意味着b≤0,以及:
aT(z−x)+b(f(z)−f(x))≤0
对所有z成立。
如果b=0,那么a=0,不构成超平面,即b<0。
于是:
f(z)≥f(x)+−aT/b(z−x)
即−a/b∈∂f(x)
性质
极值
x∗是凸函数f(x)的最小值,当且仅当f在x∗处存在次梯度且
0∈∂f(x∗)
f(x)≥f(x∗)⇒0∈∂f(x∗)
非负数乘 αf(x)
∂(αf)=α∂f,α≥0
和,积分,期望
f=f1+f2…+fn,fi,i=1,2,…,m均为凸函数,那么:
∂f=∂f1+∂f2+…+∂fn
F(x)=∫Yf(x,y)dy, 固定y, f(x,y)为凸函数,那么:
∂F(x)=∫Y∂xf(x,y)dy
f(z,y)≥f(x,y)+gT(y)(z−x)⇒∫Yf(z,y)dy≥∫Yf(x,y)dy+∫YgT(y)dy(z−x)
不过需要注意的一点是,这里的等号都是对于特定的次梯度,我总感觉f的次梯度的集合不止于此,或许会稍微大一点?就是对于和来讲,下面这个式子成立吗?:
∂f={g1+g2+…+gn|g1∈∂f1,…,gn∈∂fn}
至少凸函数没问题吧,凸函数一定是连续函数,且左右导数存在,那么g的范围都是固定的。
仿射变换
f(x)是凸函数,令h(x)=f(Ax+b)则:
f(Az+b)≥f(Ax+b)+gT(Az+b−Ax−b)⇒h(z)≥h(x)+(ATg)T(z−x)⇒∂h(x)=AT∂f(Ax+b)
仿梯度
我们知道梯度有下面这些性质:
∇c=0∇(φ±ψ)=∇φ±∇ψ∇(cφ)=c∇φ∇(φψ)=ψ∇φ−φ∇ψψ2∇f(φ)=f′(φ)∇φ
我认为(注意是我认为!!!大概是是异想天开。)f为凸函数的时候,或者f为可微(这个时候是一定的)的时候,上面的性质也是存在的。当然,这只是针对某些次梯度。因为当f为凸函数的时候,f的左右导数都存在,那么:
k+:=limt→0+f(x+tek)−f(x)t
那么(凸函数的性质)
f(x+tek)−f(x)≥tk+=(k+ek)T(tek),t>0
同理:
k−:=limt→0−f(x+tek)−f(x)t
f(x+tek)−f(x)≥tk−=(k−ek)T(tek),t<0
而且k−≤k+。
事实上,因为:
f(x+tek)−f(x)t≥k+≥k−≥f(x)−f(x−tek)t,t>0
所以,容易证明:
f(x+tek)≥f(x)+(λ1k++(1−λ1)k−)eTktek,0≤λ1≤1
容易验证h(t)=f(x+tv)时关于t的凸函数,那么:
K+v:=limt→0+h(t)−h(0)t∥v∥
同理
K−v:=limt→0−h(t)−h(0)t∥v∥
一样的分析,我们可以知道:
f(x+tv)≥f(x)+(λK+v+(1−λ)K−v)∥v∥vTtv,0≤λ≤1
不好意思,证到这里我证不下去了,我实在不知道结果该是什么。
混合函数

应用
Pointwise maximum
f(x)=maxi=1,2,…,mfi(x)
其中fi,i=1,2,…,m为凸函数。

Co(⋅)大概是把里面的集合凸化(我的理解):
Co(S)={λg1+(1−λ)g2|g1,g2∈S,λ∈[0,1]}
第一个例子,可微函数取最大:

我倒觉得蛮好理解的,因为∇if(x)和∇jf(x)如果都是次梯度,那么根据次梯度的集合都是凸集可以知道∇if(x),∇jf(x)的凸组合也是次梯度。
第二个例子,ℓ1范数:

我也觉得蛮好理解的。
上确界 supremum
f(x)=supα∈Afα(x)
fα(x)是次可微的。

例子,最大特征值问题:

Minimization over some variables

拟凸函数

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix