我正在用TensorFlow (使用特夫罗)对生成的数据进行神经网络训练。据我所知,每个时代我们都使用所有的训练数据。由于我可以控制我有多少个例子,似乎最好只是生成更多的培训数据,直到一个时代足以训练网络。
所以我的问题是:假设我有足够的训练数据,只使用一个时代有什么坏处吗?我是否正确地假设百万个例子中的一个时代比10万的10个时代要好呢?
发布于 2016-06-29 13:29:10
在与@Prune进行讨论之后:
假设您有可能从固定的基础概率分布,即从相同的流形中抽样,生成无限数量的有标记的示例。
网络看到的例子越多,它就会学得越好,尤其是对的概括效果越好。理想情况下,如果你训练它足够长的时间,它可以达到100%的准确性在这一特定的任务。
结论是,只要从相同的分布中抽样,只运行一个时代的是很好的。
这一战略的局限性可能是:
运行多个时代可能会使它更好地了解一些不寻常的情况。
我不同意,多次使用相同的例子总是比生成新的未知示例更糟糕。但是,您可能希望用时间生成越来越难的示例,以便在不常见的情况下使您的网络更好。
发布于 2016-06-23 21:54:22
您需要培训的例子,以使网络学习。通常,为了使网络收敛,您没有那么多的示例,因此需要运行多个时代。
如果你有这么多的例子,并且它们是相似的,那么只使用一个时代是可以的。如果你有100门课,但其中有些只有很少的例子,你不会只在一个时代学习这些课程。所以你需要平衡的课程。
此外,有一个可变的学习率是一个好主意,它会随着例数的增加而减少,这样网络就可以自己微调。它以较高的学习速率开始,然后随着时间的推移而降低,如果您只运行了一个时代,您需要记住这一点来调整图形。
我的建议是运行多个时代,主要是因为您拥有的示例越多,存储它们所需的内存就越多。但是,如果记忆很好,学习速度是根据例数而不是历元来调整的,那么它就是运行一个时代。
编辑:我假设您正在使用一个学习算法,它更新网络的权重,每批或类似的。
https://stackoverflow.com/questions/38000189
复制相似问题