使用带噪声的数据增强来实现更高的过拟合?

机器算法验证 分类 神经网络 数据集 过拟合
2022-03-01 23:54:18

我正在训练一个用于音频分类的神经网络。

我在 UrbanSound8K 数据集(Model1)上对其进行了训练,然后我想评估输入中添加的不同级别的噪声如何影响预测准确性。基线准确度 Model1 = 65%

正如预期的那样,较高的噪声水平会导致较低的准确性。

然后,我决定使用噪声(Model2)执行数据增强。因此,我获取了数据集,并使用相同的文件复制了它,但向它们添加了粉红噪声 (+0 dB SNR)。

正如我所预料的那样,整体准确度提高了(虽然很小,0.5%),并且网络对输入的噪声损坏变得更加健壮。

然而!我没想到的一件事是,现在网络在仅预测未损坏的噪声输入(验证输入)时降低了其准确性。不知何故,它过度拟合了干净的输入,从而降低了这些音频的预测准确性。

因此,在数字上,Model2 对噪声输入的预测准确率为 69%(不一定与训练的噪声相同),对干净输入的预测准确率为47%

这个结果有什么解释或直觉吗?

我期待网络现在拥有越来越多的不同训练数据,能够学习更多有意义的特征。我想过度拟合嘈杂的输入更困难,但我仍然不明白为什么它主要过度拟合到干净的输入。

- - - - - - - - - - - - - - - - - - - - - - - - - 编辑1 ------------------------------------------------- ---------------

另一条可能有用的信息:

即使在噪声很小的噪声输入上评估 Model2 时,网络仍然比仅在干净的输入上表现得更好(这与我们耳朵的噪声很小的输入非常相似)

1个回答

您将模型拟合到无错误的输入特征。然后,您在相同的数据中添加了一些错误(噪声)并再次拟合模型。您观察到对噪声输入(有错误的输入)的预测比对无噪声输入(没有错误的输入)的预测更差。您期望该模型在无噪声输入上与之前的模型一样好,并且在噪声输入上更好。

您没有添加更多训练数据,您只是复制了带有噪声的相同数据。直观地说,在所有无噪声输入上训练的模型将比在所有噪声数据上训练的模型在输入也无噪声时具有更准确的预测。同样,我的直觉是,在从噪声输入进行预测时,使用所有噪声数据训练的模型将比使用所有无噪声数据训练的模型更准确。如果您有一些无噪声数据和噪声数据的混合,那么我的直觉是,与仅使用无噪声数据训练的模型相比,您对噪声数据的预测会更好,并且对无噪声数据的预测比仅使用噪声数据训练的模型更好。这似乎与您观察到的一致。

编辑:

基本上,当我们将数据中的噪声误认为是信号时,就会发生过拟合。我在无用信息或仅针对训练数据的信息的概念意义上使用术语噪声。如果发生这种情况,模型可以很好地拟合训练数据,但不能很好地泛化。想象一下我们有点,模型对所有点进行插值。如果这些点是嘈杂的,那么这种行为是不可取的。我对数据增强的基本了解是它减少了过度拟合,因为当我们向训练数据添加噪声时,我们拟合的模型将倾向于平衡这些附近点之间的误差,以最小化整体误差。该模型在平均意义上更好,因为它在预测有噪声和无噪声数据时误差较小。它将更好地泛化到可能与训练数据略有不同的数据。然而,