如何改进 CNN 模型?

Posted

技术标签:

【中文标题】如何改进 CNN 模型?【英文标题】:How to improve CNN model? 【发布时间】:2020-05-24 06:07:50 【问题描述】:

我的问题听起来很抽象,但我想知道人们如何训练 CNN 模型。

这是我的情况。

我一直在玩 CNN 模型,试图将给定的图像分为 3 类。数据集是平衡的。 图像是 (12, 12, 4) 并且是热图编码的时间序列,我认为在这种情况下使用数据增强没有用,因为如果我水平或垂直翻转它可能没有意义,如果我旋转他们等等。

我得到的最好结果是大约 52% 的 acc 来自验证集,大约 38% 来自测试集。

我开始实现一个非常简单的模型,它有 2 个没有池化层的 Conv 层,以避免截断时间序列的特征。 并添加了 Dense 层,一个用于隐藏层,另一个用于输出层。

我已经测试了一些有助于提高其性能的技术,例如 LR 调度程序、更改不同的激活函数和优化器,但没有得到微小的改进。

这是我想问在 CNN 有经验的人。

在我上面提到的这种情况下,你一开始会做什么?调整超参数是一种选择,但你将如何调整它们呢?您将如何选择要调整的参数?

如何选择模型的架构?比如层数,每层的神经元数量,你如何决定使用哪种类型的层?

是否有任何与我的问题相关的博文或论文?

如果有人有建议,我将不胜感激!

【问题讨论】:

【参考方案1】:

最好的建议是查看最先进的技术,看看您是否能找到任何有用的东西。我不认为你会是第一个有这种意见的人。找到至少相似的东西并将其作为基础。

完全靠自己构建架构非常耗时,并且需要大量资源。如果您已经有经验或一些大型 gpu 集群,您可以这样做,否则最好从其他人的经验中学习。

只要去谷歌学者搜索“时间序列”“深度学习”“cnn”等关键字。也许你很幸运,找到了一篇很好的概述论文,它总是对获得一些指导很有帮助。

【讨论】:

感谢您的建议。我将找到论文,其中的训练模型在相似数据上进行挖掘,并将实施适合我的数据的架构和参数。【参考方案2】:

尝试使用已知 CNN 的 VGG16、VGG19、ResNetor 等,然后尝试使用元启发式优化器优化参数。

【讨论】:

以上是关于如何改进 CNN 模型?的主要内容,如果未能解决你的问题,请参考以下文章

如何纠正/改进我的 CNN 模型?如何处理验证准确性冻结问题?

Cnn keras模型没有经过训练的参数表示和改进模型

步态识别基于深度学习的步态识别系统的MATLAB仿真,包括ALEXNET,改进CNN,GOOGLENET

基于区域的CNN(R-CNN)

神经网络模型遇到瓶颈?这些Tricks让你相见恨晚!

如何提高 CNN 模型的验证准确度