数据科学优化:旧事重提
在这轮笔记中,我们试着回忆本学期《数据科学导论》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
假设:
- \(f\) 是 \(m\)-强凸函数;
- \(\nabla f\) 是 \(L\)-Lipschitz 连续的;
- 随机梯度满足
取常数步长 \(\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:
- 从上一 epoch 的内层点中选取快照
- 计算全梯度
- 令
-
对 \(k=0,\ldots,T-1\):
-
以概率 \(\mathbb P(i_k=j)=p_j\) 抽取 \(i_k\);
- 计算
- 更新
每个 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\),最终得到