D1:等效训练时间的适用范围

比较优化器时常问:同一学习率下,动量 SGD 要多少步,才能把损失降到和无动量 SGD 一样的比例?工程上用“等效训练时间”做这个换算。

1. 公式与符号

下表是预测损失步数时用的等效训练时间。

优化器等效训练时间 $U$:预测损失步数用本程序实测范围与通过率
SGD(普通梯度下降)$U=\eta T$固定特征、8 维、5 个单方向目标;$G$ 不进入时间换算。
SGD+momentum(累积过去梯度)$U=\eta\left[\frac{T}{1-\mu}-\frac{\mu(1-\mu^T)}{(1-\mu)^2}\right]$;累计完成后近似 $\eta T/(1-\mu)$从零启动、$\mu=0.9$、早期弱曲率 4/4 配对为 0 步误差;晚期“启动修正不更差”在 6/10 配对失败。双方向目标还须附 $\alpha$ 与 $q$ 的范围。
Adam(按梯度历史缩放步长)$U_j=\frac{\eta T}{G_j+\epsilon}\approx\frac{\eta T}{G_j}$未测
AdamW(Adam 加独立参数衰减)$U_j=\frac{\eta}{G_j+\epsilon}\sum_{k=0}^{T-1}(1-\eta\omega)^k$未测
RMSprop(按近期梯度平方缩放步长)$U_j=\eta\sum_{t=1}^{T}\frac{1}{G_j\sqrt{1-\beta^t}+\epsilon}$未测
Adagrad(按累计梯度平方缩放步长)$U_j=\eta\sum_{t=1}^{T}\frac{1}{\sqrt{a_{0j}+tG_j^2}+\epsilon}$未测

符号:$U$ 是等效训练时间,$U_j$ 是第 $j$ 个参数方向的等效训练时间(自适应优化器须逐坐标记账)。$G=\lVert g\rVert_2$,$G_j=|g_j|$;$\eta$ 是学习率,$T$ 是步数,$\mu$ 是动量系数,$\epsilon$ 是防除零小正数,$\omega$ 是 AdamW 衰减系数,$\beta$ 是 RMSprop 平方平均系数,$a_{0j}$ 是 Adagrad 初始平方累积。

2. 用等效训练时间预测步数

我们是怎么用等效训练时间预测步数的呢?

首先,我们以 SGD 为例:取 SGD 训练到损失比 $q$ 时的步数为 $t_0$,再把它代入等效训练时间公式,令两边的 $U$ 相等,预测 SGD(mom=0.9) 训练到同一损失比的步数 $t$。

实验中我们对每个 $t_0$ 同时算两个预测:1. 稳态:$t_{\text{steady}}=\lceil t_0/10\rceil$,假设动量一开始就保持满速(这样就能直接套用上面的公式);2. 启动:$t_{\text{startup}}=\min\{t\in\mathbb N:10t-90(1-.9^t)\ge t_0\}$,把前几步的加速期算进去。两个预测分别和 SGD(mom=0.9) 训练到相同损失比的实测步数 $t_{\text{obs}}$ 比,误差 $E=|t_{\text{pred}}-t_{\text{obs}}|/t_{\text{obs}}$。$E\le5\%$ 算成立,$E\ge50\%$ 算失效。

3. 实验

3.1 控制快慢方向占比 如果损失由快慢两个方向组成,慢方向一开始占总损失的比例记为 $\alpha$,损失降到初始的多少记为 $q$。$\alpha$ 越小,慢方向越不重要。下表是谱 $[0.001,0.5]$、$q=0.01$ 的全部配对:

3.1 慢方向损失份额与预测误差谱 \([0.001,0.5]\) · \(q=0.01\) · mom=0.9 持续到 \(T\) 的端点
慢方向初始损失占比与两种等效步数预测误差 横轴为对数刻度的慢方向初始损失份额 alpha,纵轴为稳态预测和启动修正预测的相对绝对误差。虚线标示百分之五和百分之五十判据。 0%20%40% 60%80%100% 5% 成立线 50% 失效线 .001.005.009.010 .011.02.1.5 慢方向初始损失份额 \(\alpha\)(对数刻度) 稳态预测误差 启动修正预测误差

误差按 \(|t_{\mathrm{pred}}-t_{\mathrm{obs}}|/t_{\mathrm{obs}}\) 计算。数据来自保存的 r017 双方向实验:\(\alpha\) 表示慢方向在初始总损失中的份额;每个条件的 3 个坐标 seed 结果相同。图显示在这组固定谱和 \(q\) 下,低 \(\alpha\) 区间两种预测误差较大,高 \(\alpha\) 区间进入 5% 线内;这描述的是该二次模型的条件性结果。

由实验可知:$\alpha=0.02/0.1/0.5$ 时,两种误差都 ≤5%(3/3),我们的预测(预测方式见第二节)是准的。然而$\alpha=0.001/0.005/0.009$ 时都 ≥50%(3/3),换算失效。

边界不是固定的。把快方向从 0.5 改到 0.05,低 $\alpha$ 的失效判据变成 0/3(稳态 23.6842%–47.6190%,启动 47.3684%–69.0476%),高 $\alpha$ 仍 ≤5%。把 $q$ 降到 0.001,$\alpha=0.005$–0.5 的 5/5 进入 5%(稳态 0.091075%–0.680272%,启动 0.867410%–0.971817%);但 $\alpha=q=0.001$ 启动误差 8.988764%。

暗示的结论: 预测是否成立由谱、$\alpha$、$q$ 共同决定

3.2 动量启动修正预测到晚期会失效。 早期启动修正是非常准确的,但到 $q=0.01$、40000 步时,10 个配对里 6 个使用启动误差的组反而更差:$h=0.0001/0.001/0.005$ 实测 2290/217/37,稳态 2303/231/46,启动 2312/240/55;稳态误差 13/14/9 步,启动误差 22/23/18 步。

3.2 低曲率下的预测误差q=0.01 · 实测步数与两种预测的相对绝对误差
不同曲率下的动量步数预测相对绝对误差 稳态预测误差从 0.57% 上升至 24.32%;启动修正预测误差从 0.96% 上升至 48.65%。虚线为 5% 判据线。 0%10%20%30%40%50% 5% 判据线 0.00010.0010.005步长×曲率 h=ηλ 0.57%0.96%6.45%10.60%24.32%48.65% 稳态预测启动修正预测

图中为 q=0.01、g₀=0.003、持续达到 T 的结果;纵轴误差按 |预测步数 - 实测步数| / 实测步数 计算,数值与保存的 summary.json 一致。每个 h 下 3 个坐标 seed 的结果相同;按 5% 准则,h=0.0001 时两种预测都达标,h≥0.001 时均未达标。原研究 10 个配对条件中,6 个启动修正误差大于稳态预测误差。

暗示的结论: 我们提取的启动项是启发式的,只在早期有用,并不通用。

注: 自适应优化器还没有跑;表里那四行公式只是解析式。

本页为研究快照,网页在 prototype 仓库内维护