Skip to main content
QUICK REVIEW

[论文解读] Efficient Per-Example Gradient Computations in Convolutional Neural Networks

Gaspar Rochette, Andre Manoel|arXiv (Cornell University)|Dec 12, 2019
Privacy-Preserving Technologies in Data参考文献 10被引用 7
一句话总结

本文提出了一种基于链式法则的高效方法(crb),用于在卷积神经网络(CNNs)中计算每个样本的梯度,该方法扩展了Goodfellow的方法以适用于卷积层。实验表明,crb在较小、较浅的网络及特定网络结构配置下,相较于朴素方法和多模型方法,在速度方面表现更优,从而使得CNN的差分隐私训练更加实用,因为实现了高效的逐样本梯度裁剪。

ABSTRACT

Deep learning frameworks leverage GPUs to perform massively-parallel computations over batches of many training examples efficiently. However, for certain tasks, one may be interested in performing per-example computations, for instance using per-example gradients to evaluate a quantity of interest unique to each example. One notable application comes from the field of differential privacy, where per-example gradients must be norm-bounded in order to limit the impact of each example on the aggregated batch gradient. In this work, we discuss how per-example gradients can be efficiently computed in convolutional neural networks (CNNs). We compare existing strategies by performing a few steps of differentially-private training on CNNs of varying sizes. We also introduce a new strategy for per-example gradient calculation, which is shown to be advantageous depending on the model architecture and how the model is trained. This is a first step in making differentially-private training of CNNs practical.

研究动机与目标

  • 为解决在CNN中高效计算逐样本梯度的挑战,这是实现差分隐私训练的关键需求。
  • 比较现有策略——朴素方法(批量大小为1)、多模型方法(每个样本对应多个参数共享的模型)以及基于链式法则的方法(crb)——在逐样本梯度计算中的表现。
  • 利用PyTorch的分组卷积功能,将Goodfellow针对全连接层提出的方法扩展至卷积层。
  • 在不同网络深度、宽度、卷积核大小和批量大小下,对性能进行实证评估。
  • 提供一种实用且针对GPU优化的逐样本梯度计算解决方案,以支持隐私保护机器学习。

提出的方法

  • crb方法通过在反向传播中使用中间激活和梯度钩子,应用链式法则将梯度计算分解为单个样本的计算,从而实现逐样本梯度的计算。
  • 它利用PyTorch的分组卷积操作,将每个样本视为卷积层中的独立组,从而高效计算逐样本梯度。
  • 该方法避免了模型复制,而是通过重用前向传播过程,并结合逐样本缩放的梯度累积来计算每个样本的梯度。
  • 该方法被实现为PyTorch的nn.Module的扩展,可无缝集成到现有训练流程中。
  • 在运行时间和GPU内存使用方面,将该方法与朴素方法(批量大小为1)和多模型方法(每个样本对应多个参数共享的模型)进行比较。
  • 实验在自定义CNN和真实世界架构(AlexNet、VGG16)上进行,涵盖不同的深度、通道比、卷积核大小和批量大小。

实验结果

研究问题

  • RQ1在不同网络架构下,哪种方法——朴素法、多模型法,或基于链式法则的crb法——在CNN中计算逐样本梯度最为高效?
  • RQ2网络架构因素(如深度、宽度、卷积核大小和批量大小)如何影响逐样本梯度计算方法的性能?
  • RQ3基于链式法则的方法能否通过使用PyTorch的原生操作,有效从全连接层扩展到卷积层?
  • RQ4在何种条件下,crb方法在速度和内存效率方面优于多模型方法?
  • RQ5在AlexNet和VGG16等实际CNN中,随着模型复杂度和批量大小的增加,这些方法的可扩展性如何?

主要发现

  • 对于浅层网络(2–4层)且通道比逐渐增加的情况,crb方法比多模型方法更快,尤其当卷积核大小增加到5时更为显著。
  • 随着网络深度的增加,多模型方法变得更具竞争力,且在4层网络中,两种方法性能相近。
  • 在AlexNet(较小网络)中,crb比朴素方法快达15倍,且略快于多模型方法,批量大小为16时,运行时间分别为2.03秒和3.08秒。
  • 在VGG16(较大网络)中,crb略慢于多模型方法,运行时间分别为5.59秒和4.63秒,表明随着模型规模增大,性能表现发生转变。
  • crb方法在批量大小上表现出分段线性缩放特性,表明在较大批量下GPU利用率更高,而多模型和朴素方法则呈现严格线性缩放。
  • 当模型参数共享时,crb方法比多模型方法更节省内存,且两者使用的GPU内存相近,因此两者均适用于大规模训练。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

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