by Fangrui Liu
本节我们主要来简单介绍一下什么是 次梯度 (Subgradient)。实际上,次梯度 就是更加泛化的梯度(Gradient)概念:对于一些特定的不可微函数,我们仍然可以找到一个类似梯度的定义来描述函数值变化的程度。这样就把我们的分析对象从可微函数扩展到了真函数 (proper)上了。
NB:关于次梯度的标记 (notation)在学术界还有歧义。我们遵循 Amir Beck 的 First Order Methods in Optimization 中的 ∂f 来标记次梯度。
(次梯度的定义)对于一个真函数(忘记定义的同学可以参考之前的内容)f:x→(−∞,∞],有次梯度:
∂f(x):={g∈X|f(x)+⟨g,y−x⟩≤f(y)∀y∈X}这个定义可能又一点难以理解,我们不妨更加感性地认识到底什么是次梯度:
我们先复习一下对于传统梯度的定义,一条斜率为 g 且过 (x,f(x)) 的直线与函数有且只有一个交点。如下左图所示,切线应该对于函数来说有且只有一个焦点。但是对于有些带有间断点的函数,从传统梯度来讲并不可微,但实际上存在次梯度:所有过点 (x,f(x)) 且与函数有且只有一个交点的直线的集合组成了次梯度,如下右图所示。所以我们可以把次梯度理解为一个梯度的集合,而可微函数就是它的一个特殊形式,就是 ∂f={∇f}。
(次梯度的定义域)如果 x 不在真函数 f 的定义域或 f(x)=+∞ 那么 ∂f(x)=ϕ。因此我们定义:
dom∂f:={x∈X|∂f(x)≠ϕ}所以,dom∂f⊆domf。
(最优解条件)(Optimality Condition)
0∈∂f(x∗)⇔x∗ 是 f 的最小解.这个条件很好推导:
f(x∗)≤f(x)(∀x∈X)f(x∗)+⟨0,x∗−x⟩≤f(x)0∈∂f(x∗)◼一个比较好理解的例子就是 y=|x|。我们可以简单写一下这个函数的次梯度:
∂|x|={1x>0[−1,1]x=0−1x<0可以看到 0∈∂|x| ,因此绝对值最小的解是 0。
次梯度是闭合且凸的。
证明:假设次梯度不为空集,我们从次梯度 ∂f 中定义一个序列 (gn),使得 gn→g 。
(闭合性)对于所有的 y∈X,f(x)+⟨gn,y−x⟩≤f(y) 。 当 n→∞ 时,有 f(x)+⟨g,y−x⟩≤f(y)。因此边界 g∈∂f,次梯度为闭合集合。
(凸性)定义 g0,g1∈∂f(x) ,对于 λ∈[0,1],我们有
λf(x)+λ⟨g0,y−x⟩+(1−λ)f(x)+(1−λ)⟨g1,y−x⟩≤f(y)f(x)+⟨λg0+(1−λ)g1,y−x⟩≤f(y)⇔(λg0+(1−λ)g1)∈∂f(x)λ∈[0,1]故 ∂f 是闭合且凸的函数。 ◼
本节内容不是很多,只是大概回顾了一下次梯度的概念。下一节我们会继续介绍 方向导数 (Directional Derivatives) 的概念。
tags: math - convex-optimization