梯度检验的意义:为了验证求导代码是否正确算法
思路:利用导数的定义函数
能够去任意theta值对等式左边的导数用:blog
来近似。通常EPSILON用一个很小的常量(10-4数量级,不宜过小)class
所以若存在计算deltaJ(θ)的函数g(θ),则:方法
来检验函数是否正确,通常正常状况左右两端至少有四位有效数字是同样的(EPSILON = 10-4下)im
对于实际操做下的向量状况,进行合理的改造便可:d3
对于计算的函数
,咱们想要检验其结果,能够定义
,其中img
是第i个基向量,维度同θ,只在第i行有个1其余都是0。di
同理能够定义,这样检验式变成了:co
该方法主要运用于原算法中计算J(W,b)的导数环节