次导数(次梯度)简介

次导数

定义:若 f ( x ) f(x) f(x)是一个凸函数,则称 ∂ f = { v ∣ f ( x ) ≥ f ( x 0 ) + v T ( x − x 0 ) } \partial f = \{v| f(x)\geq f(x_0)+v^T(x-x_0)\} f={vf(x)f(x0)+vT(xx0)} f ( x ) f(x) f(x) x 0 x_0 x0处的次导数(次梯度)。其中 v T ( x − x 0 ) v^T(x-x_0) vT(xx0)是广义的内积,不一定是在欧氏空间内。

容易看出,若 f ( x ) f(x) f(x) x 0 x_0 x0处可导,那么由定义, f ( x ) − f ( x 0 ) = f ′ ( x 0 ) T ( x − x 0 ) + o ( ∥ x − x 0 ∥ ) ≥ v T ( x − x 0 ) f(x)-f(x_0)=f'(x_0)^T(x-x_0)+o(\Vert x-x_0 \Vert) \geq v^T(x-x_0) f(x)f(x0)=f(x0)T(xx0)+o(xx0)vT(xx0),从而导数 f ′ ( x 0 ) f'(x_0) f(x0)就是 f ( x ) f(x) f(x) x 0 x_0 x0处的次导数;而其他情况下, f ( x ) f(x) f(x)的次导数一般是一个集合。

从几何上看,我们可以在 x 0 x_0 x0点处作一条或无数条全部位于 f ( x ) f(x) f(x)图像下方的直线,而次导数就是这些直线的斜率的集合。当点可导时,这样的直线有且仅有一条,就是该处的切线。
在x_0点处可作多条满足条件的直线
例如,对于有尖点的绝对值函数,在0点处的次导数就是 { v ∈ R ∣   ∣ x ∣ ≥ v x } = [ − 1 , 1 ] \{ v\in \mathbb{R}|\ |x|\geq v x\}=[-1,1] {vR xvx}=[1,1] L 2 L_2 L2范数在 x = 0 x=0 x=0处梯度不存在(趋于 ∞ \infty ),但其次梯度为 { v ∈ R n ∣   ∥ x ∥ ≥ v T x } \{ v\in \mathbb{R}^n |\ \Vert x \Vert \geq v^Tx \} {vRn xvTx},也就是满足 ∥ v ∥ ≤ 1 \Vert v\Vert\leq1 v1的所有可能的向量。

提出次导数的关键目的在于,使得对于不那么光滑的函数也能够给出取极值的条件:

定理:若 f ( x ) f(x) f(x)是一个凸函数,且在 x 0 x_0 x0的邻域内次导数存在,则 x 0 x_0 x0 f ( x ) f(x) f(x)的极值点的必要条件为 0 ∈ ∂ f 0\in \partial f 0f

我们回顾可导的情况,极值的必要条件是该点的切线是水平的,即斜率为0。所以结合次导数的几何意义我们知道,这个定理说的就是,在极小值点,我们可以做一条水平的直线,使其全部位于 f ( x ) f(x) f(x)的下方。

同理,我们可以将KKT条件中的Stationarity从 ∇ L ( x , λ ) = 0 \nabla \mathscr{L}(x, \lambda)=0 L(x,λ)=0改为 0 ∈ ∂ L ( x , λ ) 0 \in \partial \mathscr{L}(x,\lambda) 0L(x,λ)。尤其是当约束当中含有像绝对值函数或者 L 1 L_1 L1范数这种有不可导点的函数时,次导数就会变得很有用。

你可能感兴趣的:(凸优化与矩阵分析)