我是否应该将“未知”课程与其他课程分开训练

数据挖掘 机器学习 神经网络 分类 数据集 音频识别
2022-02-23 22:05:39

我有一个分类 10 类音频频谱图的 CNN 模型。但是,由于我使用的是开放数据集,因此我需要将未知音频数据分类为“未知”类。问题是我的未知数据训练样本大于其他已知类。恐怕模型进行随机优化时会出现问题。

我是否应该分离“未知”训练数据并单独训练模型。或者我可以简单地将未知数据与其他类混合并立即训练模型?

2个回答

有几种方法可以做到这一点。例子是:

二元分类器

使用监督学习为已知与未知训练一个单独的二元分类器。已知数据将来自您的数据集,未知数据集是来自不同数据集(如 AudioSet 等)的大量样本

异常检测器

仅使用您的数据集(已知)和无监督学习来训练异常/分布外模型。这应该在你的 CNN 中学习到的表示上完成。您可以使用高斯混合模型(例如来自 scikit-learn)作为异常模型。要验证它是否有效,并设置高斯数、异常阈值等超参数,您应该使用来自另一个数据集(AudioSet 等)的一些样本。

确实存在以牺牲其他类为代价过度学习“未知”类(由于数量较大)的风险,这可能导致错误的“未知”结果。

这主要取决于“未知”数据与“已知”数据的接近程度。

以下是 3 个可能的解决方案: