Jan, 2024

关于非光滑自动微分的数值可靠性:MaxPool 案例研究

TL;DR通过研究自动微分在涉及非光滑 MaxPool 操作的神经网络上,考虑其可靠性。我们在不同的精度水平(16、32、64 位)、卷积架构(LeNet、VGG 和 ResNet)以及各种数据集(MNIST、CIFAR10、SVHN 和 ImageNet)上调查自动微分的行为。尽管自动微分可能是不正确的,但最近的研究表明,在几乎任何地方,它与导数一致,甚至在存在非光滑操作(如 MaxPool 和 ReLU)的情况下也是如此。然而,在实践中,自动微分使用的是浮点数(而不是实数),因此有必要探索那些自动微分可能出现数值不正确的子集。这些子集包括一个分岔区(在实数上自动微分是不正确的)和一个补偿区(在浮点数上自动微分是不正确的,但在实数上是正确的)。使用 SGD 进行训练过程,我们研究了对于精度为 16 和 32 位的 MaxPool 函数的非光滑雅可比矩阵的不同选择对精度的影响。这些发现表明,较低范数的非光滑 MaxPool 雅可比矩阵有助于保持稳定和高效的测试准确性,而较高范数的矩阵可能导致不稳定和性能下降。我们还观察到,使用批归一化、类似 Adam 的优化器或增加精度水平可以减少 MaxPool 的非光滑雅可比矩阵对学习的影响。