跳转至

数据科学优化:旧事重提

在这轮笔记中,我们试着回忆本学期《数据科学导论》PPT 中与优化有关的内容,主要包括:

  • 梯度下降(Gradient Descent, GD)的下降性质、收敛速度及其所需条件;
  • 随机梯度下降(Stochastic Gradient Descent, SGD)的基本不等式、期望界与高概率界;
  • 强凸条件下 SGD 的收敛;
  • 方差缩减方法 SVRG。

实际深度学习中还经常使用 AdamW 与 Muon,不过本文暂不展开。


1. 梯度下降

1.1 算法定义

设目标函数为

给定初始点 \(x_0\),梯度下降迭代为

其中 \(\alpha_k>0\) 为步长。

为什么选择负梯度方向作为下降方向?

关键在于:如果 \(\nabla f\)\(L\)-Lipschitz 连续的,即

注:对于二阶可微的情况下,这等价于Hesse阵的2范数小于等于L

那么由下降引理(descent lemma),对任意 \(x,y\in\mathbb R^d\),都有

因此,只要下降的步长足够小,在此处可以写为\(0<\alpha_k<\frac{2}{L}\)

就有

1.2 梯度范数的次线性收敛

将上面的下降不等式应用于梯度下降,并对 \(k<t\) 求和:

若取常数步长

\(\alpha\) 优化可得 \(\alpha=1/L\),于是

这里并没有使用凸性。因此,对一般光滑非凸函数,梯度下降至少可以保证在 \(O(1/t)\) 的意义下找到近似驻点。

1.3 MM 算法视角

梯度下降也可以放在 MM(Majorization-Minimization)框架中理解。构造代理函数

由下降引理,

然后令

\(M(x_k,y)\) 关于 \(y\) 求最小值,便得到


当然,我们关于梯度下降算法,例如牛顿法,拟牛顿法等部分放在了优化对应的部分,还附上了一些数值实验。

2. 不要求凸性时的函数值收敛

2.1 一个广义星凸条件

假设存在 \(\gamma>0\),使得

由 Cauchy--Schwarz 不等式,

采用步长 \(1/L\)

并定义初始水平集半径

由于函数值单调下降,所有 \(x_k\) 都位于该水平集内。因此,由条件 (1),

另一方面,由下降引理,

于是

由于 \(\varepsilon_{k+1}\le\varepsilon_k\)

\(x^*\) 是可微函数的极小点,则 \(\nabla f(x^*)=0\)。再由 \(L\)-光滑性,

\(k=0,\ldots,t-1\) 求和:

因此

2.2 PL 条件与线性收敛

若希望函数值线性收敛,并不一定需要强凸性。一个常用条件是 Polyak--Łojasiewicz(PL)条件:存在 \(m>0\),使得

结合步长 \(1/L\) 时的下降不等式,

可得

因此

PL 条件不蕴含凸性。例如,PPT 中给出的非凸例子是

PL 条件对于分析过参数化深度学习中的 GD 与 SGD 很重要。


3. 不可微优化与近端梯度

对于不可微但凸的函数,可以用次梯度代替梯度。例如,ReLU 在 \(x=0\) 处不可微,但存在次梯度。

需要注意的是,即使每一层所使用的函数本身是凸函数,函数复合后也未必保持凸性。因此,神经网络的整体优化问题通常仍然是非凸的。

考虑复合优化问题

其中 \(f\) 光滑,\(h\) 可以不可微。近端梯度下降为

其中


4. 近似梯度与 SGD 的基本不等式

考虑凸优化问题

并采用近似梯度迭代

其中 \(g_k\)\(\nabla f(x_k)\) 的近似。

4.1 Key step

取常数步长 \(\alpha_k=\alpha\)。对任意比较点 \(z\)

由凸性,

定义误差项

于是

整理得到基本不等式:

4.2 平均迭代点的误差界

并取

定义平均迭代点

将基本不等式对 \(k<t\) 求和,再利用凸性,得到


5. SGD 的鞅差误差项

SGD 中假设随机梯度满足无偏性:

其中 \(\mathcal F_{k-1}\) 表示第 \(k\) 次采样前的历史信息。

由于 \(x_k\)\(\mathcal F_{k-1}\) 可测,

因此 \(\{\varepsilon_k\}\) 是鞅差序列,并且

5.1 高概率界

