背景:最近个人 project 需要做了一个方言的机器学习分类器,目前就两种,输入是视频的音频,模型是最简单的 1dCNN 只有几层,数据量大约有 30 小时,两种方言对半分。在测试集上准确率都在 80%以上,偶尔飙升到 90%多。但实际场景的话,有一种方言被严重多估大概一半。
分析:第一点大概是数据不够,在 CNN 下面加 BatchnNormalization 的话准确率很低,所以或称了 dropout 效果就好很多了。但大概也是如此,因为人工标注的数据太少,导致实际场景准确率没有测试集高,而且都是某一种方言错得特别多,另一种准确率则不错。第二点大概是模型问题,因为我是业余的,所以也懂得不多。第三是提取特征的问题,音频的分析用的是 librosa,提取 mfcc/zero_crossing/tempogram/bandwidth 等特征。我猜更好可能是先要分离背离音,然后再分析比较好。
问题:目前优化怎样会比较好?增加数据量?尝试在分离特征上努力,分离背景音?只选没有背景音的输入数据?优化模型?谢。