单元测试反向传播

Unit Testing Backpropagation

我正在为反向传播编写一个 class 库。我没有遵循 TDD 的原则,但我仍然想为它编写一些单元测试。我的问题是我不知道应该如何测试它。 我唯一的猜测是手动计算权重的增量,以便将结果与之进行比较,但这似乎不对,是吗?

所以:我会在一个场景中计算 Excel 中的增量,然后测试该场景。那是一个有效的测试吗?

谢谢。

您可以从解决一个简单的测试问题开始,该问题具有易于验证的结果,例如 this document 中描述的 XOR 问题。

测试反向传播算法非常重要,因为它们有细微的错误是很常见的。例如。梯度关闭,但足够接近网络仍然可以学习。

你只用了有限差分法。对于每个参数(或随机参数或其他),您为其添加一个非常小的值。查看误差变化量除以您更改参数的量,然后查看是否与您的梯度匹配。