由条件 Hoeffding 引理,

递推可得

因此,对任意 \(s>0\)

其中最后一步取

令右端等于 \(\delta\),则以至少 \(1-\delta\) 的概率,

\(z=x^*\),可得

以至少 \(1-\delta\) 的概率成立。

5.2 期望界

由塔式法则,

因此

这给出了凸情形下 SGD 的典型 \(O(t^{-1/2})\) 收敛率。


6. SGD 在经验风险最小化中的形式

6.1 有限样本 ERM

经验风险最小化可以写成

其中

\((X_i,Y_i)\) 是来自分布 \(P\) 的 i.i.d. 样本。

在第 \(k\) 次迭代中,以概率

抽取样本指标 \(i_k\),并令

6.2 总体风险最小化

总体风险写为

\(k\) 次迭代抽取

并令


7. 强凸条件下的 SGD

假设:

  1. \(f\)\(m\)-强凸函数;
  2. \(\nabla f\)\(L\)-Lipschitz 连续的;
  3. 随机梯度满足

取常数步长 \(\alpha_k=\alpha\)。有

对于 \(m\)-强凸且 \(L\)-光滑的函数,有强化余单调不等式

\(y=x^*\),并使用 \(\nabla f(x^*)=0\),得到

对递推式取期望:

若选择

则最后一项非正。又因为 \(L\ge m\)

从而

递推得到

这说明:使用常数步长时,SGD 在初期呈线性收敛,但最终只能收敛到一个半径由 \(\alpha G^2/m\) 控制的噪声邻域。若要继续提高精度,就需要减小步长或降低方差。

7.1 GD 与 SGD 的计算复杂度比较

在强凸有限和问题中,令条件数

典型复杂度可概括为:

方法 迭代复杂度 单次迭代成本 总计算成本
GD \(O\!\left(\kappa\log\frac1\varepsilon\right)\) \(O(n)\) \(O\!\left(n\kappa\log\frac1\varepsilon\right)\)
SGD \(O\!\left(\frac1\varepsilon\right)\) \(O(1)\) \(O\!\left(\frac1\varepsilon\right)\)

因此,当样本量 \(n\) 很大且只要求中等精度时,SGD 往往更有吸引力。粗略地说,当

时,SGD 的总计算量可能小于 GD。


8. 方差缩减:SVRG

8.1 控制变量思想

如果 \(Y\)\(X\) 正相关,并且 \(\mathbb E[Y]\) 容易计算,就可以通过适当选择 \(\theta\) 降低方差。

SVRG(Johnson--Zhang, 2013)使用

其中 \(\tilde x\) 是外层循环中保存的快照点,并且

8.2 SVRG 算法

考虑

给定内层迭代次数 \(T\)。在第 \(s\) 个 epoch:

  1. 从上一 epoch 的内层点中选取快照
  1. 计算全梯度
  1. \(k=0,\ldots,T-1\)

  2. 以概率 \(\mathbb P(i_k=j)=p_j\) 抽取 \(i_k\)

  3. 计算
  • 更新

每个 epoch 大约需要 \(n+2T\) 次分量梯度计算。

8.3 线性收敛结论

假设:

  • 每个 \(f_i\) 都是凸函数;
  • 每个 \(\nabla f_i\) 都是 \(L\)-Lipschitz 连续的;
  • \(f\)\(m\)-强凸函数;
  • 暂取 \(h=0\)

\(T\) 足够大,并且

例如,选择

可得

因此达到精度 \(\varepsilon\) 需要

个 epoch。若 \(T\asymp\max\{n,\kappa\}\),总计算成本为

相比之下,GD 的复杂度为


9. SVRG 收敛证明梗概

为简化记号,令

则内层更新为

定义

由构造可知

由前面的 key step,

SVRG 的核心是证明方差界

于是

\(k=0,\ldots,T-1\) 求和,并使用

以及强凸性给出的

可得

两边除以 \(2\alpha(1-2L\alpha)T\),便得到

其中

只要 \(\rho<1\),就得到按 epoch 计算的线性收敛。

9.1 方差界的标准推导

在均匀采样或适当归一化的记号下,可将 \(G_{s,k}\) 写成

利用

以及

可得

对凸且 \(L\)-光滑的 \(f_i\),有

\(i\) 取期望并利用 \(\nabla f(x^*)=0\),最终得到