我有一个CNN模型,分类了10类音频谱图。但是,由于我使用的是开放的数据集,所以需要将未知的音频数据归类为“未知”类。问题是我的训练样本中的未知数据比其他已知的类要大。当模型进行随机优化时,恐怕会出现问题。
我应该把“未知”的训练数据分开,然后单独训练模型。或者我可以简单地将未知数据混合到其他类中,然后立即训练模型?
发布于 2021-07-05 12:53:06
有几种方法可以做到这一点。例子如下:
使用监督学习为已知的和未知的训练一个单独的二进制分类器。已知数据将来自您的数据集,而未知数据集是来自不同数据集(如AudioSet et.c )的大量样本。
只使用你的数据集(已知的)和无监督的学习,训练一个异常/分布外的模型.这应该是在你的CNN的学习代表。您可以使用高斯混合模型(例如,来自scikit-learn)作为异常模型。要验证它是否有效,并设置诸如高斯数、异常阈值等超参数,您应该使用来自另一个数据集的几个样本(AudioSet等)。
发布于 2021-06-28 09:44:49
事实上,以牺牲其他类为代价,过度学习“未知”类(由于数量较大)确实存在风险,这可能导致错误的“未知”结果。
这主要取决于“未知”数据与“已知”数据的距离。
以下是三个潜在的解决方案:
https://datascience.stackexchange.com/questions/97186
复制相似问题