吴恩达机器学习——梯度检验

在神经网络反向传播讲解过程中,提到了个梯度检验的小技巧,用于检验反向传播求解的梯度是否正确。

原理就是偏导数可以写为双侧差分形式,即

\frac{\partial J}{\partial \theta_i}=\frac{J(\theta_i+\epsilon)-J(\theta_i-\epsilon)}{2\epsilon }

其中\epsilon是个很小的数,它的值太小可能会使计算出问题,值太大则这个偏导近似是不准确的,课程中建议设置为10^{-4},遍历求解代价函数对所有\theta_i所有的偏导,与采用高级方法求解的值比较,差值相对很小时,可认为梯度求解正确。

注意:这个步骤只用于检测梯度求解是否正确,在验证后,要将这一步骤关闭,否则,程序运行将会很慢。

猜你喜欢

转载自blog.csdn.net/jonathanzh/article/details/81813014