我正在读取Baydin et al, Automatic Differentiation in Machine Learning: a Survey, 2018(Arxiv),这在符号区分和自动区分(AD)之间进行了区分。然后说:
AD不是符号差异。符号区分是对[[[symbolic] expressions。]]的自动操纵。AD可被视为对计算机程序执行了非标准解释这种解释涉及通过各种导数的计算来扩展标准计算。
Evaluation traces
构成AD技术的基础。[A [[计算图 (Bauer, 1974)可视化评估轨迹中(输入,工作,输出)变量的依赖关系。]然后通过描述如何使用AD计算导数(向前或向后模式)来继续。该描述基本上是在转换评估跟踪/计算图。
Autograd,Chainer和PyTorch提供通用的反向模式AD。
它还讨论了Theano,TensorFlow等,但是基本上比较了/define-and-run
静态计算图
(Theano,TF)与define-by-run / < [动态计算图(PyTorch,TF Eager)。(在我的理解中,这与如何执行AD的问题是正交的,或者主要只是改变AD的实现方式,而与AD的概念无关。)Theano是一个计算图优化器和编译器,它目前可以处理高度优化的符号差异形式的衍生产品。结果可以解释为符号微分和反向模式AD的混合体,但Theano不使用通用我们在本文中描述的反向累积。 (与作者进行个人交流。)我不确定作者是否暗示Theano / TF不提供通用的反向模式AD(根据我的理解,这是错误的。我不完全了解Theano如何不使用通用反向累加。而且,鉴于此定义,我不理解符号区分与AD有何不同。
或者:符号表达式与计算图有何不同?
相关也是
可区分编程
由功能块组合而成的可微分有向图
我再次看不到与计算图的区别。和我看不到反向模式AD比反向传播更普遍。是吗?怎么样?反向传播(BP)] ::
结果算法本质上等效于在逆模AD下变换由目标函数组成的网络评估函数,应该看到,实际上是推广了反向传播的想法。
[Schmidhuber, Deep Learning in Neural Networks: An Overview, 2014(第5.5节)(also)状态:
BP也称为自动微分(Griewank, 2012)的反向模式。
我正在阅读Baydin等人的机器学习中的自动差异:调查,2018(Arxiv),该符号在符号差异和自动差异(AD)之间进行了区分。然后...