我在pyBrain中有几个关于trainUntilConvergence的新手问题。
trainUntilConvergence将数据集划分为训练集和验证集(默认为25%用于测试)。这是对的吗?
在每个纪元之后是否报告错误(当verbose = True时)验证集上的错误或针对训练集的错误?
当验证集的错误不再减少时,网络是否被认为是融合的(从而停止执行)?或者当训练集上的错误不再减少时? (我假设以前为什么要使用一部分进行验证?)
选择用于验证的数据部分是连续的(例如数据集的最后x%)还是从数据中随机选择x%的行?
谢谢!
答案 0 :(得分:0)
根据documentation trainUntilConvergence
,需要输入几个参数。它如下所示。是的,默认为25%用作验证集。
trainUntilConvergence(dataset=None, maxEpochs=None, verbose=None, continueEpochs=10, validationProportion=0.25)
您可以根据需要将validationProportion
参数更改为其他值。验证集的比例是值得商榷的,没有一个值适合所有比例。你需要尝试它们以适应你的情况。
trainUntilConvergence
方法训练您的数据集,直到验证集上的错误不再减少一定数量的时期。您可以通过更改continueEpochs
参数来更改培训师在停止培训之前考虑的时期数。默认为10.换句话说,如果验证集上的错误在10个连续的纪元中没有改善,则终止训练。这也称为early stopping
方法,广泛用于训练神经网络。
关于验证集的连续性,我不确定。但从逻辑上讲,它应该选择随机选择。