神经网络自学经验整理
业余时间自学神经网络,一年多来时断时续,遇到了各种各样的坑,各种不收敛,现整理一些经验,不对之处欢迎指出
问题1:迅速收敛到一个误差很大的局部极小值
迭代一两步后,误差不再变小,隐藏层梯度几乎为0,但输出层梯度接近0或不接近0.
解决方法:
- 检查隐藏层和输出层的输出值,如果输出值都是0(tanh激活),或都是0.5(sigmoid激活),说明权值初始化不好,冲量项系数太小。初始权值一定要是以0为中心的随机分布,绝对值要小,但不能是0
- 检查输入数据,输入数据一定要放缩到一个合理的范围,建议0-1或-1-1区间。理论上神经网络的输入是 Rn