有没有设计 CNN 的标准程序?
我编写了一些 Python 代码,用于在 Keras 环境中使用 1D 卷积模型对语音信号进行分类,但我无法达到我期望的准确度。在训练过程中,模型达到了 98% 的 UAR,但在测试过程中,它过拟合并保持在 58%。我使用正则化器和 dropout 以及提前停止技巧来克服过度拟合,但不幸的是,我做不到。有关更多信息,我无法扩充数据库或更改特征向量。
有没有设计 CNN 的标准程序?
我编写了一些 Python 代码,用于在 Keras 环境中使用 1D 卷积模型对语音信号进行分类,但我无法达到我期望的准确度。在训练过程中,模型达到了 98% 的 UAR,但在测试过程中,它过拟合并保持在 58%。我使用正则化器和 dropout 以及提前停止技巧来克服过度拟合,但不幸的是,我做不到。有关更多信息,我无法扩充数据库或更改特征向量。
我不知道这是否是您正在寻找的,但 Andrej Karpathy 有一篇很好的博客文章,介绍了他的一般训练网络方法:训练神经网络的秘诀
我会把他食谱的要点放在这里,但在实际的博客中有更多实用的建议。
我认为最适合您情况的建议来自第 2 步:
在这个阶段,最好选择一些你不可能以某种方式搞砸的简单模型 - 例如线性分类器或非常小的 ConvNet。我们将要对其进行训练、可视化损失、任何其他指标(例如准确性)、模型预测,并在此过程中执行一系列带有明确假设的消融实验。
你通常想从一些简单的东西开始,不会像你一样遇到过拟合的问题。然后,您将逐步进入一个更复杂的模型,该模型可以在第 3 步中过拟合。
有没有设计 CNN 的标准程序?
并不真地。
如果您想要更详细的答案,请查看我的硕士论文:
托马斯,马丁。“卷积神经网络架构的分析与优化。” arXiv 预印本 arXiv:1707.09725 (2017)。
尤其是第 3 章(拓扑学习)和第 2.5 章(分析技术)可能会让您感兴趣。