【问题标题】:Why not train for partial epochs?为什么不训练部分时期?
【发布时间】:2017-04-29 03:19:16
【问题描述】:

似乎没有人运行他们的模型,比如 '10.5' 时期。这样做的理论原因是什么?

对我来说有点直观的是,如果我有一个完全独特的样本训练集,那么训练不足和过度训练之间的最佳拐点应该在完整的时期之间。然而,在大多数情况下,单个训练样本通常会以一种或另一种方式相似/相关。

有可靠的基于统计的理由吗?或者,有没有人根据经验进行调查?

【问题讨论】:

  • 您可以随时检查迭代并提前停止学习。在我看来,我认为停止 10.5 或 10.2 进行概括没有意义。完全超出了权重更新更关注的epochs范围。
  • 理论上的原因是你这样做会使模型产生偏差。
  • @MatiasValdenegro 你能扩展一下吗?模型最终会如何产生偏见?您能否将我推荐给这样的来源,或者更好:解释它?

标签: machine-learning deep-learning


【解决方案1】:

我对这个前提提出异议:在我工作的地方,我们经常运行部分 epoch,尽管大型数据集的范围更高:比如 40.72 epoch。

对于小型数据集或短期训练,这是一个同等权重处理每个观察的问题,因此很自然地认为需要处理每个观察相同的次数。正如您所指出的,如果输入样本是相关的,那么这样做就不那么重要了。

我认为一个基本原因是方便:整数更容易解释和讨论。 对于许多模型,在最佳训练中没有 knee:它是一条平缓的曲线,因此几乎可以肯定在准确度的“最佳位置”内有整数个 epoch。因此,发现 10 个 epoch 比 11 个稍微好一点会更方便,即使最优点(在迭代次数的微小差异下进行多次训练时发现)恰好是 10.2 个 epoch。收益递减表示,如果 9-12 个 epoch 给我们非常相似的良好结果,我们只需注意 10 是 8-15 个 epoch 范围内的最佳性能,接受结果,然后继续生活。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-08
    • 2017-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-16
    相关资源
    最近更新 更多