2

我目前想知道何时停止深度自动编码器的训练,尤其是当它似乎陷入局部最小值时。

是否有必要让训练标准(例如 MSE)达到例如 0.000001 并强制它完美地重建输入,或者是否可以根据使用的数据集保持差异(例如,当 MSE 大约为 0.5 时停止)。

我知道更好的重建可能会导致更好的分类结果,但是何时停止有“经验法则”吗?我对没有启发式特征的规则特别感兴趣,例如“如果 MSE 在 x 次迭代中没有变小”。

4

1 回答 1

1

我认为不可能为此得出一般的经验法则,因为生成 NN:s/机器学习是一个非常特定于问题的过程,而且通常没有免费的午餐。如何决定什么是“好的”训练错误以终止取决于各种特定于问题的因素,例如数据中的噪声。仅针对训练集评估您的 NN,其唯一目标是最小化 MSE,很多时候会导致过度拟合。只有训练错误作为反馈,您可能会将您的 NN 调整为训练数据中的噪声(因此过度拟合)。避免这种情况的一种方法是保持验证。您不仅可以针对给定数据训练您的 NN,还可以将您的数据集划分为训练集、验证集(和测试集)。

  • 训练集:对 NN 的训练和反馈,自然会随着训练时间的延长而减少(至少下降到特定问题的“OK”MSE 值)。
  • 验证集:根据这些评估您的 NN,但不要向您的 NN/遗传算法提供反馈。

因此,除了训练集的评估反馈之外,您还应该评估验证集,但不要向您的神经网络 (NN) 提供反馈。

跟踪训练集和验证集的 MSE 减少;一般来说,训练误差会稳步下降,而在某些时候,验证误差会达到最小值,并随着进一步的训练开始增加。当然,您无法在运行时知道该最小值出现在哪里,因此通常会存储具有最低验证错误的 NN,并且在此之后似乎有一段时间没有更新(即,回想起来错误:我们已经在验证错误),算法终止。

有关详细信息,请参见以下文章神经网络:训练验证测试停止,以及讨论两种不同验证方法的 SE 统计线程。

对于深度自动编码器/深度学习的训练/验证,特别是过度拟合,我发现文章Dropout: A Simple Way to prevent Neural Networks from Overfitting (*)很有价值。

(*) 作者:H. Srivistava、G. Hinton、A. Krizhevsky、I. Sutskever、R. Salakhutdinov,多伦多大学。

于 2015-12-11T10:50:17.493 回答