0%

优化-3-梯度下降法

梯度下降法 Gradient Descent Method

本章中我们开始利用梯度信息解决最优化问题。基本的梯度下降法采用迭代法,基于“梯度方向是函数上升最快的方向”,每一轮迭代向梯度的反方向走一步,即

其中 称为步长 stepsize,用于约束每一步走的长度。

Vanilla Analysis

为了方便进行收敛性分析,我们假定目标函数 是凸的,处处可导的,且有全局最优解 。

在实际计算时,我们往往难以找到精确解,因此对于优化目标

我们往往目标会改为找到接近最优解的一个解即可,即

一个自然的问题是,我们如何约束 ?

方便起见,简写 表示 所在位置梯度。根据梯度下降的定义,我们有

利用 改写右项,有

将前 步累加,有

由凸函数性质,有

将前 步累加,有

于是可得关于平均误差的上界

在这个简单的证明中,还存在几个问题

  • 步长会对结果产生很大影响,不知道 等参数的情况下难以约束上界
  • 不能保证最后一步就是最好的解

Lipschitz Convex Functions

要使上述上界可求,我们要对 增加额外的约束,一个简单的想法就是直接约束

其中对 的约束实质上就是 Lipschitz Continuity。

那么可以利用基本不等式得到 ,代回上一节所得平均误差上界可得

不妨设 为 轮迭代中的最优解,则有

要使得误差降低到 以下,则有

于是得到收敛率

Smooth Convex Functions

Smoothness

对于处处可导的函数 ,如果满足

则称 是 L Smooth 的。

Smoothness

如图所示,Smoothness 是函数在切点处画出的二次曲线,作为函数的上界。 取值越大,则上界越高,越不光滑;而 取值越小,则上界越接近切线,函数越光滑。

事实上,Smoothness 即在函数梯度上的 Lipschitz Continuity,即

在这里我们给出以上两个关系的等价性证明。

一方面,当梯度满足 Lipschitz Continuity 时,由于 为凸函数,定义域为凸,故令 连线之间某处函数值为

利用 Lipschitz Continuity 性质,有

因此构造积分

于是 Smoothness 得证。

另一方面,当函数满足 Smoothness 时,有

交换 和 ,有

两式相加即可得到

于是梯度 Lipschitz Continuity 得证。

综上所述,函数 Smoothness 即为函数梯度 Lipschitz Continuity。

Convergence

考虑上一节中提出的 Smoothness,我们虽然不知道函数 的细节,但是我们可以利用 Smoothness 来最小化误差上界。首先,我们假设 是 Smooth 的,有

最小化 Smoothness 上界,简写为 RHS,得到

即

可以证明,当 是 Smooth 的时候,上述迭代式是收敛的,且收敛速度为 。

以下给出证明:

由于 是 Smooth 的,可以约束 Vanilla Analysis 中 ,有

代入 ,有

即

代回 Vanilla Analysis,有

移项得

由于迭代式每一步都是最小化上界,因此最后一步一定是最优的,即

要使得误差降低到 以下,则有

于是得到收敛率

Smooth and Strongly Convex Functions

Strongly Convex

对于处处可导的函数 ,如果满足

则称 是 Strongly Convex 的。

StronglyConvex

如图所示,Strongly Convex 是一个比 Convex 更强的下界。当一个函数既是 Strongly Convex 又是 Smooth 的时,直觉上这个函数的变化范围应该更小,因此收敛速度应该更快。

Convergence

假设我们的目标函数是 Smooth 且 Strongly Convex 的,则

使用上一节所得的迭代式,即

可以证明,上述迭代式是收敛的,且收敛速度为 。

以下给出证明:

由 Vanilla Analysis 有

由 Strongly Convex 有

代入 Vanilla Analysis,有

整理得

考虑噪声项

因此有

连乘展开得

由 Smoothness 且 ,有

代入上式,有

要使得误差降低到 以下,则有

于是得到收敛率