梯度检查到底是什么?

问题描述 投票:0回答:2

我是深度学习的初学者。我想到了“梯度检查”的概念。

我只是想知道它是什么以及它如何帮助改进培训过程?

neural-network deep-learning
2个回答
41
投票

为什么我们需要梯度检查?

Back prop 作为一种算法有很多细节,并且实现起来可能有点棘手。一个不幸的特性是,有很多方法可以在后支撑中产生微妙的错误。因此,如果您使用梯度下降或其他一些优化算法来运行它,它实际上看起来像是在工作。而你的成本函数 J of theta 可能最终会在梯度下降的每次迭代中减少。但这可能被证明是正确的,即使您的反向传播实现中可能存在一些错误。因此,看起来 J of theta 正在减小,但您最终可能会得到一个比无错误实现具有更高错误级别的神经网络。您可能只是不知道有一个微妙的错误会导致您的性能下降。那么,对此我们能做些什么呢?有一种称为梯度检查的想法可以消除几乎所有这些问题。

什么是梯度检查?

我们描述了一种对代码计算的导数进行数值检查的方法,以确保您的实现是正确的。执行导数检查程序可以显着提高您对代码正确性的信心。

如果我不得不简单地说,梯度检查是一种调试你的反向传播算法。梯度检查基本上执行导数检查程序。

如何实现梯度检查?

您可以在此处找到此程序。


0
投票

为了简单起见,这是一种调试技术,可以帮助您检查可能错过的任何错误,同时检查神经网络的性能。

© www.soinside.com 2019 - 2024. All rights reserved.