Методы, чтобы сделать обнаружение выбросов в распознавании звука?
Существуют модели для распознавания звуков двух классов: класса А и класса В.
Как распознать звуки класса 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
Производительность очень плохая.
что я должен делать?
1 ответ
Есть два способа взглянуть на это: как на проблему классификации, так и на проблему обнаружения выбросов.
классификация
В качестве проблемы классификации можно было бы ввести внешние звуки, которые могут встречаться при применении вашей системы, и использовать их для создания третьего класса. Для этого третьего класса важно иметь большое разнообразие звуков и, возможно, большое их количество.
При этом вы можете использовать чувствительный к стоимости один против всех, поэтому отрегулируйте точность / отзыв для выбора классов A и B.
Преимущество этого метода заключается в том, что вам не нужно устанавливать произвольный порог для модели выброса / аномалии. В этом контексте может быть трудно измерить расстояние, поэтому найти правильный порог может быть сложно.
Многие люди, в том числе и я, использовали эту технику на соревнованиях по борьбе, которая похожа на вашу проблему. https://www.kaggle.com/c/axa-driver-telematics-analysis
Обнаружение выброса / аномалии
Поскольку вы используете нейронную сеть, может быть возможно создать автоэнкодер. Это найдет множество звуков, которые представляют звуки, которые вы пытаетесь обнаружить. Вы можете использовать потерю реконструкции в качестве меры расстояния для обнаружения аномалий. Для этого все равно потребуется определить порог, и для этого полезно использовать некоторые существующие данные аномалий / выбросов.