本文是基于吴恩达老师《深度学习》第二周第一课练习题所做,目的在于了解梯度检验在深度神经网络中如何运用。
一、梯度检验的意义
构建神经网络模型过程中,也许我们能够很容易检验前向传播的过程是否正确执行,但是在反向传播的计算过程中,由于导数或偏导数的使用,我们很难凭借自觉发现,因此梯度检验对于反向传播的正确执行具有重要意义。
二、一维梯度检验
1.一维函数在进行前向传播和反向传播的流程如下图所示:
2.一维函数的前向传播过程非常简单,其计算函数为
def forward_propagation(x, theta):
J = theta * x
return J
3.反向传播过程为
def backward_propagation(x, theta):
dtheta = x
return dtheta
4.一维梯度检验的步骤
(1)根据