Machine learning 声音识别中的离群点检测方法?

Machine learning 声音识别中的离群点检测方法?,machine-learning,speech-recognition,pattern-recognition,sound-recognition,Machine Learning,Speech Recognition,Pattern Recognition,Sound Recognition,有两种模式可以识别两类声音,即A类和B类 如何将C类声音识别为异常声音 我试图在通过帧进行识别时设置阈值 above 70% -> class A or B else -> abnormal 比如说, 如果一个声音有10帧,结果是 frame 1 2 3 4 5 6 7 8 9 10 A B A B A A A B A A A=7 B=3 -> class A frame 1 2 3 4 5 6 7 8 9 10 B B A B

有两种模式可以识别两类声音,即A类和B类

如何将C类声音识别为异常声音

我试图在通过帧进行识别时设置阈值

above 70% -> class A or B
else      -> abnormal
比如说,

如果一个声音有10帧,结果是

frame 1 2 3 4 5 6 7 8 9 10
      A B A B A A A B A  A     A=7 B=3
-> class A

frame 1 2 3 4 5 6 7 8 9 10
      B B A B A A A B A  A     A=6 B=4
-> abnormal
演出很差


我该怎么办?

有两种方法来看待这个问题:一种是分类问题,另一种是异常值检测问题

分类

作为一个分类问题,可能会引入系统应用程序中可能遇到的外部声音,并使用这些声音创建第三个类。对于第三类来说,拥有大量不同的声音是很重要的,而且可能会有大量的声音

这样,您可能希望使用成本敏感的一对全部,以便调整选择类别A和B的精度/召回率

这种方法的好处是不必为异常值/异常模型设置任意阈值。在这种情况下,距离可能很难测量,因此很难找到合适的阈值

很多人,包括我在内,在卡格尔比赛中使用了这种技术,这与你的问题类似

异常值/异常检测


由于您使用的是神经网络,因此可以构建自动编码器。这将发现多种声音,它们代表您试图检测的声音。您可以使用重建损失作为异常检测的距离度量。这仍然需要您确定一个阈值,最好使用一些现有的异常/离群数据来实现这一点。

有两种方法来看待这一点:一种是分类问题,另一种是离群点检测问题

分类

作为一个分类问题,可能会引入系统应用程序中可能遇到的外部声音,并使用这些声音创建第三个类。对于第三类来说,拥有大量不同的声音是很重要的,而且可能会有大量的声音

这样,您可能希望使用成本敏感的一对全部,以便调整选择类别A和B的精度/召回率

这种方法的好处是不必为异常值/异常模型设置任意阈值。在这种情况下,距离可能很难测量,因此很难找到合适的阈值

很多人,包括我在内,在卡格尔比赛中使用了这种技术,这与你的问题类似

异常值/异常检测


由于您使用的是神经网络,因此可以构建自动编码器。这将发现多种声音,它们代表您试图检测的声音。您可以使用重建损失作为异常检测的距离度量。这仍然需要您确定一个阈值,最好使用一些现有的异常/离群值数据来实现这一点。

对于离群值检测来说,使用二进制分类器的结果可能不是一个好主意。你的二元分类的基本模型是什么?神经网络,Torch7声音A和B是你试图检测的特定事物?你有没有考虑过为带有杂散噪声或通用音频样本的C引入训练示例?你的意思是说该模型经过训练可以识别A、B、C?如果是的话,我已经考虑过了。然而,如果我训练一个N级模型,总有一种声音与这些N级不同。所以,我试着做离群点检测。给你A或B的分类器有信心吗?用二元分类器检测离群点的结果可能不是一个好主意。你的二元分类的基本模型是什么?神经网络,Torch7声音A和B是你试图检测的特定事物?你有没有考虑过为带有杂散噪声或通用音频样本的C引入训练示例?你的意思是说该模型经过训练可以识别A、B、C?如果是的话,我已经考虑过了。然而,如果我训练一个N级模型,总有一种声音与这些N级不同。所以,我试着做离群点检测。给你A或B的分类器有信心吗?