pyBrain trainUntilConvergence ...请帮我理解这个功能

时间:2016-02-06 10:46:30

标签: pybrain

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

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

在每个纪元之后是否报告错误(当verbose = True时)验证集上的错误或针对训练集的错误?

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

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

谢谢!

1 个答案:

答案 0 :(得分:0)

根据documentation trainUntilConvergence,需要输入几个参数。它如下所示。是的,默认为25%用作验证集。

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

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

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

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