1. 零阶优化与稳定性边缘:从理论到实践的深度解析
在深度学习的优化工具箱里,梯度下降及其变体(如带动量的SGD、Adam)无疑是绝对的主角。我们习惯于分析损失曲面的局部几何性质——特别是Hessian矩阵的特征值——来理解优化器的行为。一个著名的现象是“稳定性边缘”:在训练深度网络时,梯度下降往往会将Hessian的最大特征值推向并稳定在 (2/\eta) 附近,其中 (\eta) 是学习率。这个现象不仅有趣,还揭示了优化与泛化之间深刻的联系。
但如果我们拿不到梯度呢?
这就是零阶优化登场的场景。无论是黑盒优化、隐私保护下的微调,还是受内存限制的大模型训练,零阶方法都提供了一种仅通过函数值评估就能更新参数的途径。最近的研究表明,像MeZO这样的零阶方法甚至能以可比的精度微调大语言模型,同时大幅降低内存开销。然而,一个根本问题随之而来:零阶优化器在深度网络训练中,是否也存在类似的“稳定性边缘”现象?如果存在,它又由什么机制控制?
我最初也以为答案会是Hessian最大特征值的简单类比。但实际的理论推导和实验结果表明,事情远比这复杂。零阶优化的稳定性机制与一阶方法有着本质的不同:它不再只关注损失曲面最陡峭的方向(最大特征值),而是与整个曲面的“总曲率”——即Hessian的迹——紧密相关。这种差异带来了独特的隐式正则化效应:大学习率在零阶优化中主要惩罚的是Hessian的迹,而非其最大特征值。
在这篇文章里,我将带你深入零阶优化的动力学世界。我们会从基本的均方稳定性理论出发,推导出ZO-GD、ZO-GDM和ZO-Adam的精确稳定性条件,并通过在CNN、ResNet和Vision Transformer上的实验,展示这些方法如何在实际训练中自然地运行在理论预测的稳定性边界上。无论你是正在探索内存高效微调的研究者,还是对优化理论本身感兴趣的实践者,理解零阶优化的这一独特性质,都能为你提供新的视角和工具。
2. 理论基础:从一阶到零阶的稳定性范式转变
2.1 一阶优化的稳定性边缘:一个经典图景
让我们先快速回顾一下一阶优化中的稳定性边缘理论。考虑一个简单的二次损失函数 (f(x) = \frac{1}{2}x^\top H x),其中 (H) 是正定Hessian矩阵。对于梯度下降(GD),更新规则为 (x_{t+1} = x_t - \eta \nabla f(x_t) = (I - \eta H)x_t)。
从线性动力学的角度看,迭代稳定的条件是矩阵 (I - \eta H) 的所有特征值的模都小于1。这等价于要求对于Hessian的每个特征值 (\lambda_i),都有 (|1 - \eta \lambda_i| < 1),即 (0 < \eta \lambda_i < 2)。因此,临界学习率由最大特征值决定:(\eta_{\text{crit}} = 2/\lambda_{\text{max}}(H))。超过这个值,迭代就会在对应特征方向上发散。
在深度神经网络训练中,Cohen等人(2021)观察到一个有趣的现象:即使学习率超过了这个局部二次模型的阈值,优化过程仍然能够保持稳定。沿着训练轨迹,Hessian的最大特征值 (\lambda_{\text{max}}(H_t)) 会在训练早期增长,然后长期稳定在 (2/\eta) 附近。这就是所谓的“稳定性边缘”现象——优化器并非在绝对稳定的区域内运行,而是在稳定与不稳定的边界上“走钢丝”。
对于带动量的梯度下降(GDM),稳定性条件变为 (\eta_{\text{crit}} = 2(1+\beta)/\lambda_{\text{max}}(H)),其中 (\beta) 是动量系数。对于Adam类优化器,稳定性则由预条件Hessian (P^{-1}H) 的最大特征值控制。无论哪种情况,稳定性都由Hessian谱的“极端”部分——最大特征值——主导。
2.2 零阶优化的核心挑战:随机性带来的根本差异
零阶方法的核心思想是用函数值的差分来估计梯度。最常用的对称两点估计器为:
[ \hat{\nabla} f(x) = \frac{f(x + \mu u) - f(x - \mu u)}{2\mu} \cdot u, \quad u \sim \mathcal{N}(0, I) ]
其中 (\mu > 0) 是一个小的平滑参数。在二次损失 (f(x) = \frac{1}{2}x^\top H x) 下,这个估计器可以简化为 (\hat{\nabla} f(x) = (uu^\top H) x)。
这里的关键在于:即使使用全批量数据,零阶更新的随机性也不会消失,因为每个迭代都要采样新的随机方向 (u)。这种固有的随机性使得我们不能像分析一阶方法那样,只关注平均轨迹 (\mathbb{E}[x_t]) 的稳定性。即使平均轨迹保持有界,迭代的二阶矩 (\mathbb{E}[|x_t|^2]) 仍可能发散,导致实际训练不稳定。
因此,对于零阶优化,正确的稳定性概念是均方稳定性:要求 (\sup_{t \geq 0} \mathbb{E}[|x_t - x^*|^2] < \infty)。这比一阶方法中的平均稳定性更强,也更能捕捉随机动力学中的波动行为。
2.3 零阶优化的均方稳定性理论框架
为了分析零阶优化的均方稳定性,我们需要研究二阶矩矩阵 (\Sigma_t = \mathbb{E}[x_t x_t^\top]) 的演化。对于ZO-GD,在二次损失下,迭代公式为 (x_{t+1} = (I - \eta u_t u_t^\top H) x_t)。利用高斯向量的四阶矩公式(Isserlis定理),我们可以推导出 (\Sigma_t) 的线性递归关系:
[ \Sigma_{t+1} = \Sigma_t - \eta(H\Sigma_t + \Sigma_t H) + \eta^2(2H\Sigma_t H + \text{Tr}(H\Sigma_t H)I) ]
这个递归关系定义了一个线性算子 (T_H: \Sigma \mapsto \Sigma_{t+1})。均方稳定性等价于这个算子的谱半径 (\rho(T_H) < 1)。
通过仔细分析这个算子的谱性质,我们可以得到ZO-GD的精确稳定性条件。令人惊讶的是,这个条件不再仅仅依赖于 (\lambda_{\text{max}}(H)),而是涉及Hessian的所有特征值。具体来说,临界学习率 (\eta_{\text{ms}}^*) 是下面方程的唯一解:
[ \eta \lambda_{\text{max}}(H) < 1 \quad \text{且} \quad \sum_{i=1}^d \frac{\eta \lambda_i}{2(1 - \eta \lambda_i)} = 1 ]
这个方程明确显示了整个Hessian谱的参与。然而,在实际的神经网络训练中,计算完整的Hessian谱是不现实的。因此,我们推导出了仅依赖于Hessian迹和最大特征值的可计算边界:
[ \frac{2}{\text{Tr}(H) + 2\lambda_{\text{max}}(H)} \leq \eta_{\text{ms}}^* \leq \frac{2}{\text{Tr}(H)} ]
这个结果已经暗示了迹在零阶稳定性中的核心作用。当 (\text{Tr}(H) \gg \lambda_{\text{max}}(H)) 时(这在过参数化的深度网络中通常是成立的),上下界会变得很紧,此时稳定性主要由迹项 (\text{Tr}(H)) 控制。
2.4 动量与自适应方法的影响:与一阶方法的对比
对于带动量的零阶梯度下降(ZO-GDM),稳定性条件变得更加复杂。我们的分析显示,动量系数 (\beta) 对零阶和一阶方法的影响方向是相反的:
- 一阶GDM:增加 (\beta) 会扩大稳定区域,允许更大的学习率,对应EoS处有 (\lambda_{\text{max}}(H_t) \approx 2(1+\beta)/\eta)
- 零阶GDM:增加 (\beta) 反而会缩小稳定区域,对应EoS处有 (\text{Tr}(H_t) \approx 2(1-\beta)/\eta)
这种差异的直观解释是:在一阶GDM中,动量主要作用是阻尼确定性振荡,从而稳定尖锐方向上的动力学。但在零阶GDM中,动量不仅累积梯度信号,也累积了随机方向估计器的噪声。由于零阶稳定性由二阶矩控制,这种额外的噪声积累使得动力学更不稳定,因此增加 (\beta) 会缩小稳定区域。
对于ZO-Adam,情况又有所不同。在“冻结预条件器”的近似下(即假设预条件器 (P_t) 在局部变化缓慢),稳定性由预条件Hessian (P^{-1}H) 的迹控制。我们的实验表明,在EoS处有 (\text{Tr}(P_t^{-1}H_t) \approx 2/\eta),这个关系对 (\beta_1) 相对不敏感。
注意:零阶优化的稳定性分析依赖于一个关键技术工具——Krein-Rutman定理。这个定理保证了在适当定义的锥上,线性算子存在与谱半径相等的正特征值。正是通过这个定理,我们才能将复杂的稳定性条件简化为一个标量方程。
3. 实验验证:零阶方法确实运行在稳定性边缘
理论是优美的,但它在实际神经网络训练中成立吗?为了验证我们的均方稳定性理论,我们在三个标准的视觉架构上进行了全面的实验:一个简单的CNN、ResNet-20和Vision Transformer(ViT)。所有实验都使用CIFAR-10数据集的子集(前4个类别,1000个样本),采用全批量训练以匹配线性化稳定性理论的假设。
3.1 跟踪均方稳定性的实用方法
在大型神经网络中,直接计算完整的Hessian谱是不现实的。幸运的是,我们的理论提供了仅需迹和最大特征值的可计算边界。具体来说,对于不同的零阶优化器,我们跟踪以下量:
对于ZO-GD: [ \text{Tr}(H_t) \leq \frac{2}{\eta} \leq \text{Tr}(H_t) + 2\lambda_{\text{max}}(H_t) ]
对于ZO-GDM: [ \text{Tr}(H_t) \leq \frac{2(1-\beta)}{\eta} \leq \text{Tr}(H_t) + \frac{2\lambda_{\text{max}}(H_t)}{1+\beta} ]
对于ZO-Adam: [ \text{Tr}(P_t^{-1}H_t) \leq \frac{2}{\eta} \leq \text{Tr}(P_t^{-1}H_t) + \frac{2\lambda_{\text{max}}(P_t^{-1}H_t)}{1+\beta_1} ]
在训练过程中,我们每1000次迭代使用Hutchinson估计器估计Hessian迹,使用幂迭代法估计最大特征值。如果优化器确实运行在均方稳定性边缘,那么理论阈值 (2/\eta)(或相应的缩放版本)应该始终落在这些边界构成的区间内。
3.2 ZO-GD:迹主导的稳定性行为
让我们首先看最简单的ZO-GD。图1(论文中的Figure 1)展示了一个鲜明的对比:对于一阶GD,Hessian最大特征值 (\lambda_{\text{max}}(H_t)) 稳定在 (2/\eta) 附近;而对于ZO-GD,最大特征值没有明显的稳定趋势,反而是Hessian迹 (\text{Tr}(H_t)) 稳定在略低于 (2/\eta) 的位置。
图1:ZO-GD与一阶GD在CNN上的EoS行为对比。左图显示GD的 (\lambda_{\text{max}}(H_t)) 稳定在 (2/\eta);右图显示ZO-GD的 (\text{Tr}(H_t)) 稳定在略低于 (2/\eta) 的位置。
这个现象在改变学习率时依然稳健。在图2(论文中的Figure 2左图)中,我们固定架构(CNN)和任务(CIFAR-10子集),但改变ZO-GD的学习率。对于每个学习率 (\eta),理论阈值 (2/\eta)(虚线)在整个训练过程中都保持在区间 ([\text{Tr}(H_t), \text{Tr}(H_t)+2\lambda_{\text{max}}(H_t)]) 内或非常接近。特别值得注意的是,下界 (\text{Tr}(H_t)) 与阈值 (2/\eta) 的跟踪非常紧密,而上界 (\text{Tr}(H_t)+2\lambda_{\text{max}}(H_t)) 则提供了相对宽松的边界。
实操心得:在实际使用ZO-GD时,如果你观察到Hessian迹稳定在某个值附近,而最大特征值波动较大,这很可能是正常的。零阶优化的稳定性机制天然地更关注迹而非最大特征值。不要试图强行将最大特征值压到 (2/\eta) 以下——那可能不是零阶方法的工作方式。
3.3 ZO-GDM:动量效应的反转
对于ZO-GDM,动量对稳定性的影响与一阶GDM相反。在图2(中图)中,我们固定学习率 (\eta = 10^{-4}),改变动量系数 (\beta)。随着 (\beta) 从0.8增加到0.9,稳定性阈值从 (2(1-\beta)/\eta) 相应减小,而Hessian迹 (\text{Tr}(H_t)) 也同步降低以匹配新的阈值。
这个观察有重要的实际意义:在零阶优化中使用动量时,你可能需要比一阶情况更保守地选择动量系数。较大的动量不仅不会像在一阶优化中那样稳定训练,反而可能使动力学更容易发散。
3.4 ZO-Adam:预条件迹的稳定性
对于ZO-Adam,稳定性由预条件Hessian (P_t^{-1}H_t) 的迹控制。在图2(右图)中,我们固定 (\beta_1=0.9, \beta_2=0.999),改变学习率 (\eta)。预条件迹 (\text{Tr}(P_t^{-1}H_t)) 稳定在 (2/\eta) 附近,而预条件最大特征值 (\lambda_{\text{max}}(P_t^{-1}H_t)) 则没有明显的稳定趋势。
这里有一个技术细节:我们的理论分析假设预条件器 (P) 与Hessian (H) 可交换(即 (PH = HP))。在实际的神经网络训练中,这个假设是否成立?我们在附录D.3中测量了相对交换子范数 (|P_tH_t - H_tP_t|_F / |P_tH_t|_F)。实验显示,这个比值从初始化的0.8-0.9迅速下降到0.05以下,并在整个训练过程中保持在这个水平。这表明 (P_t) 和 (H_t) 近似可交换,为我们的理论提供了经验支持。
3.5 架构通用性:从CNN到Transformer
为了验证这些发现不是特定于某种架构,我们在ResNet-20和Vision Transformer上重复了相同的实验。图6和图7(论文中的Figure 6和7)展示了完全一致的模式:无论架构如何,ZO-GD、ZO-GDM和ZO-Adam都运行在它们各自的均方稳定性边缘,且稳定性主要由迹相关的量控制。
| 优化器 | 控制稳定性的量 | EoS处的近似关系 |
|---|---|---|
| ZO-GD | Hessian迹 (\text{Tr}(H_t)) | (\text{Tr}(H_t) \approx 2/\eta) |
| ZO-GDM | Hessian迹 (\text{Tr}(H_t)) | (\text{Tr}(H_t) \approx 2(1-\beta)/\eta) |
| ZO-Adam | 预条件迹 (\text{Tr}(P_t^{-1}H_t)) | (\text{Tr}(P_t^{-1}H_t) \approx 2/\eta) |
表1:不同零阶优化器的稳定性控制量总结
这种跨架构的一致性强烈表明,基于迹的稳定性机制是零阶优化的一个基本性质,而非特定于某种网络结构。
4. 深入分析:平滑参数、批大小与弹射动力学
4.1 平滑参数 (\mu) 的双重作用
在两点估计器中,平滑参数 (\mu) 控制着梯度估计的偏差-方差权衡。当 (\mu \to 0) 时,估计器是无偏的,但方差可能很大;较大的 (\mu) 会引入偏差,但可能降低方差。我们的实验发现,(\mu) 的值对是否达到稳定性边缘有显著影响。
在图4(论文中的Figure 4)中,我们固定ZO-GD的学习率,改变 (\mu) 的值。对于中等和小 (\mu)((\mu \leq 10^{-3})),优化器确实运行在均方稳定性边缘,Hessian迹增长到接近 (2/\eta)。但对于较大的 (\mu)((\mu \geq 3\times 10^{-3})),迹和最大特征值都饱和在远低于 (2/\eta) 的值,表明训练没有接近理论预测的稳定性边界。
为什么会出现这种现象?Zhang等人(2025a)的工作提供了一个解释:零阶优化实际上在最小化一个平滑后的目标函数 (f_\mu(x) = f(x) + \frac{\mu^2}{2}\text{Tr}(\nabla^2 f(x))),忽略高阶项。从这个角度看,(\mu) 直接调节了依赖于曲率的偏差项。较大的 (\mu) 会给Hessian迹添加一个惩罚,阻止动力学接近无平滑线性化模型预测的稳定性阈值。
注意事项:选择 (\mu) 时需要在估计精度和稳定性之间权衡。太小的 (\mu) 可能导致梯度估计噪声过大,训练不稳定;太大的 (\mu) 则可能引入过强的隐式正则化,阻止网络达到“尖锐”的极小值。实践中,(\mu=10^{-3}) 是一个不错的起点。
4.2 小批量ZO-SGD:向更平坦区域收敛
虽然我们的主要分析集中在全批量零阶方法,但实际应用更常使用小批量版本。在图5(论文中的Figure 5)的初步实验中,我们比较了全批量ZO-GD与批大小为250和500的ZO-SGD。与全批量情况相比,小批量ZO-SGD收敛到明显更平坦的区域(更小的Hessian迹)。
这个观察与一阶SGD中的现象类似:随机性起到了隐式正则化的作用,推动优化器趋向更平坦的极小值。对于零阶方法,这种效应可能更加显著,因为除了数据采样噪声外,还有方向估计噪声。一个完整的理论需要同时考虑这两种噪声源,这是未来工作的重要方向。
4.3 弹射动力学:学习率变化时的瞬态行为
“弹射动力学”是一阶优化中观察到的现象:当学习率超过局部稳定性阈值时,损失会先急剧上升(“弹射”),然后Hessian最大特征值下降,动力学重新稳定在新的平衡点。零阶优化中是否存在类似现象?
在图3(论文中的Figure 3)中,我们在训练ZO-GD时中途增加学习率。确实观察到了典型的弹射行为:每次增加学习率后,训练损失都会出现明显的尖峰,同时Hessian迹急剧下降,然后重新上升并稳定在新的阈值 (2/\eta) 附近。
这种弹射行为表明,零阶优化器具有自我调节机制:当学习率暂时超过当前的均方稳定性临界值时,动力学变得局部不稳定,损失增加;同时,Hessian迹下降以“适应”新的学习率,最终重新达到平衡。
5. 理论启示与未来方向
5.1 为什么均方稳定性对零阶动力学是相关的
在零阶优化中,随机性即使在全批量训练中也持续存在,因为它来自随机扰动方向。因此,稳定性不能仅通过平均轨迹来评估——即使 (\mathbb{E}[x_t]) 保持有界,波动也可能增长并主导迭代行为。均方稳定性通过直接控制二阶矩 (\mathbb{E}[|x_t - x^*|^2]) 来捕捉这种效应,同时在线性化动力学下仍然可分析,并能产生显式的学习率条件。
其他稳定性概念(如高阶矩稳定性或尾概率界)也有意义,但我们的实验表明,均方稳定性条件中出现的曲率量紧密跟踪了零阶神经网络训练中观察到的稳定性行为。
5.2 动量如何重塑零阶稳定性
动量为零阶和一阶稳定性之间的差异提供了一个具体例子。在一阶GDM中,动量阻尼了尖锐方向上的确定性振荡,从而扩大了稳定步长区域。在零阶GDM中,动量不仅累积梯度信号,也累积随机方向估计器的噪声。由于零阶稳定性由二阶矩控制,这种额外的累积噪声使动力学更不稳定,导致增加 (\beta) 会缩小稳定区域。
自适应方法中也出现了类似的对比。对于(冻结的)Adam,增加 (\beta_1) 会提高稳定性阈值,在EoS处有 (\lambda_{\text{max}}(P_t^{-1}H_t) \approx 2(1+\beta_1)/((1-\beta_1)\eta))。对于ZO-Adam,我们的实验表明在均方EoS处有 (\text{Tr}(P_t^{-1}H_t) \approx 2/\eta),这与 (\beta_1) 无关。理解这些效应如何转化为零阶训练中动量的实际益处(或权衡)是一个有趣的开放问题。
5.3 平滑参数 (\mu) 与迹相关隐式偏差的联系
两点估计器引入了由 (\mu) 控制的平滑,这改变了零阶更新的偏差和噪声结构。Zhang等人(2025a)将这种零阶优化与对小迹区域的隐式偏好联系起来,形式化为近似最小化 (f_\mu(x) = f(x) + \frac{\mu^2}{2}\text{Tr}(\nabla^2 f(x)))(忽略高阶项)。从这个角度看,(\mu) 直接调节了有效目标中依赖于曲率的偏差,大的 (\mu) 可以阻止动力学接近无平滑线性化模型预测的均方稳定性阈值。
建立一个同时捕捉(1)均方稳定性约束和(2)平滑偏差对有效景观影响的理论,是未来工作的一个有趣方向。
5.4 超越全批量:小批量零阶方法
我们的分析集中在全批量零阶动力学,其中唯一的随机性来自估计器方向。在实际设置中,小批量引入了通过数据点随机采样的额外噪声源。小批量零阶训练的完整稳定性理论需要同时结合估计器噪声和采样噪声,并量化这两种源在二阶矩递归中如何相互作用。
最近的工作给出了小批量SGD的尖锐均方稳定性阈值(Mulayoff & Michaeli, 2024)。为零阶方法推导类似的结果将阐明均方EoS在数据子采样下是否持续存在,以及在该机制中哪些曲率量控制稳定性。
6. 实践指南:如何在零阶优化中设置超参数
基于我们的理论和实验发现,我为实际应用零阶优化提供以下实用建议:
6.1 学习率选择策略
对于ZO-GD,稳定性主要由Hessian迹控制。在实践中,你可以使用以下启发式方法设置学习率:
- 保守估计:从 (\eta = 2 / \text{Tr}(H_0)) 开始,其中 (H_0) 是初始点的Hessian
- 自适应调整:监控Hessian迹的估计值,如果迹显著增长,适当降低学习率
- 弹射利用:有意使用略高于稳定性阈值的学习率可能诱导弹射动力学,帮助逃离尖锐的极小值
对于ZO-GDM,记住动量会缩小稳定区域。一个实用的经验法则是:使用与ZO-GD相同的基础学习率,然后乘以 ((1-\beta)) 因子。例如,如果ZO-GD在某个任务上使用 (\eta=0.01) 效果良好,那么ZO-GDM with (\beta=0.9) 应该使用大约 (\eta=0.001)。
6.2 平滑参数 (\mu) 的权衡
(\mu) 的选择需要在梯度估计精度和隐式正则化强度之间平衡:
- 默认值:对于大多数深度学习应用,(\mu=10^{-3}) 是一个合理的起点
- 敏感性测试:在最终确定前,尝试 (\mu \in [10^{-4}, 10^{-2}]) 范围内的几个值
- 任务依赖:对于损失函数变化较快的任务(如对抗训练),可能需要更小的 (\mu);对于平滑的损失景观,可以尝试稍大的 (\mu)
6.3 监控稳定性指标
在实际训练中,你可以定期计算以下指标来监控优化器的稳定性状态:
- Hessian迹估计:使用Hutchinson方法,只需要Hessian-向量积
- 最大特征值估计:使用幂迭代法
- 稳定性间隔:计算 (\text{Tr}(H_t)) 和 (\text{Tr}(H_t) + 2\lambda_{\text{max}}(H_t)),检查 (2/\eta) 是否落在这个区间内
如果 (2/\eta) 持续高于上界,说明学习率太大,训练可能不稳定;如果持续低于下界,说明学习率可能过于保守。
6.4 架构特定的考虑
不同架构的Hessian谱结构不同,这会影响零阶优化的行为:
- CNN和ResNet:通常有相对均匀的Hessian谱,迹与最大特征值的比值较大,基于迹的稳定性条件很紧
- Transformer:Hessian谱可能更不均匀,最大特征值的影响相对更显著
- 大语言模型微调:在参数空间的高维区域,迹通常远大于最大特征值,此时稳定性几乎完全由迹控制
7. 常见问题与故障排除
7.1 为什么我的零阶训练不稳定?
可能原因1:学习率太大
- 检查:计算当前点的Hessian迹估计,检查是否满足 (\eta < 2/\text{Tr}(H))
- 解决:降低学习率,或使用学习率预热
可能原因2:平滑参数 (\mu) 太小
- 检查:梯度估计的噪声是否过大
- 解决:适当增加 (\mu),或在迭代过程中自适应调整 (\mu)
可能原因3:动量系数 (\beta) 太大
- 检查:对于ZO-GDM,是否满足 (\eta < 2(1-\beta)/\text{Tr}(H))
- 解决:降低 (\beta) 或进一步降低学习率
7.2 如何高效估计Hessian迹和最大特征值?
对于大规模模型,显式计算Hessian是不现实的。以下是实用的估计方法:
Hessian迹估计(Hutchinson方法):
def estimate_hessian_trace(model, loss_fn, data, target, n_samples=100): """使用Hutchinson方法估计Hessian迹""" trace = 0 for _ in range(n_samples): # 生成随机向量z,元素为±1(Rademacher分布) z = torch.randint(0, 2, model.parameters().shape) * 2 - 1 z = z.to(model.device) # 计算Hessian-向量积 Hv loss = loss_fn(model(data), target) grad = torch.autograd.grad(loss, model.parameters(), create_graph=True) Hv = torch.autograd.grad(grad, model.parameters(), grad_outputs=z) # 计算迹估计 trace += torch.sum(z * Hv).item() return trace / n_samples最大特征值估计(幂迭代法):
def estimate_max_eigenvalue(model, loss_fn, data, target, n_iter=50): """使用幂迭代法估计Hessian最大特征值""" # 初始化随机向量 v = torch.randn_like(model.parameters()) v = v / torch.norm(v) for _ in range(n_iter): # 计算Hessian-向量积 Hv loss = loss_fn(model(data), target) grad = torch.autograd.grad(loss, model.parameters(), create_graph=True) Hv = torch.autograd.grad(grad, model.parameters(), grad_outputs=v) # 更新特征向量估计 v = Hv / torch.norm(Hv) # 计算Rayleigh商估计最大特征值 loss = loss_fn(model(data), target) grad = torch.autograd.grad(loss, model.parameters(), create_graph=True) Hv_final = torch.autograd.grad(grad, model.parameters(), grad_outputs=v) lambda_max = torch.sum(v * Hv_final).item() return lambda_max7.3 零阶优化相比一阶优化的实际优势是什么?
尽管零阶方法通常需要更多的迭代次数,但它们在某些场景下有独特优势:
- 内存效率:不需要存储梯度,在微调大语言模型时内存占用可降低10倍以上
- 隐私保护:在差分隐私设置中,零阶方法可以避免梯度裁剪带来的偏差
- 黑盒优化:当只能访问函数值而无法计算梯度时,零阶是唯一选择
- 对抗鲁棒性:在黑盒对抗攻击中,零阶方法可以直接优化不可微的目标
7.4 如何将稳定性理论应用于实际调参?
基于我们的稳定性理论,我建议以下调参流程:
初始化阶段:
- 使用小批量数据估计初始Hessian迹
- 设置初始学习率 (\eta_0 = 1.5 / \text{Tr}(H_0))(保守起见)
- 设置 (\mu = 10^{-3}),(\beta = 0)(无动量)作为基准
监控阶段:
- 每1000次迭代估计一次Hessian迹和最大特征值
- 计算稳定性间隔 ([\text{Tr}(H_t), \text{Tr}(H_t)+2\lambda_{\text{max}}(H_t)])
- 检查 (2/\eta) 是否落在这个区间内
调整阶段:
- 如果 (2/\eta) 持续高于上界:降低学习率10-20%
- 如果 (2/\eta) 持续低于下界:考虑增加学习率或引入动量
- 如果训练损失出现尖峰(弹射):这是正常的,除非尖峰后不恢复
收敛判断:
- 零阶优化的收敛通常比一阶慢
- 关注Hessian迹的稳定化,而不仅仅是损失的下降
- 当迹稳定在 (2/\eta) 附近时,优化器可能已找到平衡点
8. 扩展与展望
8.1 与其他优化框架的联系
零阶优化的均方稳定性视角可以与几个现有的理论框架联系起来:
中心流框架:Cohen等人(2025)为中心流框架提供了梯度下降动力学的宏观描述。一个自然的下一步是使用这个均方EoS视角将中心流框架扩展到零阶方法,并实证验证所得的流描述是否能在不同架构和任务中捕捉零阶训练动力学。
隐式偏差理论:我们的工作与Zhang等人(2025a)关于零阶优化隐式偏差的工作有密切联系。他们证明在平滑凸目标下,ZO-GD偏好Hessian迹小的解。我们的稳定性理论为这种偏好提供了动力学解释:大学习率迫使优化器寻找迹小的区域以保持稳定。
锐度感知最小化:Foret等人(2021)的SAM方法明确最小化损失景观的锐度(通常用最大特征值度量)。对于零阶方法,稳定性由迹控制,这暗示了某种“迹感知”最小化的可能性。
8.2 实际应用中的挑战与机遇
大语言模型微调:Malladi等人(2023)展示了MeZO(一种零阶方法)如何以可比精度微调LLM,同时大幅降低内存使用。我们的稳定性理论为调整MeZO的超参数提供了指导:关注预条件Hessian的迹,而非最大特征值。
分布式零阶优化:在联邦学习等分布式设置中,零阶方法可以避免传输梯度,减少通信开销。理解在这种设置下的稳定性条件,对于设计高效的分布式零阶算法至关重要。
自适应零阶方法:我们的工作主要集中在固定学习率的ZO-GD、ZO-GDM和ZO-Adam。一个有趣的方向是开发自适应零阶方法,根据估计的Hessian迹自动调整学习率,以保持在稳定性边缘。
8.3 未解决的问题与未来方向
- 小批量理论:需要发展完整的小批量零阶优化稳定性理论,同时考虑估计器噪声和数据采样噪声
- 非凸景观:我们的分析基于局部二次近似,在高度非凸的神经网络损失景观中,这种近似的有效性需要进一步研究
- 泛化联系:稳定性边缘与泛化之间的理论联系在一阶优化中已有探索,对于零阶优化,这种联系可能通过迹相关的隐式正则化实现
- 高阶矩稳定性:均方稳定性控制了二阶矩,但更高阶矩或尾概率的行为如何?这对于理解零阶优化的极端行为很重要
零阶优化在深度学习中的地位正在迅速提升,特别是在大模型微调和隐私敏感应用中。理解其独特的稳定性机制不仅丰富了优化理论,也为实际应用提供了重要指导。通过将学习率与Hessian迹而非最大特征值联系起来,我们揭示了零阶方法一种根本不同的工作方式——这种方式可能在某些场景下提供比一阶方法更理想的隐式正则化。
我在实际应用中发现,接受这种不同的动力学范式是关键。不要试图强迫零阶优化器像一阶优化器那样工作,而是利用其独特的性质:对总曲率而非最陡方向的敏感性,可能正是某些应用中所需要的。