Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neural network 如何避免重复神经网络过度训练?_Neural Network - Fatal编程技术网

Neural network 如何避免重复神经网络过度训练?

Neural network 如何避免重复神经网络过度训练?,neural-network,Neural Network,我正在使用一个递归神经网络进行预测。我应该如何避免过度训练?我已经使用gradient Delegate进行参数更新。下图显示了500 epoch的训练和验证错误。有几种策略有助于防止过度拟合: 正规化。可以在权重上添加衰减或使用L1或L2正则化 使用较小的模型(即需要拟合的参数较少) 向数据中添加随机噪声 添加训练数据(如果无法获得更自然的数据,可能可以综合生成) 提前停车。这仅仅意味着在训练开始过度之前停止训练 一个典型的方法是:使用一个大模型,使用dropout,也可以使用L2。尝试几个不

我正在使用一个递归神经网络进行预测。我应该如何避免过度训练?我已经使用gradient Delegate进行参数更新。下图显示了500 epoch的训练和验证错误。有几种策略有助于防止过度拟合:

  • 正规化。可以在权重上添加衰减或使用L1或L2正则化
  • 使用较小的模型(即需要拟合的参数较少)
  • 向数据中添加随机噪声
  • 添加训练数据(如果无法获得更自然的数据,可能可以综合生成)
  • 提前停车。这仅仅意味着在训练开始过度之前停止训练

  • 一个典型的方法是:使用一个大模型,使用dropout,也可以使用L2。尝试几个不同的正则化量值,并使用最佳值。在训练过程中监控验证错误,并选择最低的模型(提前停止)。

    您可能会在stats.stackexchange.com上得到更好的答案谢谢您的评论。防止过度训练是一门艺术。你可能会有一些运气辍学和提前停止。非常感谢你的帮助。我不知道你是否看到了我的误差图,我的问题是,因为网络是循环的,参数更新公式不准确,如误差图所示,训练误差不会随时间下降,它有起伏,验证误差也是如此。所以要么早点停车,要么我犯了个大错!看起来您的网络在学习方面遇到了问题(考虑到平坦的训练和验证错误高达~200)。如果不了解您正在解决的问题和使用的网络体系结构,很难说问题可能是什么。另外,我不知道您使用的是什么错误函数,但似乎错误接近于0。从某种意义上说,这表明已经没有什么可学的了——这可能是个问题。圆圈代表神经元。目标是利用前几天的价格预测未来几天的价格。有2个输入(n=2),隐藏层中有3个神经元和5个输出(k=5),因此网络有6个输入(n+k-1=2+5-1=6)。Tansig用作第一层的传递函数,purelin用作输出层的传递函数。我知道实现这个目标是不可能的,但我的问题不是表现不佳,我想知道什么时候停止训练,通常训练错误会随着时间的推移而下降,但在我的网络中,它是摇摆不定的。我不知道这是正常的还是我做错了什么!很难说。是的,您通常会看到训练错误下降,即使这纯粹是因为网络存储了训练数据。但我怀疑在你的情况下,网络甚至没有能力存储任何数据,因为它只有很少的参数-RNN经常与数百万个参数一起使用。数百万???!当我在隐藏层中使用超过15个神经元时,输出趋于无穷大!!!我试过了所有可能的案例,这是我能找到的最好的结构。你可以看到这篇论文[link]()是一个用于预测的递归网络,它也有一些参数