一般使用深度自动编码器/深度学习时的适当均方误差

Adequate Mean Squared Error while using Deep Autoencoder/ Deep Learning in general

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

获得培训标准(例如 MSE)是否有必要0.000001 并强制它完美地重建输入,或者是否可以保留差异(例如,当 MSE 大约为 0.5 时停止),具体取决于所使用的数据集。

我知道更好的重建可能会导致更好的分类结果,但是 "rule of thumb" 什么时候停止?我对没有启发式特征的规则特别感兴趣,例如 "if the MSE doesn't get smaller in x iterations".

我认为不可能为此得出一般的经验法则,因为生成 NN:s/machine 学习是一个非常针对特定问题的过程,通常 there is no free lunch。如何确定什么是 "good" 训练错误终止取决于各种特定于问题的因素,例如数据中的噪声。仅针对训练集评估您的 NN,仅 objective 最小化 MSE,很多时候会导致 过度拟合 。仅将训练误差作为反馈,您可能会将神经网络调整为训练数据中的噪声(因此会出现过度拟合)。避免这种情况的一种方法是 holdout validation。不是仅针对给定数据训练神经网络,而是将数据集划分为训练集、验证集(和测试集)。

  • 训练集:训练和对 NN 的反馈,随着训练时间的延长,自然会不断减少(至少下降到特定问题的 "OK" MSE 值)。
  • 验证集:评估您的神经网络 w.r.t。对这些,但不要对您的 NN/genetic 算法提供反馈。

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

跟踪训练集和验证集的 MSE 下降;一般来说,训练误差会稳步下降,而在某个时候,验证误差会达到最小值,并随着进一步的训练而开始增加。当然,在运行时你无法知道这个最小值出现在哪里,所以通常存储验证错误最低的神经网络,并且在这之后似乎有一段时间没有更新(即错误回顾:我们已经通过了一个最小值验证错误),算法终止。

参见例如下面的文章 Neural Network: Train-validate-Test Stopping for details, as well as this SE-statistics thread 讨论了两种不同的验证方法。

对于深度 Autoencoders/Deep 学习的 training/validation,特别是 w.r.t。过度拟合,我觉得这篇文章 Dropout: A Simple Way to Prevent Neural Networks from Overfitting (*) 很有价值。

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