训练有素的重量是否取决于训练数据的输入顺序?

时间:2017-08-03 09:04:47

标签: machine-learning keras

假设有人使用Keras制作神经网络。训练的重量是否取决于训练数据输入系统的顺序?是否可以首先提供属于一个类别的数据,然后提供属于另一个类别的数据,还是应该是随机数据?

2 个答案:

答案 0 :(得分:1)

由于培训将分批进行,这意味着按块优化数据块的权重,主要假设是批量数据在某种程度上代表了数据集。为了使其具有代表性,因此最好随机抽样数据。

底线:如果您随机喂养神经网络,理论上会更好地学习。当你在训练模式下喂它时,我强烈建议你把数据集洗牌(并且.fit()函数中有一个选项)。

在推理模式下,如果你只想在神经网络上进行正向传递,那么顺序根本不重要,因为你不会改变权重。

我希望这能为你澄清一些事情: - )

答案 1 :(得分:0)

对于小型网络和数据集,Nassim的回答被认为是真的,但是最近的articles(或者例如this个)让我们相信对于更深层次的网络(超过4层) - 不要改组你的数据集可能被认为是某种正规化 - 因为预期差的最小值很小但很小,预计良好的最小值很宽,很难留下。

在推理时间的情况下 - 这可能会损害您的推理过程的唯一方法是当您以高度耦合的方式使用数据的训练分布时 - 例如在训练阶段使用BatchNormalizationDropout(这有时用于某些贝叶斯深度学习)。