1.13 梯度检验(Gradient checking)

Previous1.12 梯度的数值逼近(Numerical approximation of gradients)Next1.14 梯度检验应用的注意事项(Gradient Checking Implementation Notes)
Last updated
梯度检查要做的是将W[1],b[1],⋯,W[L],b[L]这些矩阵构造成一维向量,然后将这些一维向量组合起来构成一个更大的一维向量θ。这样的cost functionJ(W[1],b[1],⋯,W[L],b[L])可以表示成J(θ)

然后将反向传播过程通过梯度下降算法得到的dW[1],db[1],⋯,dW[L],db[L]按照一样的顺序构造成一个一维向量dθ。dθ的维度与θ一致
接着利用J(θ)对每个θi算近似梯度,其值与反向传播算法得到的dθi相比较,检查是否一致。例如,对于第i个元素,近似梯度为:
计算完所有θi的近似梯度后,可以计算dθapprox与dθ的欧氏(Euclidean)距离来比较二者的相似度。公式如下:
如果欧氏距离越小,例如10−7,甚至更小,则表明dθapprox与dθ越接近,即反向梯度计算是正确的,没有bugs。如果欧氏距离较大,例如10−5,则表明梯度计算可能出现问题,需要再次检查是否有bugs存在。如果欧氏距离很大,例如10−3,甚至更大,则表明dθapprox与dθ差别很大,梯度下降计算过程有bugs,需要仔细检查
Last updated