为什么在验证和测试期间禁用丢失?

时间:2017-05-28 03:36:24

标签: neural-network

我已经在多个地方看到你应该在验证和测试阶段禁用丢失,并且只在训练阶段保留它。这有什么理由应该发生吗?我还没能找到一个很好的理由,只是想知道。

我问的一个原因是因为我训练了一个有辍学的模型,结果很好 - 大约80%的准确率。然后,我继续验证模型,但忘记将概率设置为1,模型的准确度降至约70%。这应该是那么激烈吗?它是否像在每个丢失层中将prob设置为1一样简单?

提前致谢!

5 个答案:

答案 0 :(得分:13)

Dropout是一个随机过程,可以在一个层中禁用神经元 p 。这将使某些神经元感到它们是错误的'在每次迭代中 - 基本上,你让神经元感到错误'关于它们的输出,以便它们更少依赖前一层中节点的输出。这是一种正则化方法,可以减少过度拟合。

但是,有两个主要原因你不应该使用dropout来测试数据:

  • 辍学使神经元输出错误'有目的的价值观
  • 因为您随机 禁用神经元,所以您的网络每个(序列)激活都会有不同的输出。这破坏了一致性。

但是,您可能希望阅读更多有关验证/测试的内容:

  

训练集:用于学习的一组示例:拟合分类器的参数在MLP情况下,我们将使用训练集来查找具有反向支柱规则的“最佳”权重

     

验证集:用于调整分类器参数的一组示例在MLP情况下,我们将使用验证集来查找“最佳”隐藏单元数或确定反向传播算法的停止点

     

测试集:一组仅用于评估完全训练的分类器性能的示例在MLP情况下,我们将在选择最终模型(MLP大小和实际权重)后使用该测试来估计错误率)在评估测试集上的最终模型后,您不能再进一步调整模型了!

     

为什么要分开测试和验证集?验证数据的最终模型的错误率估计将是有偏差的(小于真实的错误率),因为验证集用于选择最终模型在评估测试集上的最终模型之后,您不得调整模型任何进一步!

     

来源:模式分析导论,Ricardo Gutierrez-OsunaTexas德克萨斯A& M大学A& M大学answer

因此,即使是验证,如果节点具有被取消激活的随机概率,您将如何确定删除哪些节点?

答案 1 :(得分:2)

Dropout是一种使装袋适用于许多大型神经网络的集合的方法。

enter image description here

沿着同一行,我们可能还记得使用以下错误解释: 对于新数据,我们可以通过取所有学习者的平均结果来预测他们的班级:

enter image description here

由于N是一个常数,我们可以忽略它,并且结果保持不变,因此我们应该在验证和测试期间禁用丢弃。


真正的原因要复杂得多。这是因为权重缩放推断规则:

  

我们可以通过在一个模型中评估p(y | x)来近似p_ {ensemble}:该模型具有所有单位,但是权重超出单位i乘以包含单位i的概率。进行此修改的动机是捕获该单元输出的正确预期值。对于深度非线性网络中的这种近似推理规则的准确性,目前还没有任何理论上的争论,但凭经验,它的表现很好。

当我们使用辍学训练模型时(例如用于一层),我们将某些神经元的某些输出归零,并将其他神经元的输出按1 / keep_prob进行缩放,以使该层的期望值几乎与之前相同。在预测过程中,我们可以使用dropout,但每次只能获得不同的预测,因为我们随机丢弃这些值,然后需要运行多次预测才能获得预期的输出。这样的过程很耗时,因此我们可以删除辍学对象,并且对层的期望保持不变。

参考:
1)Difference between Bagging and Boosting?
2)7.12 of Deep Learning

答案 2 :(得分:2)

最简单的原因可能是在预测(测试,验证或生产部署后)期间您要使用每个学习的神经元的功能,并且真的不喜欢随机跳过其中一些。

那是我们在测试期间将概率设置为1的唯一原因。

答案 3 :(得分:1)

有一种称为 Monte Carlo dropout 的贝叶斯技术,其中在测试期间不会禁用 dropout。该模型将以相同的丢失率(但不同的参数被归零)运行多次,并且将计算结果的平均值(如下所示的第 6 行)和方差(如下所示的第 7 行)以确定不确定性。

这是量化不确定性的Uber's application

enter image description here

答案 4 :(得分:0)

简短答案: 辍学率降低了对训练数据的拟合度。它们用作正则化参数。因此,如果您有很大的差异(例如,查看训练集和验证集准确性之间的差异),则对训练数据使用辍学,因为那样就不足以像以前那样对测试和验证数据应用辍学了。无法确定将要关闭的神经元,因此奠定了可能重要的随机神经元的重要性。