在反向传播中的梯度检查

时间:2014-10-04 11:59:36

标签: neural-network backpropagation

我试图为具有2个单位输入层,2个单位隐藏层和1个单位输出层的简单前馈神经网络实现梯度检查。我的工作如下:

  1. 在所有层之间获取网络权重的每个权重w并使用w + EPSILON然后使用w-EPSILON执行前向传播。
  2. 使用两个前馈传播的结果计算数值梯度。
  3. 我不明白的是如何进行反向传播。通常,我将网络的输出与目标数据(在分类的情况下)进行比较,然后反向传播网络中的误差导数。但是,我认为在这种情况下,一些其他值必须反向传播,因为数值梯度计算的结果不依赖于目标数据(但仅取决于输入),而错误反向传播取决于目标数据。那么,在梯度检查的反向传播部分应该使用的值是什么?

1 个答案:

答案 0 :(得分:-1)

无论您是要进行某种分类还是让您的网络计算某个数字函数,您始终都会有一些目标数据。例如,假设您想训练网络来计算函数f(a, b) = a + b。在这种情况下,这是您要训练网络的输入和目标数据:

 a       b     Target

 1       1        2
 3       4        7
21       0        21
 5       2        7 

        ...

正如“正常”分类问题一样,输入目标对越多越好。