Deep learning 在大容量网络上训练少量数据

Deep learning 在大容量网络上训练少量数据,deep-learning,Deep Learning,目前我正在使用卷积神经网络来解决二进制分类问题。我使用的数据是2D图像,训练数据的数量仅为20000-30000。在深度学习中,一般都知道,如果模型相对于训练数据量过于复杂,可能会出现过度拟合问题。因此,为了防止过度拟合,使用了简化模型或迁移学习 由于训练数据量较小,同一领域的先前开发人员没有使用高容量模型(高容量意味着大量的模型参数)。他们大多使用小容量模型和迁移学习 但是,当我尝试从零开始训练大容量模型(基于ResNet50、InceptionV3、DenseNet101)上的数据时,我在测

目前我正在使用卷积神经网络来解决二进制分类问题。我使用的数据是2D图像,训练数据的数量仅为20000-30000。在深度学习中,一般都知道,如果模型相对于训练数据量过于复杂,可能会出现过度拟合问题。因此,为了防止过度拟合,使用了简化模型或迁移学习

由于训练数据量较小,同一领域的先前开发人员没有使用高容量模型(高容量意味着大量的模型参数)。他们大多使用小容量模型和迁移学习

但是,当我尝试从零开始训练大容量模型(基于ResNet50、InceptionV3、DenseNet101)上的数据时,我在测试集中获得了很高的精确度。 (请注意,训练集和测试集是完全分开的,我使用提前停止来防止过度装配)

在ImageNet图像分类任务中,训练数据约为1000万。因此,我还认为,与模型容量相比,我的训练数据量非常小

这里我有两个问题

1) 尽管我获得了高精度,但有没有理由不在高容量模型上使用少量数据

2) 为什么它表现得很好?即使数据量和模型参数数量之间存在(非常)大的差距,但提前停止等技术也能克服问题?

1)您完全正确,在使用大型模型时,少量的训练数据可能会出现问题。考虑到您的最终目标是实现“高精度”,如果实用的性能令您满意,那么这一理论的限制不应该给您带来太多麻烦。当然,您可能总是做得更好,但如果测试数据的分数是合法的,并且您对此感到满意,那么我认为您的工作流程没有问题

2) 首先,我相信ImageNet由100万张图片组成,这样在数据方面就更接近了。以下是我能想到的一些想法:

  • 您的问题比ImageNet更容易解决
  • 您可以使用图像增强来综合增加图像数据
  • 您的测试数据与培训数据非常相似
另外,不要忘记30000个样本意味着(30000*224*224*3=)45亿个值。这将使一个1000万参数的网络很难简单地记住你的数据

3) 欢迎使用StackOverflow

1)您完全正确,使用大型模型时,少量训练数据可能会出现问题。考虑到您的最终目标是实现“高精度”,如果实用的性能令您满意,那么这一理论的限制不应该给您带来太多麻烦。当然,您可能总是做得更好,但如果测试数据的分数是合法的,并且您对此感到满意,那么我认为您的工作流程没有问题

2) 首先,我相信ImageNet由100万张图片组成,这样在数据方面就更接近了。以下是我能想到的一些想法:

  • 您的问题比ImageNet更容易解决
  • 您可以使用图像增强来综合增加图像数据
  • 您的测试数据与培训数据非常相似
另外,不要忘记30000个样本意味着(30000*224*224*3=)45亿个值。这将使一个1000万参数的网络很难简单地记住你的数据


3) 欢迎来到StackOverflow

非常感谢!你周到的回答对我帮助很大。非常感谢!你深思熟虑的回答对我帮助很大。