挽救分歧的神经网络

时间:2016-07-02 07:25:33

标签: neural-network deep-learning caffe conv-neural-network backpropagation

我有一个DCNN在几个训练时期后出现分歧,但最初的结果很好。它是安全的吗?回到一个时代,或一个时代的一小部分,降低学习率,并继续,或者我应该假设一些权重可能接近于病态,因此完全重新开始训练是必要的(降低学习率)?

一个相关的问题是网络内部产生什么样的行为会产生这样的结果。我认为分歧应该在训练的早期发生,而不是在网络已经接近完全收敛时。

1 个答案:

答案 0 :(得分:1)

  1. 否。这是不安全的,因为如果分歧是由很大的学习率引起的,那么它很可能发生在开始时代。有些重量可能已经病态了。
  2. 通常,结果主要是由梯度误差引起的。梯度误差可能来自:

    DCNN中某些图层的前向和后向计算错误: 前向和后向计算中的误差都可能导致模型参数更新的错误梯度,尽管它可能不会在开始时引起分歧,但它可能以错误的方式更新某些参数并累积,直到这些参数变得病态不足以导致培训分歧。

    数值不稳定性:例如,当计算X的方差D(X)时,D(X)= E {[X - E(X)] ^ 2}具有更多的数值不稳定性比D(X)= E(X ^ 2) - E ^ 2(X),因为最后一个可能导致负D(X),从而导致梯度误差甚至发散。