我正在读一本书(TensorFlow For Dummies,Matthew Scarpino),这里说:
Adagrad方法计算的是次梯度而不是梯度。次梯度是适用于不可微函数的梯度的推广。这意味着AdaGrad方法可以优化可微函数和不可微函数。
但我在其他地方都没见过这样的说法。所以我想知道:
我们真的可以仅仅因为我们使用Adagrad而优化不可微损失函数吗?
发布于 2019-02-16 21:43:58
这本书有一个误解(但从何而来是可以理解的)。
如果可以计算次梯度,则可以使用梯度下降。你不必使用AdaGrad --你可以使用任何你喜欢的梯度方法。基本上,您只需在更新步骤中使用子梯度来代替渐变。参见,例如,https://en.wikipedia.org/wiki/Subgradient_方法。
AdaGrad是对渐变下降的调整,它调整更新步骤。我认为AdaGrad与在更新步骤中使用次梯度还是梯度是正交的。
我能看出误会是从哪里来的。关于AdaGrad的原始论文讨论了次梯度方法。然而,如果你仔细阅读导言,你就会意识到那里发生了什么。次梯度方法是一个更广泛的范畴,包括普通梯度下降和次梯度下降。所以,这篇论文只是想尽可能的概括。它们的方法既适用于普通梯度下降,也适用于次梯度下降。
https://datascience.stackexchange.com/questions/45702
复制相似问题