Tensorflow 如何知道如何计算导数?

How Tensorflow knows how to calculate the derivative?

在Tensorflow的这个resource中,我们可以看到一个函数的导数是如何在一个或任何一点上计算的,但是Tensorflow是怎么做到的呢?

Tensorflow 使用 automatic differentiation 计算导数。这不同于符号微分和数值微分(又名有限差分)。它不仅仅是一种智能数学方法,还是一种智能编程方法。当您评估一个张量流变量时,它不仅存储该变量的值,还存储其导数的值。此外,所有运算符都被重载以计算变量的值和导数。使用链式法则,我们可以遍历变量图并计算每个变量的导数。发布的 link 将提供更好的描述,但这是 TLDR。

好处?通过数值微分,这要快得多。您可以通过一次成本函数来计算所有权重的导数。在数值微分中,您必须为计算其导数的每个权重评估成本函数两次。您也没有得到近似值。