Skip to main content
QUICK REVIEW

[论文解读] Efficient Per-Example Gradient Computations

Ian Goodfellow|arXiv (Cornell University)|Oct 7, 2015
Stochastic Gradient Optimization Techniques参考文献 1被引用 32
一句话总结

本文提出了一种高效方法,用于在神经网络训练过程中计算小批量中每个样本的逐样本梯度的 L² 范数。通过重用标准反向传播计算,并应用涉及平方激活值和梯度的矩阵公式,该方法将计算成本从加倍降低至可忽略的开销,从而实现了实际的重要性采样和基于梯度的分析。

ABSTRACT

This technical report describes an efficient technique for computing the norm of the gradient of the loss function for a neural network with respect to its parameters. This gradient norm can be computed efficiently for every example.

研究动机与目标

  • 实现对小批量中每个独立样本的模型参数梯度 L² 范数的高效计算。
  • 解决对小批量中 m 个样本分别运行反向传播 m 次所带来的低效问题。
  • 支持重要性采样等应用,其中梯度范数更高的样本在训练过程中被优先处理。
  • 将额外计算开销最小化,使其在大型模型和小批量情况下仍可忽略不计。

提出的方法

  • 重用标准反向传播中 ∇Z C 的计算,其中 Z 表示各层的预激活值。
  • 引入公式:s_j^(i) = (Σ_k (Z̄_j,k^(i))²) × (Σ_k (H_j,k^(i-1))²),其中 Z̄ 是总损失相对于 Z 的梯度,H^(i-1) 是前一层的激活值。
  • 通过 √(Σ_i s_j^(i)) 计算逐样本梯度范数,实现每个样本的高效梯度幅度分析。
  • 在完整小批量上仅进行一次前向和反向传播,避免重复运行反向传播。
  • 通过修改 Z̄ 值并重新运行最后一步反向传播,将方法扩展至支持梯度范数约束。
  • 使用矩阵表示 H^(i) 和 Z^(i),以同时高效计算所有样本的逐样本范数。

实验结果

研究问题

  • RQ1是否可以在不为小批量中 m 个样本分别运行反向传播 m 次的情况下,高效计算逐样本梯度的 L² 范数?
  • RQ2与标准反向传播相比,计算逐样本梯度范数的计算开销如何?
  • RQ3如何通过重要性采样利用梯度范数来提高训练效率?
  • RQ4能否在保持计算效率的同时,对每个样本应用梯度范数约束?
  • RQ5小批量并行性对逐样本梯度计算性能有何影响?

主要发现

  • 所提方法在标准反向传播基础上仅增加 O(mnp) 的额外操作,其渐近复杂度可忽略不计。
  • 该方法重用了 ∇Z C 的反向传播计算,避免了对每个样本单独重新计算梯度。
  • 朴素方法对小批量大小为 1 的情况运行反向传播 m 次,计算成本约为两倍,因此在大规模训练中不切实际。
  • 由于小批量反向传播效率低下,实际中朴素方法与所提方法之间的性能差距远大于渐近分析所预测的。
  • 该方法通过高效识别梯度范数较高的样本,使重要性采样的实际实现成为可能。
  • 该框架支持对梯度范数的后处理修改,如归一化,方法为更新 Z̄ 并重新运行最后一步反向传播。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。