【问题标题】:Efficient dataset size for a feed-foward neural network training前馈神经网络训练的有效数据集大小
【发布时间】:2010-11-04 20:03:42
【问题描述】:


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

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

【问题讨论】:

    标签: artificial-intelligence machine-learning backpropagation neural-network


    【解决方案1】:

    如何计算最佳金额 我的训练数据?

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

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

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

    【讨论】:

    • 我想我一直都知道这个答案,但仍然希望得到一些神奇的数字。这种放置几乎随机参数(基于感觉)的无助印象似乎都是关于人工智能的:)不过,谢谢。
    【解决方案2】:

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

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

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

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

    【讨论】:

    • 是的,我想过,这一步已经完成了。数据集是一个多样化的数据集,因为输入和输出是连续的而不是离散的。
    【解决方案3】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2015-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-01
      • 2014-02-06
      • 2012-03-15
      • 2013-02-01
      • 1970-01-01
      相关资源
      最近更新 更多