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 且 ,有

代入上式,有

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

于是得到收敛率