梯度检测
目的
验证BP的正确性(代码能够正确计算出代价函数J的导数)。因为BP容易出现bug,此时神经网络的误差会比无bug高出一个量级,且此时无法知道是由bug引起的。
代码
% Numerical estimation of gradients
for i = 1:n,
thetaPlus = theta;
thetaPlus(i) = thetaPlus(i) + EPSILON;
thetaMinus = theta;
thetaMinus(i) = thetaMinus(i) - EPSILON;
gradApprox = (J(thetaPlus) - J(thetaMinus))/(2*EPSILON);
end;