当损失停止减少时训练RNN模型的一般规则

时间:2016-04-04 15:25:33

标签: neural-network deep-learning torch recurrent-neural-network

我有一个RNN模型。在大约10K迭代之后,损失停止减少,但损失不是很小。是否始终意味着优化陷入局部最小值?

一般来说,我应该采取什么行动来解决这个问题?添加更多培训数据?更改不同的优化方案(现在是SGD)?还是其他选择?

非常感谢!

JC

1 个答案:

答案 0 :(得分:2)

如果您使用基于梯度向量的算法(例如Back PropagationResilient Propagation训练神经网络,它会在找到局部最小值时停止改进,并且由于此类型的性质而正常fo算法。在这种情况下,传播算法用于搜索(梯度)向量指向的内容。

作为建议,您可以在培训期间添加不同的策略,以探索搜索空间而不是搜索。对于示例,请使用Genetic AlgorithmSimulated Annealing算法。这些方法将提供对可能性的探索,并且可以找到全局最小值。您可以为传播算法的每200次迭代实现10次迭代,从而创建混合策略。对于样本(它只是一个伪代码):

int epochs = 0;
do
{
   train();

   if (epochs % 200 == 0)
      traingExplorativeApproach();

   epochs++;
} while (epochs < 10000);

我在Multi-Layer PerceptronsElman recurrent neural network问题中使用classificationregressions制定了这样的策略,两种情况下混合策略都提供了比单一传播更好的结果训练。