增加培训数据并不能减少CNN中的过度拟合

时间:2016-06-29 11:43:18

标签: machine-learning speech-recognition conv-neural-network lasagne audio-analysis

我正在研究CNN分类问题:
使用CNN将音频情绪分为6类(愤怒,厌恶,恐惧,快乐,悲伤,中立)。我正在使用EMODB数据集,输入功能是傅立叶变换[256 * 36]。我的CNN网络有3-4个卷积层,每个转换最大池,加上一个完全连接的层。但是学习曲线显示训练和验证损失之间存在很大差距,表明严重过度拟合。我能得到的最佳验证准确率始终在75%到80%之间。

learning curve这是我得到的学习曲线之一。黑色和蓝色分别是训练准确性和损失。另外两个用于验证准确性和丢失。即使训练损失为0,验证结果也不会改善。

我试图增加我的数据集,向fc层添加50%的丢失,向fc层添加l2正则化,并使用学习率衰减策略(如caffe中的' inv')。但差距仍然存在。

是因为我的数据集太小了吗? 我总共有大约500个音频,并将其扩展到大约6,000个样本。但是当我将数据增加到15,000时,差距仍然很大。 15,000仍然是CNN的一个小数据集吗?

是否因为数据增加过程引入了错误?
我的原始数据集包含大约500个不同长度的音频,范围从1秒到6秒不等。所以我只是随机提取了1.2s的样本。持续时间越长,我得到的样本越多。我现在可以有超过15,000个样本用于培训。我认为,对于长时间的音频,1.2s的样本将丢失太多信息,并且可能无法表示相应情绪的特征。但这是我能提出的最佳方法,因为出于某种原因我无法使用RNN或HMM来处理数据。

我的功能计算是否可能出错? (即使我已多次检查) 我也尝试了MFSC功能[120 * 40],但这两个功能集有类似的过度拟合问题。

或者是因为我的网络不够好? 我认为更复杂的网络会引入更多过度拟合......但简单的网络并没有表现出良好的性能。

尽管我列出了过度拟合的许多原因,但我无法弄清楚哪些是影响性能的真正因素。有没有办法知道哪个部分出了问题?或者任何减少过度拟合的建议?

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以尝试在CNN中添加一些“辍学”图层,看看它是否可以减少过度拟合。 - Venkat