深度神经网络中的“随机种子”在哪里使用?

人工智能 神经网络 深度学习 学习算法
2021-10-22 03:39:19

我知道在创建神经网络时,创建“随机种子”是标准做法,这样您就可以在模型中获得可生产的结果。我对此有几个问题:

  • 种子只是在网络的“学习”阶段使用的东西还是被保存了?即,如果他们决定实现您创建的模型,它是否保存到模型本身并被其他人使用?
  • 你选择什么作为种子重要吗?数字应该有一定的长度吗?
  • 在创建模型的哪个步骤使用此种子以及如何使用它?

欢迎提供有关“随机种子”的其他信息!但这些是我的一般问题。

1个回答

我想最常用的部分是训练前的权重初始化;目前已知的最佳方法涉及随机性。

如果您在训练期间使用 Dropout(将某些激活级别随机设置为零以对抗过度拟合),这也涉及随机性,因此您的种子也可能在那里产生影响。训练后不应该再使用 Dropout,尽管如果你不小心实现了它可以在那里使用它。如果你没有犯这个错误,那么你的种子也应该只在训练期间很重要。

根据实现的不同,我认为种子也可能对训练期间从训练数据集中随机选择小批量的时期之间输入数据的随机排序产生影响。当然,这在很大程度上取决于实现。如果您最终自己实现了这种数据处理,而不是通过某个框架来完成,那么您也将成为决定什么随机种子对该过程产生影响的人。

一般来说(除了我不知道的任何特殊情况),神经网络应该在训练后表现出确定性;如果你给它相同的输入,它应该提供相同的输出,你的随机种子在训练后应该不再有影响。