如何调整神经网络权重的随机性?

时间:2018-11-29 09:47:04

标签: machine-learning neural-network

在初始化期间,网络的权重是随机的。因此,如果您使用多个不同的随机权重对网络进行多次训练,则会得到不同的结果。

我的问题是:

  1. 在超参数调整期间您会做什么?您是否为每个超参数配置多次训练网络,并将结果的平均值作为该超参数配置的值? 如果是这种情况,是否有人会使用标准差提供的信息?
  2. 最终结果报告在测试数据上。我们会训练网络多次以补偿随机权重还是一次?

例如,在本文A Neural Representation of Sketch Drawings中, 他们在此表中报告了不同类别的对数可能性 enter image description here 所以我没有得到这些数字的方法论。

我感谢您的澄清:-)

2 个答案:

答案 0 :(得分:0)

您引用的论文与网络的权重初始化无关。 这与两个损失的加权功能有关,以下关键词揭示了这一点:

  

我们的培训程序遵循变分法   自动编码器[15],其中损失函数是两个项的和:   重建损失(LR)和 Kullback-Leibler 发散损失LKL。

无论如何回答您的问题,神经模型中还有其他一些随机因素,而不仅仅是权重初始化。 为了处理这些随机性,它的方差也有几种方法。 正如您提到的,其中一些正在多次训练网络,并且使用不同的训练测试集,不同的cross-validation方法以及许多其他方法。 您可以修复随机生成器的初始随机状态,以使每个超参数调整过程在权重上具有相同的“随机性”,但是您可以并且有时应该在训练过程的不同阶段进行操作,即可以使用seed(1234)在进行权重初始化时,但是在获取训练集时,您可以使用seed(555)获得两个集合的相似分布

答案 1 :(得分:0)

我想修复种子,以便您每次都获得相同的随机初始化,并且仅使用超参数。当然,如果您想尝试其他rand实例(例如https://keras.io/initializers/之一),那将是一个超参数。