2


我使用pybrain实现在 python 中使用前馈神经网络。对于训练,我将使用反向传播算法。我知道对于神经网络,我们需要恰到好处的数据量,以免网络训练不足/过度训练。我可以获得大约 1200 个不同的数据集训练数据模板。
那么问题来了:
如何计算训练的最佳数据量?

由于我已尝试使用数据集中的 500 个项目,并且需要花费数小时才能收敛,因此我宁愿不必尝试太多的大小。结果我们对最后一个尺寸非常好,但我想找到最佳数量。神经网络有大约 7 个输入、3 个隐藏节点和 1 个输出。

4

3 回答 3

3

如何计算训练的最佳数据量?

它完全取决于解决方案。科学也有一点艺术。了解您是否进入过度拟合领域的唯一方法是定期针对一组验证数据(即您训练的数据)测试您的网络。当该组数据的性能开始下降时,您可能训练得太远了——回滚到上一次迭代。

最后一个尺寸的结果非常好,但我想找到最佳数量。

“最佳”不一定是可能的;这也取决于您的定义。您通常要寻找的是对一组给定的权重将在看不见的数据上表现“良好”的高度置信度。这就是验证集背后的想法。

于 2010-11-04T20:12:25.980 回答
0

数据集的多样性比您提供给网络的样本数量重要得多。

您应该自定义数据集以包含和强化您希望网络学习的数据。

制作完这个自定义数据集后,您必须开始使用样本量,因为它完全取决于您的问题。

例如:如果你正在构建一个神经网络来检测特定信号的峰值,那么用无数没有峰值的信号样本来训练你的网络是完全没有用的。无论您有多少样本,定制训练数据集的重要性都在于此。

于 2010-11-04T20:15:53.553 回答
0

从技术上讲,在一般情况下,假设所有示例都是正确的,那么更多示例总是更好。真正的问题是,边际改进(答案质量的一阶导数)是多少?

您可以通过使用 10 个示例对其进行训练、检查质量(例如 95%)、然后检查 20 个等等来测试它,以获得如下表格:

10 95%
20 96%
30 96.5%
40 96.55%
50 96.56%

然后,您可以清楚地看到自己的边际收益,并据此做出决定。

于 2010-11-04T22:39:19.763 回答