神经网络训练中一个时代的意义

51 artificial-intelligence machine-learning neural-network pybrain

当我在阅读如何在pybrain中构建ANN时,他们说:

训练网络一些时代.通常你会在这里设置类似5的东西,

trainer.trainEpochs( 1 )
Run Code Online (Sandbox Code Playgroud)

我寻找的是什么意思,然后我得出结论,我们使用一个数据时代来更新权重,如果我选择训练5个时期的数据作为pybrain建议,数据集将被分成5个子集,并且权重将更新最多5倍.

我熟悉在每次样本数据或特征向量后更新权利的在线培训,我的问题是如何确定5个时代足以构建模型并设置权重?这种方式在线培训的优势是什么?术语"epoch"也用于在线培训,是否意味着一个特征向量?

run*_*run 96

一个时期包括训练集上的一个完整训练周期.一旦看到集合中的每个样本,您将再次开始 - 标记第二个时期的开始.

这与批量或在线培训本身无关.批处理意味着您在时期结束时(在看到每个样本之后,即#epoch更新)更新一次,并在每个样本之后更新(#samples*#epoch更新).

您无法确定5个纪元或500个是否足以收敛,因为它会因数据而异.当误差收敛或低于某个阈值时,您可以停止训练.这也涉及防止过度拟合的领域.您可以阅读有关该问题的早期停止交叉验证.

  • 那不是我说的.数据集不分为任何内容.比如说,数据集有10个样本(=数据向量).每个样本依次显示给网络.样本后nr.10,你从nr开始.1,2,3 .... 10,然后再次在nr开始.1,2,3 ....每次从第一个样本开始,你都会做一个额外的训练时代.3个时代可视化为括号:[1,2,3,4 ... 10],[1 ... 10],[1 ... 10].一个纪元是整个数据集的单一传递. (6认同)