Neural network 损失停止减少时RNN模型训练的一般规则
我有一个RNN模型。在大约10K次迭代之后,损耗停止下降,但损耗还不是很小。这是否总是意味着优化被困在局部极小值中 总的来说,我应该采取什么行动来解决这个问题?添加更多培训数据?是否更改不同的优化方案(SGD)?还是其他选择 非常感谢Neural network 损失停止减少时RNN模型训练的一般规则,neural-network,deep-learning,torch,recurrent-neural-network,Neural Network,Deep Learning,Torch,Recurrent Neural Network,我有一个RNN模型。在大约10K次迭代之后,损耗停止下降,但损耗还不是很小。这是否总是意味着优化被困在局部极小值中 总的来说,我应该采取什么行动来解决这个问题?添加更多培训数据?是否更改不同的优化方案(SGD)?还是其他选择 非常感谢 JC如果您正在使用基于梯度向量的算法(如反向传播或弹性传播)训练神经网络,当它找到局部最小值时,它可能停止改进,并且由于这种fo算法的性质,它是正常的。在这种情况下,传播算法用于搜索(梯度)向量指向的对象 作为建议,您可以在培训期间添加不同的策略,以探索搜索空间,
JC如果您正在使用基于梯度向量的算法(如
反向传播
或弹性传播
)训练神经网络,当它找到局部最小值时,它可能停止改进,并且由于这种fo算法的性质,它是正常的。在这种情况下,传播算法用于搜索(梯度)向量指向的对象
作为建议,您可以在培训期间添加不同的策略,以探索搜索空间,而不是仅搜索。对于样本,使用遗传算法
或模拟退火
算法。这些方法将提供对可能性的探索,并能找到全球最小值。您可以为传播算法的每200次迭代执行10次迭代,从而创建一个混合策略。对于示例(它只是一个伪代码):
int epochs=0;
做
{
火车();
如果(纪元%200==0)
trainigexplorativeapproach();
时代++;
}而(年代<10000);
我在分类
和回归
问题中使用多层感知器
和埃尔曼回归神经网络
开发了一种类似的策略,这两种情况下,混合策略都比单一传播训练提供了更好的结果
int epochs = 0;
do
{
train();
if (epochs % 200 == 0)
traingExplorativeApproach();
epochs++;
} while (epochs < 10000);