2017-05-09 44 views
2

我在caffe中有一个完全卷积网络(特别是堆叠式沙漏网络)。在每个卷积层之后,我有一个批量规范化和一个缩放层以及一个ReLU层。但是,我遇到了过度配合的问题。通常,我会增加我的数据集(这是不可能的),或者我会使用Dropout图层,但是由于我已经读过在完全卷积网络中使用Dropout层没有用,所以我不知道如何解决这个问题。除了我所提到的之外,还有什么可以做的吗?在这种情况下,可能会有所帮助?如何解决caffe中完全卷积网络的过拟合

+1

试图增加与增强功能的数据集(裁剪,翻转,翻转,缩放,平移,旋转等) –

回答

3

这是我从互联网上偷走的方便图片。当您的深度学习模式出现问题时,这是一个方便的图表。你说你听说过辍学在Conv里不好,但你有没有测试过它?开始与正是如此进行:

  1. 于CONV层添加辍学的大深度尺寸接近于输出
  2. 尝试不会深。这是深入的反向,您应该在深入之前尝试。确保你有一个简单的模型,不会第一个,然后尝试添加图层。
  3. 如果您仍然过度使用,并且您有退出,请尝试通过让您的后续Conv图层没有尽可能多的深度来移除神经元
  4. 做什么Z.Kal说,通过变换你的数据集。
  5. 如果所有这些都没有影响,请接受这样的事实,即您的架构可能是错误的。您已经深入了解它的一种方式,它可以逐字存储所有您输入的数据,而不会对其进行概括。考虑制作一个挤压点,其中您有一个与输入数据相比较小的图层。

enter image description here

+0

哼我的网络是非常深刻的,我现在用的stacked-沙漏网络。我有一个简单的数据集,它由10.000个数据样本组成,这些数据样本在过度拟合时可以很好地工作。然后我有一个800.000数据样本的数据集,它根本不会收敛。我试图将800.000个样本的数据集简化为5.000个样本,然后它也收敛,但它过于合适。你对此有何看法? – thigi

+0

这很有趣,并会提示我质疑80万套并做一些探索!我对文本分析进行了很多工作,并且发现了标签数据的大量子集,所以我必须严格错误标记,所以我不得不探索数据以识别这些区域并将其排除在外。幸运的是,我有关于文本的元数据(如标记为数据和团队),您可能没有关于图像的信息。所以,如果没有那种信息,我会把800,000分成80个批次的10,000个,看看会发生什么。我也会尝试从10,000模型开始,并在小批次上重新训练 – Wontonimo

+0

至于过度拟合,您可能在网络末端有一个完全连接的层。尝试增加50%,并增加50%的辍学率。在我常见到的Conv图层中辍学20%(.8)。我会对你的小批量大小感兴趣,请分享。就个人而言,我发现在大多数情况下,小到5的小批量克服了SGD的大多数问题,批量大于100的计算成本很高,没有任何好处,所以我倾向于从20开始。如果您使用的批量非常大大小,那么它会花太长的时间才能看到结果。 – Wontonimo