Gradient Check 的原理和意义

求grad有两种方式

一种是用 微积分的方式(calculus-based) 来求出grad, 

另一种是使用数值的方式来估计grad (numerically approximating),
中心差分公式(centered difference formula)

 

  

[centered difference formula]

 

 

简单VS复杂 

在实现神经网络的过程中,
`back propagation` 就是使用微积分的方式,算出每个部分的微分,计算复杂,

而`中心差分公式`特别简单,只要计算两次函数结果,相减即可

 

为什么不用 `中心差分公式` 而使用bp呢?

是因为bp从后往前计算,计算的中间结果可以重复使用,
而`中心差分公式`对每一个需要更新的参数都需要做两次forward propagation,计算效率非常低

 

gradient check

虽然不能在实际生产中使用`中心差分公式`,
但是可以用这种简单易算的方式 来检验复杂的bp算法的正确性

这就是gradient check的原理和意义

posted @ 2017-09-28 10:21  烧鸭饭真好吃  阅读(273)  评论(0编辑  收藏  举报