中文

揭开可微编程的神秘面纱:移位/重置倒数第二反向传播器

机器学习 2019-08-30 v3 机器学习

摘要

过去十年间,深度学习在计算机视觉、机器翻译与博弈游戏中取得了巨大成功。这一成功在关键层面上依赖于梯度下降优化,以及通过反向传播观测误差来学习神经网络参数的能力。然而,神经网络架构正变得日益复杂多样,这催生了对更一般形式可微编程的新兴探索,其中任意参数化计算均可通过梯度下降进行训练。本文重新审视自动微分(AD)技术,尤其旨在揭开逆向模式 AD 的神秘面纱——它推广了神经网络中的反向传播。我们揭示了逆向模式 AD 与定界续延之间的紧密联系,该联系允许仅通过算子重载实现逆向模式 AD,而无需任何辅助数据结构。我们进一步展示了这种 AD 表述如何可与多阶段编程(staging)富有成效地结合,从而产生一种高效实现,它兼具基于显式具体化计算图的深度学习框架(如 TensorFlow)的性能优势与纯库方法(如 PyTorch)的表达能力。

关键词

引用

@article{arxiv.1803.10228,
  title  = {Demystifying Differentiable Programming: Shift/Reset the Penultimate Backpropagator},
  author = {Fei Wang and Daniel Zheng and James Decker and Xilun Wu and Grégory M. Essertel and Tiark Rompf},
  journal= {arXiv preprint arXiv:1803.10228},
  year   = {2019}
}