• 在反向传播算法中含有很多细节,因此实现起来较为困难
  • 并且有一个非常不好的特性,很容易产生一些微妙的程序错误
  • 当它与梯度下降或其他算法一起工作的时候,看起来确实能正常运行
  • 并且代价函数在每次迭代下降的迭代中,也在不断地下降
  • 但到最终输出结果是还是会和正常的结果差出数量级大小,而且还不知道

  • 有一种思想是梯度检验

  • 可以保证前向传播或后向传播是百分之百正确的

    导数计算

    image.png
    更常用双侧差分的方法
    如果模型参数是向量形式
    image.png
    image.png

    验证结果

    image.png
    验证前面计算出的导数,与反向传播计算出的导数是否近似相等

    方法总结

    image.png

  • 梯度检测的计算方法仅能用来验证反向传播中导数计算结果正确与否,不能用来迭代计算,否则速度会很慢