python-3.x - 卷积神经网络中的过拟合问题及决定卷积层和dence层的参数
问题描述
我应用批量归一化技术来提高我的 cnn 模型的准确性。没有批量归一化的模型的准确性仅为 46%,但在应用批量归一化后,它超过了 83%,但是这里出现了一个 bif 过拟合问题,该模型只给出了验证准确性15%。另外请告诉我如何确定卷积层中的过滤器步幅和 dence 层中的单元数
解决方案
批量标准化已被证明在许多情况下都有帮助,但并不总是最佳的。我发现这取决于它在您的模型架构中的位置以及您想要实现的目标。我对不同的 GAN CNN 做了很多工作,发现通常不需要 BN,甚至会降低性能。它的目的是帮助模型更快地泛化,但有时会增加训练时间。如果我想复制图像,我会完全跳过 BN。我不明白你在准确性方面的意思。你的意思是说它在训练数据上达到了 83% 的准确率,但在验证数据上却下降到了 15% 的准确率?没有 BN 的验证准确度是多少?一般来说,验证准确度是更重要的指标。如果你的训练准确率很高,而验证准确率很低,那你确实是过拟合了。如果您有多个卷积层,您可能希望在每个卷积层之后应用 BN。如果您仍然过拟合,请尝试增加您的步幅和内核大小。如果这不起作用,您可能需要再次查看数据并确保您有足够的数据并且它有些多样化。假设您正在处理图像数据,您是否在创建样本以旋转图像、裁剪图像等。考虑使用合成数据来增强真实数据以帮助对抗过度拟合。
推荐阅读
- java - 我在没有“catch”、“finally”或资源声明的情况下遇到错误,我该如何在下面的代码中解决这个问题
- rust - 是否可以仅使用“macro_rules!”来实现这个宏?
- random - 选择随机枚举值的简单且安全的方法是什么?
- arrays - 如何在C中返回指向结构数组的指针
- swift - 如何将结构数组转换为列表领域?
- javascript - 将项目添加到特定的列表数组 redux
- python - 将模型连接到边界框
- node.js - 如何在 nativescript 中替换 http、node-fetch 和 dns?
- java - android studio中的两个自动完成依赖textview
- java - ObservableList.sublist 和 ListChangeListener