@nrailgun
2016-09-07T00:20:20.000000Z
字数 443
阅读 1509
神经网络调错
机器学习
简单翻译此文章。
如何处理 NaN
- 前 100 轮出现:减小学习率, 比率减小,直到不再出现 NaN。
- 100 轮后出现:
- If you are using RNNs, make sure that you are using "gradient
clipping", which caps the global L2 norm of the gradients.
- 代码有错;
- Softmax 计算 很可能导致出错,稳定的 softmax 实现可以避免此问题。
如果网络不学习
- 减小网络数据量到 10,通常这样很快就可以收敛。将 batch size 减小到 1,可以检查计算错误(改点值得商榷,在数据缺乏的时候,过少的数据不足以训练一个较深的网络)。
- 解决一个简化版的子问题。
调整超参数
- 可视化很重要。
- 初始化很重要,调整初始化和学习率通常是相关的。
- 让你权重看起来更加“健康”,所谓的健康可以参考一下 imagenet 或者 cifar10 的模型。
- 神经网络不具有 built-in 的尺度不变性。
- 尽量记录你的测试记录。