【问题标题】:Adequate Mean Squared Error while using Deep Autoencoder/ Deep Learning in general一般使用深度自动编码器/深度学习时有足够的均方误差
【发布时间】:2016-03-17 04:55:34
【问题描述】:

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

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

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

【问题讨论】:

    标签: machine-learning neural-network deep-learning autoencoder


    【解决方案1】:

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

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

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

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

    参见例如以下文章Neural Network: Train-validate-Test Stopping 了解详细信息,以及this SE-statistics thread 讨论两种不同的验证方法。

    用于深度自动编码器/深度学习的训练/验证,特别是 w.r.t.过拟合,我觉得Dropout: A Simple Way to Prevent Neural Networks from Overfitting (*)的文章很有价值。

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

    【讨论】:

      猜你喜欢
      • 2018-11-04
      • 2018-11-05
      • 1970-01-01
      • 2013-12-30
      • 2017-12-25
      • 2019-01-10
      • 2021-01-18
      • 2021-11-13
      • 1970-01-01
      相关资源
      最近更新 更多