gpt4 book ai didi

tensorflow - 防止 CNN 卷积层中的过度拟合

转载 作者:行者123 更新时间:2023-12-02 23:06:42 25 4
gpt4 key购买 nike

我正在使用 TensorFlow 为手语应用程序训练卷积神经网络 (CNN)。 CNN 必须对 27 个不同的标签进行分类,因此毫不奇怪,一个主要问题是解决过度拟合。我采取了几个步骤来实现这一目标:

  1. 我收集了大量高质量的训练数据(每个标签超过 5000 个样本)。
  2. 我构建了一个相当复杂的预处理阶段,以帮助最大限度地提高光照条件等事物的不变性。
  3. 我在全连接层上使用了 dropout。
  4. 我正在对全连接参数应用 L2 正则化。
  5. 我进行了广泛的超参数优化(在硬件和时间限制的情况下),以确定可以实现训练数据损失接近 0% 的最简单模型。

不幸的是,即使完成所有这些步骤,我发现我也无法实现比大约 3% 的测试误差更好的结果。 (这并不可怕,但为了使应用程序可行,我需要对其进行大幅改进。)

我怀疑过度拟合的根源在于卷积层,因为我没有采取任何明确的步骤来进行正则化(除了保持层尽可能小)。但根据 TensorFlow 提供的示例,似乎正则化或 dropout 通常不会应用于卷积层。

我在网上找到的唯一明确防止卷积层过度拟合的方法是一种相当新的方法,称为 Stochastic Pooling 。不幸的是,TensorFlow 中似乎还没有实现这一点,至少目前还没有。

简而言之,是否有一种可以在 TensorFlow 中实现的推荐方法来防止卷积层中的过度拟合?或者是否有必要创建一个自定义池运算符来支持随机池方法?

感谢您的指导!

最佳答案

如何对抗过度拟合?

如何改进我的 CNN?

Thoma, Martin. "Analysis and Optimization of Convolutional Neural Network Architectures." arXiv preprint arXiv:1707.09725 (2017).

有关分析技术,请参阅第 2.5 章。正如本章开头所写,您通常可以执行以下操作:

  • (I1) 更改问题定义(例如要区分的类)
  • (I2) 获取更多训练数据
  • (I3) 清理训练数据
  • (I4) 更改预处理(参见附录 B.1)
  • (I5) 扩充训练数据集(参见附录 B.2)
  • (I6) 更改训练设置(参见附录 B.3 至 B.5)
  • (I7) 更改模型(参见附录 B.6 和 B.7)

其他

The CNN has to classify 27 different labels, so unsurprisingly, a major problem has been addressing overfitting.

我不明白这是如何连接的。您可以拥有数百个标签,而不会出现过度拟合的问题。

关于tensorflow - 防止 CNN 卷积层中的过度拟合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36139980/

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