测试集的准确率为何高于训练集的准确率?

本文参考自:https://stackoverflow.com/questions/43979449/higher-validation-accuracy-than-training-accurracy-using-tensorflow-and-kerashtml

      https://www.quora.com/How-can-I-explain-the-fact-that-test-accuracy-is-much-higher-than-train-accuracy网络

            

如上图所示,有时候咱们作训练的时候,会获得测试集的准确率或者验证集的准确率高于训练集的准确率,这是什么缘由形成的呢?通过查阅资料,有如下几点缘由,仅做参考,不对的地方,请你们指正。post

(1)数据集过小的话,若是数据集切分的不均匀,或者说训练集和测试集的分布不均匀,若是模型可以正确捕捉到数据内部的分布模式话,这可能形成训练集的内部方差大于验证集,会形成训练集的偏差更大。这时你要从新切分数据集或者扩充数据集,使其分布同样测试

(2)由Dropout形成,它能基本上确保您的测试准确性最好,优于您的训练准确性。Dropout迫使你的神经网络成为一个很是大的弱分类器集合,这就意味着,一个单独的分类器没有过高的分类准确性,只有当你把他们串在一块儿的时候他们才会变得更强大。spa

  由于在训练期间,Dropout将这些分类器的随机集合切掉,所以,训练准确率将受到影响htm

  在测试期间,Dropout将自动关闭,并容许使用神经网络中的全部弱分类器,所以,测试精度提升。blog

转载于:https://www.cnblogs.com/carlber/p/10892042.htmlget