我目前正致力于在MATLAB中进行语音识别的神经网络,并提取MFCC用于分类目的。目前,每个1秒语音剪辑有500个特征,并且有五个不同的类(即五个不同的单词)
我正在使用两个不同批次的语音片段:一个是我用于训练神经网络的500个文件(以及根据nprtool通常的计算进行的验证/测试)。另一个由250个文件组成,纯粹用于测试目的。这两批都是一次性生成的。
使用第一批,我能够获得接近完美的培训/验证/测试准确度(95-100%)。但是,当我尝试使用第二批(即单独的250个文件)进行测试时,准确度下降到20%。由于有五个类,这最初让我认为神经网络只是随机选择类。然而,看着混淆矩阵,似乎第一类被识别的准确度达到95-100% - 但是其他语音文件被完全错误分类。
我的第一个想法是过度拟合已经以某种方式发生了。我知道nprtool使用MapMiniMax函数进行规范化 - 这是否会破坏神经网络的泛化属性?或者,在我缺少的培训和测试之间是否还有另一个步骤?
提前致谢。