我建立了一个CNN来学习分类脑电图数据(只有大约4000个训练例子,2个班,50-50级平衡)。每个培训示例为64x512,每个通道有5个。
我试图使网络尽可能简单/小,以便进行测试:
Im也使用重量衰减(L2 reg,lambda = 0.001)
问题是,无论我如何处理过滤参数(大小、步幅、数字),我的网络总是过于合适。它符合100%的训练数据,但无论我做什么,我都不能获得超过65%的测试准确性。
为什么这么小的网络太合适了?我认为这是一个样本大小问题,但我读过许多关于EEG和BCI的研究论文,它们的样本数量有时比我还要小。
还能做些什么使CNN正规化?
发布于 2016-12-06 09:44:01
这是因为你只有很少的数据。如果没有向CNN提供足够的数据,这些数据很可能会过高。为了克服这个问题,您可以做以下事情:
数据增强:通过对训练实例进行预处理,如旋转、缩放等,从训练实例中生成新的示例。
严格的退出:辍学是一种非常强大的技术来控制过度。您可以尝试在架构中使用更严格的下拉列表。
发布于 2017-01-05 18:54:07
你试过早停吗?保留20%的数据,当延迟集上的错误开始增加时,停止训练。如果你不能获得足够高的精度,增加你的模型的大小,直到你做到。
发布于 2020-05-27 00:22:17
当您没有足够的数据时,一个可能的解决方案是使用传输学习。
这有助于提高模型在测试数据集上的性能。因此,您可以很容易地使用技术文献中可用的预培训模型之一,并根据您的数据更新其权重。看看这段视频。这是非常有帮助的,你得到了很多如何处理你的问题的想法。
https://datascience.stackexchange.com/questions/15535
复制相似问题