设计 CNN 的程序

数据挖掘 深度学习 美国有线电视新闻网 图像分类
2021-10-01 17:58:56

有没有设计 CNN 的标准程序?

我编写了一些 Python 代码,用于在 Keras 环境中使用 1D 卷积模型对语音信号进行分类,但我无法达到我期望的准确度。在训练过程中,模型达到了 98% 的 UAR,但在测试过程中,它过拟合并保持在 58%。我使用正则化器和 dropout 以及提前停止技巧来克服过度拟合,但不幸的是,我做不到。有关更多信息,我无法扩充数据库或更改特征向量。

2个回答

我不知道这是否是您正在寻找的,但 Andrej Karpathy 有一篇很好的博客文章,介绍了他的一般训练网络方法:训练神经网络的秘诀

我会把他食谱的要点放在这里,但在实际的博客中有更多实用的建议。

食谱

  1. 与数据合而为一
  2. 建立端到端的训练/评估框架 + 获得哑基线
  3. 过拟合
  4. 正规化
  5. 挤出汁液

我认为最适合您情况的建议来自第 2 步:

在这个阶段,最好选择一些你不可能以某种方式搞砸的简单模型 - 例如线性分类器或非常小的 ConvNet。我们将要对其进行训练、可视化损失、任何其他指标(例如准确性)、模型预测,并在此过程中执行一系列带有明确假设的消融实验。

你通常想从一些简单的东西开始,不会像你一样遇到过拟合的问题。然后,您将逐步进入一个更复杂的模型,该模型可以在第 3 步中过拟合。

有没有设计 CNN 的标准程序?

并不真地。

如果您想要更详细的答案,请查看我的硕士论文:

托马斯,马丁。卷积神经网络架构的分析与优化。” arXiv 预印本 arXiv:1707.09725 (2017)。

尤其是第 3 章(拓扑学习)和第 2.5 章(分析技术)可能会让您感兴趣。