6.3 次梯度算法
上一节讨论了梯度下降法,使用该方法的前提为目标函数 f ( x ) f(x) f(x) 是一阶可微的。在实际应用中经常会遇到不可微的函数,对于这类函数我们无法在每个点处求出梯度,但往往它们的最优值都是在不可微点处取到的。为了能处理这种情形,这一节介绍次梯度算法。
回顾定义 2.21 (次梯度) 设
f
f
f 为适当凸函数,
x
x
x 为定义域
d
o
m
f
\mathbf{dom}f
domf 中的一点. 若向量
g
∈
R
n
g\in\mathbb{R}^n
g∈Rn 满足
f
(
y
)
⩾
f
(
x
)
+
g
T
(
y
−
x
)
,
∀
y
∈
d
o
m
f
,
f(y)\geqslant f(x)+g^\mathrm{T}(y-x),\quad\forall y\in\mathbf{dom}f,
f(y)⩾f(x)+gT(y−x),∀y∈domf,
则称
g
g
g 为函数
f
f
f 在点
x
x
x 处的一个次梯度,进一步地,称集合
∂
f
(
x
)
=
{
g
∣
g
∈
R
n
,
f
(
y
)
⩾
f
(
x
)
+
g
T
(
y
−
x
)
,
∀
y
∈
dom
f
}
\partial f(x)=\{g\:|\:g\in\mathbb{R}^n,f(y)\geqslant f(x)+g^\text{T}(y-x),\forall y\in\textbf{dom}\:f\}
∂f(x)={g∣g∈Rn,f(y)⩾f(x)+gT(y−x),∀y∈domf}
为 f f f 在点 x x x 处的次微分.
6.3.1 次梯度算法结构
在问题
min
x
∈
R
n
f
(
x
)
\min_{x\in\mathbb{R}^{n}}f(x)
minx∈Rnf(x) 中假设
f
(
x
)
f(x)
f(x) 为凸函数,但不一定可微。对凸函数可以在定义域的内点处定义次梯度
g
∈
∂
f
(
x
)
g\in\partial f(x)
g∈∂f(x)。为了极小化一个不可微的凸函数
f
f
f,可类似梯度法构造如下次梯度算法的迭代格式:
x
k
+
1
=
x
k
−
α
k
g
k
,
g
k
∈
∂
f
(
x
k
)
(
6.3.1
)
x^{k+1}=x^{k}-\alpha_{k}g^{k},\quad g^{k}\in\partial f(x^{k})\qquad(6.3.1)
xk+1=xk−αkgk,gk∈∂f(xk)(6.3.1)
其中
α
k
>
0
\alpha_k>0
αk>0 为步长。它通常有如下四种选择:
(1) 固定步长
α
k
=
α
\alpha_k=\alpha
αk=α;
(2) 固定
∥
x
k
+
1
−
x
k
∥
\|x^{k+1}-x^k\|
∥xk+1−xk∥,即
α
k
∥
g
k
∥
\alpha_k\|g^k\|
αk∥gk∥ 为常数;
(3) 消失步长
α
k
→
0
\alpha_k\to 0
αk→0 且
∑
k
=
0
∞
α
k
=
+
∞
\displaystyle\sum_{k=0}^{\infty}\alpha_k=+\infty
k=0∑∞αk=+∞;
(4) 选取
α
k
\alpha_k
αk 使其满足某种线搜索准则。
步长选取在次梯度法中的影响非常大,下面将讨论在不同步长取法下次梯度算法的收敛性质。
6.3.2 收敛性分析
本小节讨论次梯度算法的收敛性。首先我们列出 f ( x ) f(x) f(x) 所要满足的基本假设。
假设 6.1 对无约束优化问题 min x ∈ R n f ( x ) \min_{x\in\mathbb{R}^{n}} f(x) minx∈Rnf(x),目标函数 f ( x ) f(x) f(x) 满足:
(1) f f f 为凸函数;
(2) f f f 至少存在一个有限的极小值点 x ∗ x^* x∗,且 f ( x ∗ ) > − ∞ f(x^*)>-\infty f(x∗)>−∞;
(3) f f f 为利普希茨连续的,即
∣ f ( x ) − f ( y ) ∣ ⩽ G ∥ x − y ∥ , ∀ x , y ∈ R n \begin{aligned}|f(x)-f(y)|\leqslant G\|x-y\|,\quad\forall\:x,y\in\mathbb{R}^n\end{aligned} ∣f(x)−f(y)∣⩽G∥x−y∥,∀x,y∈Rn其中 G > 0 G>0 G>0 为利普希茨常数.
对于次梯度算法,我们假设 f ( x ) f(x) f(x) 本身是利普希茨连续的,这等价于 f ( x ) f(x) f(x) 的次梯度有界。实际上有如下引理:
引理 6.2 设 f ( x ) f(x) f(x) 为凸函数,则 f ( x ) f(x) f(x) 是 G-利普希茨连续的当且仅当 f ( x ) f(x) f(x) 的次梯度是有界的,即
∥ g ∥ ⩽ G , ∀ g ∈ ∂ f ( x ) , x ∈ R n . \lVert g\rVert\leqslant G,\quad\forall\:g\in\partial f(x),x\in\mathbb{R}^n. ∥g∥⩽G,∀g∈∂f(x),x∈Rn.证明.
先证充分性. 假设对任意次梯度 g g g 都有 ∥ g ∥ ⩽ G \|g\|\leqslant G ∥g∥⩽G, 取 g y ∈ ∂ f ( y ) , g x ∈ ∂ f ( x ) g_y\in\partial f(y),g_{x}\in\partial f(x) gy∈∂f(y),gx∈∂f(x), 由次梯度的定义得出
g x T ( x − y ) ⩾ f ( x ) − f ( y ) ⩾ g y T ( x − y ) . g_{x}^{\mathrm{T}}(x-y)\geqslant f(x)-f(y)\geqslant g_{y}^{\mathrm{T}}(x-y). gxT(x−y)⩾f(x)−f(y)⩾gyT(x−y).再由柯西不等式,
g x T ( x − y ) ⩽ ∥ g x ∥ ∥ x − y ∥ ⩽ G ∥ x − y ∥ , g y T ( x − y ) ⩾ − ∥ g y ∥ ∥ x − y ∥ ⩾ − G ∥ x − y ∥ . \begin{aligned}g_x^\mathrm{T}(x-y)&\leqslant\|g_x\|\|x-y\|\leqslant G\|x-y\|,\\g_y^\mathrm{T}(x-y)&\geqslant-\|g_y\|\|x-y\|\geqslant-G\|x-y\|.\end{aligned} gxT(x−y)gyT(x−y)⩽∥gx∥∥x−y∥⩽G∥x−y∥,⩾−∥gy∥∥x−y∥⩾−G∥x−y∥.结合上面两个不等式最终有
∣ f ( x ) − f ( y ) ∣ ⩽ G ∥ x − y ∥ . \begin{aligned}|f(x)-f(y)|\leqslant G\|x-y\|.\end{aligned} ∣f(x)−f(y)∣⩽G∥x−y∥.再证必要性. 设 f ( x ) f(x) f(x) 是 G-利普希茨连续的,反设存在 x x x 和 g ∈ ∂ f ( x ) g\in\partial f(x) g∈∂f(x) 使得 ∥ g ∥ > G \|g\|>G ∥g∥>G, 取 y = x + g ∥ g ∥ y=x+\frac{g}{\|g\|} y=x+∥g∥g, 则根据次梯度的定义,
f ( y ) ⩾ f ( x ) + g T ( y − x ) = f ( x ) + ∥ g ∥ > f ( x ) + G , \begin{gathered} f(y) \geqslant f(x)+g^{\mathrm{T}}(y-x)=f(x)+\|g\|>f(x)+G, \end{gathered} f(y)⩾f(x)+gT(y−x)=f(x)+∥g∥>f(x)+G,这与 f ( x ) f(x) f(x) 是 G G G-利普希茨连续的矛盾,因此必要性成立. 得证.
1. 不同步长下的收敛性
次梯度法不是一个下降方法,即无法保证
f
(
x
k
+
1
)
<
f
(
x
k
)
f(x^{k+1})<f(x^k)
f(xk+1)<f(xk), 收敛性分析的关键是分析
f
(
x
)
f(x)
f(x) 历史迭代的最优点所满足的性质. 实际上有如下定理。
定理 6.5 (次梯度算法的收敛性) 在假设 6.1 的条件下,设 { α k > 0 } \{\alpha_k>0\} {αk>0} 为任意步长序列, { x k } \{x^k\} {xk} 是由算法 (6.3.1) 产生的迭代序列,则对任意的 k ⩾ 0 k\geqslant 0 k⩾0,有
2 ( ∑ i = 0 k α i ) ( f ^ k − f ∗ ) ⩽ ∥ x 0 − x ∗ ∥ 2 + ∑ i = 0 k α i 2 G 2 ( 6.3.2 ) 2\left(\sum_{i=0}^k\alpha_i\right)(\hat{f}^k-f^*)\leqslant\|x^0-x^*\|^2+\sum_{i=0}^k\alpha_i^2G^2\qquad(6.3.2) 2(i=0∑kαi)(f^k−f∗)⩽∥x0−x∗∥2+i=0∑kαi2G2(6.3.2)其中 x ∗ x^* x∗ 是 f ( x ) f(x) f(x) 的一个全局极小值点, f ∗ = f ( x ∗ ) , f ^ k f^*=f(x^*),\hat{f}^k f∗=f(x∗),f^k 为前 k k k 次迭代 f ( x ) f(x) f(x) 的最小值,即
f ^ k = min 0 ⩽ i ⩽ k f ( x i ) . \hat{f}^{k}=\operatorname*{min}_{0\leqslant i\leqslant k}f(x^{i}). f^k=0⩽i⩽kminf(xi).证明. 该证明的关键是估计迭代点 x k x^k xk 与最小值点 x ∗ x^* x∗ 之间的距离满足的关系.
根据迭代格式 x k + 1 = x k − α k g k , g k ∈ ∂ f ( x k ) x^{k+1}=x^{k}-\alpha_{k}g^{k},\quad g^{k}\in\partial f(x^{k}) xk+1=xk−αkgk,gk∈∂f(xk), 有
∥ x i + 1 − x ∗ ∥ 2 = ∥ x i − α i g i − x ∗ ∥ 2 = ∥ x i − x ∗ ∥ 2 − 2 α i ⟨ g i , x i − x ∗ ⟩ + α i 2 ∥ g i ∥ 2 ⩽ ∥ x i − x ∗ ∥ 2 − 2 α i ( f ( x i ) − f ∗ ) + α i 2 G 2 . ( 6.3.3 ) \begin{aligned} \|x^{i+1}-x^{*}\|^{2}& =\|x^{i}-\alpha_{i}g^{i}-x^{*}\|^{2} \\ &=\|x^{i}-x^{*}\|^{2}-2\alpha_{i}\left\langle g^{i},x^{i}-x^{*}\right\rangle+\alpha_{i}^{2}\|g^{i}\|^{2} \\ &\leqslant\|x^{i}-x^{*}\|^{2}-2\alpha_{i}(f(x^{i})-f^{*})+\alpha_{i}^{2}G^{2}. \end{aligned}\qquad(6.3.3) ∥xi+1−x∗∥2=∥xi−αigi−x∗∥2=∥xi−x∗∥2−2αi⟨gi,xi−x∗⟩+αi2∥gi∥2⩽∥xi−x∗∥2−2αi(f(xi)−f∗)+αi2G2.(6.3.3)这里最后一个不等式是根据次梯度的定义和 ∥ g i ∥ ⩽ G \|g^i\|\leqslant G ∥gi∥⩽G. 将 (6.3.3) 式移项,等价于
2 α i ( f ( x i ) − f ∗ ) ⩽ ∥ x i − x ∗ ∥ 2 − ∥ x i + 1 − x ∗ ∥ 2 + α i 2 G 2 . ( 6.3.4 ) \begin{aligned}2\alpha_{i}(f(x^{i})-f^{*})\leqslant\|x^{i}-x^{*}\|^{2}-\|x^{i+1}-x^{*}\|^{2}+\alpha_{i}^{2}G^{2}.\end{aligned}\qquad(6.3.4) 2αi(f(xi)−f∗)⩽∥xi−x∗∥2−∥xi+1−x∗∥2+αi2G2.(6.3.4)对(6.3.4)式两边关于 i i i 求和 (从 0 到 k k k), 有
2 ∑ i = 0 k α i ( f ( x i ) − f ∗ ) ⩽ ∥ x 0 − x ∗ ∥ 2 − ∥ x k + 1 − x ∗ ∥ 2 + G 2 ∑ i = 0 k α i 2 ⩽ ∥ x 0 − x ∗ ∥ 2 + G 2 ∑ i = 0 k α i 2 . \begin{gathered} 2\sum_{i=0}^{k}\alpha_{i}(f(x^{i})-f^{*}) \leqslant\|x^0-x^*\|^2-\|x^{k+1}-x^*\|^2+G^2\sum_{i=0}^k\alpha_i^2 \\ \leqslant\|x^{0}-x^{*}\|^{2}+G^{2}\sum_{i=0}^{k}\alpha_{i}^{2}. \end{gathered} 2i=0∑kαi(f(xi)−f∗)⩽∥x0−x∗∥2−∥xk+1−x∗∥2+G2i=0∑kαi2⩽∥x0−x∗∥2+G2i=0∑kαi2.根据 f ^ k \hat{f}^k f^k 的定义容易得出
∑ i = 0 k α i ( f ( x i ) − f ∗ ) ⩾ ( ∑ i = 0 k α i ) ( f ^ k − f ∗ ) . \sum_{i=0}^k\alpha_i(f(x^i)-f^*)\geqslant\left(\sum_{i=0}^k\alpha_i\right)(\hat{f}^k-f^*). i=0∑kαi(f(xi)−f∗)⩾(i=0∑kαi)(f^k−f∗).
结合以上两式得证.
定理 6.5 揭示了次梯度算法的一些关键性质:次梯度算法的收敛性非常依赖于步长的选取;次梯度算法是非单调算法,可以配套非单调线搜索准则 (6.1.5) 和 (6.1.6) 一起使用。根据定理 6.5 可以直接得到不同步长取法下次梯度算法的收敛性。
推论 6.2 在假设 6.1 的条件下,次梯度算法的收敛性满足 ( f ^ k \hat{f}^k f^k 的定义和定理 6.5 中的定义相同):
(1) 取 α i = t \alpha_i=t αi=t 为固定步长,则
f ^ k − f ∗ ⩽ ∥ x 0 − x ∗ ∥ 2 2 k t + G 2 t 2 \hat{f}^{k}-f^{*}\leqslant\frac{\|x^{0}-x^{*}\|^{2}}{2kt}+\frac{G^{2}t}{2} f^k−f∗⩽2kt∥x0−x∗∥2+2G2t(2) 取 α i \alpha_i αi 使得 ∥ x i + 1 − x i ∥ \|x^{i+1}-x^i\| ∥xi+1−xi∥ 固定,即 α i ∥ g i ∥ = s \alpha_i\|g^i\|=s αi∥gi∥=s 为常数,则
f ^ k − f ∗ ⩽ G ∥ x 0 − x ∗ ∥ 2 2 k s + G s 2 \hat{f}^k-f^*\leqslant\frac{G\|x^0-x^*\|^2}{2ks}+\frac{Gs}2 f^k−f∗⩽2ksG∥x0−x∗∥2+2Gs(3) 取 α i \alpha_i αi 为消失步长,即 α i → 0 \alpha_i\to 0 αi→0 且 ∑ i = 0 ∞ α i = + ∞ \displaystyle\sum_{i=0}^\infty\alpha_i=+\infty i=0∑∞αi=+∞,则
f ^ k − f ∗ ⩽ ∥ x 0 − x ∗ ∥ 2 + G 2 ∑ i = 0 k α i 2 2 ∑ i = 0 k α i \hat{f}^k-f^*\leqslant\frac{\|x^0-x^*\|^2+G^2\displaystyle\sum_{i=0}^k\alpha_i^2}{2\displaystyle\sum_{i=0}^k\alpha_i} f^k−f∗⩽2i=0∑kαi∥x0−x∗∥2+G2i=0∑kαi2进一步可得 f ^ k \hat{f}^k f^k 收敛到 f ∗ . f^*. f∗.
从推论 6.2 可以看到,和梯度法不同,只有当 α k \alpha_k αk 取消失步长时 f ^ k \hat{f}^k f^k 才具有收敛性。一个常用的取法是 α k = 1 k \alpha_k=\frac{1}{k} αk=k1 这样不但可以保证其为消失步长,还可以保证 ∑ i = 0 ∞ α i 2 \displaystyle\sum_{i=0}^{\infty}\alpha_i^2 i=0∑∞αi2 有界。
2. 收敛速度和步长的关系
在推论 6.2 中,通过适当选取步长
α
i
\alpha_i
αi 可以获得对应次梯度算法的收敛速度。假设
∥
x
0
−
x
∗
∥
⩽
R
\|x^0-x^*\|\leqslant R
∥x0−x∗∥⩽R,即初值和最优解之间的距离有上界,并且总迭代步数
k
k
k 是给定的,根据推论 6.2 的第一个结论,
f
^
k
−
f
∗
⩽
∥
x
0
−
x
∗
∥
2
2
k
t
+
G
2
t
2
⩽
R
2
2
k
t
+
G
2
t
2
\hat{f}^k-f^*\leqslant\frac{\lVert x^0-x^*\rVert^2}{2kt}+\frac{G^2t}{2}\leqslant\frac{R^2}{2kt}+\frac{G^2t}{2}
f^k−f∗⩽2kt∥x0−x∗∥2+2G2t⩽2ktR2+2G2t
在固定步长下,由平均值不等式得知当 t t t 满足
R 2 2 k t = G 2 t 2 , 即 t = R G k \frac{R^2}{2kt}=\frac{G^2t}{2},\quad\text{即 }t=\frac{R}{G\sqrt{k}} 2ktR2=2G2t,即 t=GkR
时,右端达到最小,k 步后得到的上界是
f
^
k
−
f
∗
⩽
G
R
k
\hat{f}^k-f^*\leqslant\frac{GR}{\sqrt{k}}
f^k−f∗⩽kGR
以上分析表明要使得目标函数值达到
ε
\varepsilon
ε 的精度,即
f
^
k
−
f
∗
⩽
ε
\hat{f}^k-f^*\leqslant\varepsilon
f^k−f∗⩽ε,必须取迭代步数
k
=
O
(
1
ε
2
)
k=\mathcal{O}\left(\displaystyle\frac{1}{\varepsilon^2}\right)
k=O(ε21) 且固定步长
α
k
\alpha_k
αk 要满足
t
=
O
(
1
k
)
t=\mathcal{O}\left(\displaystyle\frac{1}{\sqrt{k}}\right)
t=O(k1)。这里的固定步长依赖于最大迭代步数。从上面的取法中还可以看出对于满足假设 6.1 的函数
f
f
f,最大迭代步数可以作为判定迭代点是否最优的一个终止准则。
类似地,根据推论 6.2 的第二个结论以及平均值不等式,在固定
∥
x
i
+
1
−
\|x^{i+1}-
∥xi+1−
x
i
∥
x^i\|
xi∥ 的条件下可以取
s
=
R
k
s=\displaystyle\frac{R}{\sqrt{k}}
s=kR,同样会得到估计
f
^
k
−
f
∗
⩽
G
R
k
\hat{f}^k-f^*\leqslant\frac{GR}{\sqrt{k}}
f^k−f∗⩽kGR
如果我们知道 f ( x ) f(x) f(x) 的更多信息,则可以利用这些信息来选取步长。例如在某些应用中可预先知道 f ∗ f^* f∗ 的值 (但不知道最小值点),根据 (6.3.3) 式当
α i = f ( x i ) − f ∗ ∥ g i ∥ 2 \alpha_i=\frac{f(x^i)-f^*}{\|g^i\|^2} αi=∥gi∥2f(xi)−f∗
时,不等式右侧达到极小,这等价于
( f ( x i ) − f ∗ ) 2 ∥ g i ∥ 2 ⩽ ∥ x i − x ∗ ∥ 2 − ∥ x i + 1 − x ∗ ∥ 2 \frac{(f(x^i)-f^*)^2}{\|g^i\|^2}\leqslant\|x^i-x^*\|^2-\|x^{i+1}-x^*\|^2 ∥gi∥2(f(xi)−f∗)2⩽∥xi−x∗∥2−∥xi+1−x∗∥2
递归地利用上式并结合 ∥ x 0 − x ∗ ∥ ⩽ R \|x^0-x^*\|\leqslant R ∥x0−x∗∥⩽R 和 ∥ g i ∥ ⩽ G \|g^i\|\leqslant G ∥gi∥⩽G,可以得到
f ^ k − f ∗ ⩽ G R k \hat{f}^k-f^*\leqslant\frac{GR}{\sqrt{k}} f^k−f∗⩽kGR
注意,此时步长的选取已经和最大迭代数无关,它仅仅依赖于当前点处的函数值与最优值的差和次梯度模长。