Neural network 梯度检查到底是什么?

Neural network 梯度检查到底是什么?,neural-network,deep-learning,Neural Network,Deep Learning,我是深入学习的初学者。我经历了“梯度检查”的概念 我只是想知道,它是什么,以及它如何帮助改进培训过程?为什么我们需要梯度检查? Back prop作为一种算法有很多细节,实现起来可能有点棘手。一个不幸的特性是,有很多方法可以在backprop中产生微妙的bug。所以,如果你用梯度下降法或其他优化算法来运行它,它实际上看起来像是在工作。你们的代价函数,θ的J,在梯度下降的每一次迭代中都可能会下降。但这可能被证明是正确的,即使在您的back-prop实现中可能存在一些bug。所以看起来θ的J在减小,

我是深入学习的初学者。我经历了“梯度检查”的概念

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

为什么我们需要梯度检查? Back prop作为一种算法有很多细节,实现起来可能有点棘手。一个不幸的特性是,有很多方法可以在backprop中产生微妙的bug。所以,如果你用梯度下降法或其他优化算法来运行它,它实际上看起来像是在工作。你们的代价函数,θ的J,在梯度下降的每一次迭代中都可能会下降。但这可能被证明是正确的,即使在您的back-prop实现中可能存在一些bug。所以看起来θ的J在减小,但是你可能会得到一个神经网络,这个神经网络的误差比无缺陷的实现要大。您可能只是不知道有一个微妙的错误,它让您的性能更差。那么,我们能做些什么呢?有一种叫做梯度检查的方法,可以消除几乎所有这些问题

什么是梯度检查? 我们描述了一种数值检查代码计算的导数的方法,以确保实现是正确的。执行派生检查过程可以显著提高您对代码正确性的信心

如果我不得不说,简而言之,梯度检查是一种调试你的back-prop算法。梯度检查基本上执行导数检查程序

如何实现梯度检查?
您可以找到此过程。

另请参见“用微积分分析计算梯度”部分。本文可能有助于: