gpt4 book ai didi

deep-learning - 如何使用深度神经网络提高验证准确性?

转载 作者:行者123 更新时间:2023-12-04 04:46:04 26 4
gpt4 key购买 nike

我正在尝试构建一个具有 13000 个训练图像和 3000 个验证图像的 11 类图像分类器。我正在使用正在使用 mxnet 进行训练的深度神经网络。训练准确率正在提高并达到 80% 以上,但验证准确率在 54-57% 的范围内并且没有增加。
这里有什么问题?我应该增加图像的数量吗?

最佳答案

这里的问题是您的网络在某个时候停止学习有用的一般特征并开始适应您的训练集的特性(结果过度拟合)。您想“强制”您的网络不断学习有用的功能,而您在这里几乎没有选择:

  • 使用权重正则化 .它试图保持较低的权重,这通常会导致更好的泛化。尝试不同的正则化系数。尝试 0.1、0.01、0.001,看看它们对准确性有什么影响。
  • 损坏您的输入 (例如,用黑色或白色随机替换一些像素)。通过这种方式,您可以从输入中删除信息并“强制”网络获取重要的一般特征。试验噪声系数,以确定应该损坏多少输入。研究表明,15% - 45% 范围内的任何东西都可以很好地工作。
  • 扩展您的训练集 .由于您正在处理图像,因此您可以通过旋转/缩放等现有图像(如建议的那样)来扩展您的集合。您还可以尝试预处理您的图像(例如,将它们映射到黑白、灰度等,但此技术的有效性将取决于您的确切图像和类别)
  • 使用去噪标准预训练您的图层 .在这里,您可以在微调整个网络之前分别预训练网络的每一层。预训练“强制”层选取对重建输入信号有用的重要一般特征。例如,查看自动编码器(它们过去已应用于图像分类)。
  • 网络架构实验 .您的网络可能没有足够的学习能力。尝试不同的神经元类型、层数和隐藏神经元数。确保尝试压缩架构(神经元少于输入)和稀疏架构(神经元多于输入)。

  • 不幸的是,泛化良好的训练网络的过程涉及大量的实验和参数空间的几乎蛮力探索以及一些人工监督(你会看到许多研究工作采用这种方法)。最好为每个参数尝试 3-5 个值,看看它是否会引导您到达某个地方。

    当您试验绘图准确度/成本/f1 作为迭代次数的函数并查看其行为时。通常,您会注意到测试集的准确度达到峰值,然后持续下降。因此,除了良好的架构、正则化、损坏等,您还需要大量迭代以产生最佳结果。

    还有一个提示:确保每个训练时期随机化图像的顺序。

    关于deep-learning - 如何使用深度神经网络提高验证准确性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37020754/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com