我正在使用pybrain实现在python中使用feed-foward神经网络。对于训练,我将使用反向传播算法。我知道,对于神经网络,我们需要拥有恰当数量的数据,以免对网络进行不足/过度训练。我可以为数据集获得大约1200种不同的训练数据模板。
所以这就是问题:
如何计算培训的最佳数据量?
因为我在数据集中尝试了500个项目并且需要花费很多时间来收敛,所以我宁愿不必尝试太多的尺寸。结果我们对这个最后的尺寸非常好,但我想找到最佳数量。神经网络有大约7个输入,3个隐藏节点和一个输出。
答案 0 :(得分:3)
如何计算最佳金额 我的训练数据?
完全取决于解决方案。科学也有一点艺术。了解您是否过度拟合领域的唯一方法是定期针对一组验证数据(即 训练的数据)对您的网络进行测试。当这组数据的性能开始下降时,你可能已经训练得太过分了 - 回滚到最后一次迭代。
结果相当不错 最后的尺寸,但我想找到 最佳数量。
“最佳”不一定是可能的;它还取决于你的定义。您通常要寻找的是高度自信,即一组给定的权重将对看不见的数据表现“良好”。这就是验证集背后的想法。
答案 1 :(得分:0)
数据集的多样性远比您向网络提供的样本数量重要得多。
您应该自定义数据集以包含和强化您希望网络学习的数据。
制作完这个自定义数据集后,您必须开始播放样本量,因为它完全取决于您的问题。
例如:如果您正在构建一个神经网络来检测特定信号的峰值,那么使用没有峰值的大量信号样本训练您的网络将毫无用处。无论您拥有多少样本,都必须自定义您的训练数据集。
答案 2 :(得分:0)
从技术上讲,在一般情况下,假设所有示例都是正确的,那么更多示例总是更好。问题的确是,边际改进是什么(答案质量的一阶导数)?
你可以通过训练10个例子,检查质量(比方说95%),然后检查20等来测试这个,得到如下表格:
10 95%
20 96%
30 96.5%
40 96.55%
50 96.56%
然后,您可以清楚地看到您的边际收益,并做出相应的决定。