卷积神经网络过拟合

数据挖掘 机器学习 神经网络 分类 卷积神经网络 正则化
2021-09-17 15:24:02

我构建了一个 CNN 来学习对 EEG 数据进行分类(只有大约 4000 个训练样例,2 个类,50-50 个类平衡)。每个训练样例为 64x512,每个有 5 个通道

我试图使网络尽可能简单/小以进行测试:

  1. 卷积层(4 个过滤器)
  2. 最大池
  3. 辍学 50%
  4. 全连接(50 个神经元)
  5. 辍学 50%
  6. 软最大

我也使用权重衰减(L2 reg,lambda = 0.001)

问题是无论我如何使用过滤器参数(大小、步幅、数量),我的网络都会过度拟合。它 100% 符合训练数据,但无论我做什么,我都无法获得超过 65% 的测试准确率。

为什么这么小的网络会过拟合?我认为这是样本量的问题,但我已经阅读了许多关于 EEG 和 BCI 的研究论文,它们的样本量有时甚至比我还小

还可以做些什么来规范 CNN?

3个回答

这是因为您的数据量很少。如果没有为 CNN 提供足够的数据,它们很可能会过拟合。您可以执行以下操作来克服此问题:

数据增强:这是一种通过对训练示例进行一些预处理(例如旋转、缩放等)从训练示例中创建新示例的技术。

Rigorous Dropout:Dropout 是一种非常强大的控制过拟合的技术。您可以尝试在您的架构中使用更严格的 dropout

你试过提前停止吗?当保留集上的错误开始增加时,保留 20% 的数据并停止训练。如果您无法获得足够高的准确度,请增加模型的大小,直到达到为止。

当您没有足够的数据时,一种可能的解决方案是使用迁移学习。

这有助于您提高模型在测试数据集上的性能。因此,您可以轻松使用技术文献中可用的预训练模型之一,并根据您的数据更新其权重。看看这个视频这是非常有帮助的,你会得到很多关于如何处理你的问题的想法。