gpt4 book ai didi

math - tensorflow 是否使用自动或符号渐变?

转载 作者:行者123 更新时间:2023-12-03 08:53:06 25 4
gpt4 key购买 nike

我还没有找到关于tensorflow使用自动还是符号微分的清晰陈述。

我略过了tensorflow paper,他们提到了自动渐变,但是还不清楚它们是否仅表示符号渐变,因为他们还提到它具有该功能。

最佳答案

TF使用自动微分,尤其是反向模式自动微分。

有3种流行的方法来计算导数:

  • 数值微分
  • 符号区分
  • 自动区分

  • Numerical differentiation依赖于派生类的定义: enter image description here,在其中放置了一个很小的 h并在两个位置评估函数。这是最基本的公式,在实践中,人们使用其他公式得出的估计误差较小。如果您不知道函数并且只能对其进行采样,则这种计算导数的方法最适合。此外,对于高调功能,它需要进行大量计算。

    Symbolic differentiation处理数学表达式。如果您曾经使用过matlab或mathematica,那么 saw something like this
    enter image description here

    在这里,对于每个数学表达式,他们都知道导数,并使用各种规则(乘积规则,链式规则)来计算结果导数。然后,他们简化最终表达式以获得结果表达式。

    Automatic differentiation操作计算机程序块。区分符具有用于获取程序每个元素的派生规则(当您在核心TF中定义任何op时,需要为此op添加 register a gradient)。它还使用链规则将复杂的表达式分解为更简单的表达式。这是一个 good example how it works in real TF programs with some explanation

    您可能会认为“自动微分”与“符号微分”相同(在一个地方,他们对数学表达式进行操作,在另一个地方对计算机程序进行操作)。是的,它们有时非常相似。但是对于控制流语句(“if,while,循环”),结果可能非常 different:

    symbolic differentiation leads to inefficient code (unless carefully done) and faces the difficulty of converting a computer program into a single expression

    关于math - tensorflow 是否使用自动或符号渐变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36370129/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com