我正在TensorFlow中使用生成的数据训练神经网络(使用tflearn)。据我所知,每个时期我们都使用所有训练数据。由于我可以控制我拥有的示例数量,因此似乎最好只生成更多的训练数据,直到一个纪元足以训练网络为止。

所以我的问题是:假设我有足够的训练数据,仅使用一个纪元会有任何弊端吗?我是否假设一百万个示例中的一个纪元比十万个示例中的十个纪元好?

最佳答案

在与@Prune讨论之后:

假设您有可能生成无限数量的带标签的示例,这些示例是从固定的基础概率分布采样的,即从同一流形采样的。

网络看到的示例越多,它就会学得越好,尤其是进行泛化的效果就更好。理想情况下,如果您对它进行足够长时间的培训,则在此特定任务上它可以达到100%的准确性。

结论是,仅从1个纪元运行就可以了,只要示例是从相同的分布中取样的。

此策略的局限性可能是:

  • 如果需要存储生成的示例,则可能内存不足
  • 处理不平衡的类(请参阅@jorgemf答案),您只需要为每个类采样相同数量的示例。
  • 例如如果您有两个类别,并且有第一个样本有10%的机会采样,则应创建批次示例,其分布为50%/50%




  • 我不同意,多次使用同一示例总是比生成新的未知示例更糟糕。但是,您可能希望随着时间的推移生成越来越难的示例,以使您的网络在不常见的情况下变得更好。

    关于machine-learning - 可以只使用一个纪元吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38000189/

    10-10 02:18