有效的数据集大小用于饲料式神经网络培训
题
我正在使用Python中使用饲料式神经网络 pybrain 执行。对于培训,我将使用后传播算法。我知道,对于神经网络,我们需要拥有适量的数据,以免在网络下/过度培训。我可以为数据集获得大约1200个不同的培训数据模板。
所以这是一个问题:
如何计算培训的最佳数据量?
由于我尝试了数据集中的500个项目,并且花费了很多小时的收敛,因此我不必尝试过多的尺寸。结果我们的最后一个尺寸非常好,但我想找到最佳量。神经网络有大约7个输入,3个隐藏节点和一个输出。
解决方案
如何计算培训的最佳数据量?
这完全取决于解决方案。科学也有一些艺术。知道您是否喜欢过度拟合区域的唯一方法是根据一组验证数据定期测试您的网络(这就是您执行的数据 不是 火车)。当这组数据的性能开始下降时,您可能已经训练了太远 - 回到最后一次迭代。
最后一个尺寸的结果非常好,但我想找到最佳量。
“最佳”不一定是可能的;这也取决于您的定义。您通常要寻找的是高度信心,即给定的一组权重可以在看不见的数据上执行“很好”。这就是验证集背后的想法。
其他提示
数据集的多样性比您要向网络的样本数量的数量重要得多。
您应该自定义数据集以包括并加强您想要网络学习的数据。
制作此自定义数据集后,您必须开始使用样本量,因为它完全取决于您的问题。
例如:如果您要构建一个神经网络来检测特定信号的峰值,则用无数峰的信号样本训练网络将是完全没有用的。无论您拥有多少个样本,都有定制培训数据集的重要性。
从技术上讲,在一般情况下,假设所有示例都是正确的,那么更多的示例总是更好。这个问题确实是,边际改进是什么(答案质量的第一个导数)?
您可以通过训练10个示例,检查质量(例如95%),然后是20个,以获取一张表:
10 95%
20 96%
30 96.5%
40 96.55%
50 96.56%
然后,您可以清楚地看到您的边际收益,并做出相应的决定。