首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >只使用一个时代可以吗?

只使用一个时代可以吗?
EN

Stack Overflow用户
提问于 2016-06-23 19:26:39
回答 2查看 4.6K关注 0票数 9

我正在用TensorFlow (使用特夫罗)对生成的数据进行神经网络训练。据我所知,每个时代我们都使用所有的训练数据。由于我可以控制我有多少个例子,似乎最好只是生成更多的培训数据,直到一个时代足以训练网络。

所以我的问题是:假设我有足够的训练数据,只使用一个时代有什么坏处吗?我是否正确地假设百万个例子中的一个时代比10万的10个时代要好呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-06-29 13:29:10

在与@Prune进行讨论之后:

假设您有可能从固定的基础概率分布,即从相同的流形中抽样,生成无限数量的有标记的示例。

网络看到的例子越多,它就会学得越好,尤其是的概括效果越好。理想情况下,如果你训练它足够长的时间,它可以达到100%的准确性在这一特定的任务。

结论是,只要从相同的分布中抽样,只运行一个时代的是很好的。

这一战略的局限性可能是:

  • 如果需要存储生成的示例,则可能会耗尽内存。
  • 处理不平衡类(参见@jorgemf答案),您只需为每个类提供相同数量的示例即可。
    • 如果您有两个类,第一个类的抽样概率为10%,则应该创建一个50% / 50%分布的批次示例

运行多个时代可能会使它更好地了解一些不寻常的情况。

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

票数 7
EN

Stack Overflow用户

发布于 2016-06-23 21:54:22

您需要培训的例子,以使网络学习。通常,为了使网络收敛,您没有那么多的示例,因此需要运行多个时代。

如果你有这么多的例子,并且它们是相似的,那么只使用一个时代是可以的。如果你有100门课,但其中有些只有很少的例子,你不会只在一个时代学习这些课程。所以你需要平衡的课程。

此外,有一个可变的学习率是一个好主意,它会随着例数的增加而减少,这样网络就可以自己微调。它以较高的学习速率开始,然后随着时间的推移而降低,如果您只运行了一个时代,您需要记住这一点来调整图形。

我的建议是运行多个时代,主要是因为您拥有的示例越多,存储它们所需的内存就越多。但是,如果记忆很好,学习速度是根据例数而不是历元来调整的,那么它就是运行一个时代。

编辑:我假设您正在使用一个学习算法,它更新网络的权重,每批或类似的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38000189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档