【问题标题】:pyBrain trainUntilConvergence... help me understand this function pleasepyBrain trainUntilConvergence...请帮我理解这个功能
【发布时间】:2016-02-06 10:46:30
【问题描述】:

我有几个关于 pyBrain 中 trainUntilConvergence 的新手问题。

trainUntilConvergence 将数据集分为训练集和验证集(默认为 25% 用于测试)。这是正确的吗?

在每个 epoch 之后报告的错误是验证集上的错误还是训练集上的错误?

当验证集的错误不再减少时,网络是否被认为是收敛的(从而停止执行)?或者当训练集上的错误不再减少时? (我认为是前者,否则为什么要使用一部分进行验证?)

选择用于验证的数据部分是连续的(例如数据集的最后 x%)还是从数据中随机选择 x% 的行?

谢谢!

【问题讨论】:

    标签: pybrain


    【解决方案1】:

    根据documentationtrainUntilConvergence,接受几个参数。如下图所示。是的,它默认使用 25% 作为验证集。

    trainUntilConvergence(dataset=None, maxEpochs=None, verbose=None, continueEpochs=10, validationProportion=0.25)
    

    您可以将validationProportion 参数更改为您认为合适的其他值。验证集的比例是值得商榷的,没有一刀切的比例。您需要尝试它们以适合您的情况。

    trainUntilConvergence方法在您的数据集上进行训练,直到验证集上的误差在一定数量的时期内不再减少。您可以通过更改 continueEpochs 参数来改变训练者在停止训练之前考虑的 epoch 数。默认为 10。换句话说,如果验证集上的错误在连续 10 个 epoch 内没有改善,则终止训练。这也称为early stopping 方法,广泛用于训练神经网络。

    关于验证集的连续性,我不确定。但从逻辑上讲,它应该随机选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多