4

在反向传播 ANN 的在线实现中,您将如何确定停止标准?

我一直在做的方式(我确信这是不正确的)是平均每个输出节点的误差,然后在每个时期平均这个误差。

这是不正确的方法吗?是否有停止在线实施的标准方法?

4

1 回答 1

6

您应该始终考虑与您的训练集分离的验证集上的误差(例如均方根误差)。如果训练时间过长,你的神经网络就会开始过拟合。这意味着,您的训练集上的错误将变得最小甚至为 0,但一般数据上的错误会变得更糟。

为了得到产生最佳泛化性能的模型参数,只要验证集上的错误达到新的最小值,就应该复制并保存模型参数。如果性能有问题,您可以仅每 N 步执行此检查。

在在线学习设置中,您将使用单个训练样本或少量训练样本的小批量进行训练。您可以将涵盖您的全部数据的所有样本/小批量的连续训练视为一个训练时期

有几种可能性来定义所谓的Early Stopping Criterion。例如,您可以在每个完整时期后考虑验证集上的最佳 RMS 误差。一旦 M 时期没有新的最优值,你就会停下来。根据问题的复杂性,您必须选择足够高的 M。你也可以从一个相当小的 M 开始,每当你得到一个新的最优值时,你将 M 设置为达到它所需的 epoch 数。这取决于是快速收敛更重要还是尽可能彻底。

你总会遇到验证和/或训练错误会暂时变大的情况,因为学习算法是爬山的。这意味着它会遍历错误表面上导致性能不佳的区域,但必须通过它才能达到新的、更好的最优值。如果您只是在后续两个步骤之间的验证或训练错误变得更糟时立即停止,那么您将过早地获得次优解决方案。

于 2013-03-25T22:05:20.260 回答