LPC NMF Anomaly detection
Аудио DSP

MemNMF: LPC-спектры и NMF-память для аномальных звуков

AUC 90.6%

MemNMF относится не к речи напрямую, а к промышленным звукам, но для речевых и аудиоинженеров она интересна как аккуратный пример возвращения классических признаков в нейросетевой контур. Авторы утверждают, что log-mel spectrogram autoencoder слишком легко цепляется за локальные частотно-временные детали и шум, поэтому для обнаружения аномалий лучше работать с LPC-спектром - компактной оценкой спектральной огибающей. Поверх этого они строят память из NMF-словаря нормальных звуков.

Метод начинается с NMF на LPC-спектрах нормальных записей: получается словарь B и анализатор Bp. Дальше MemNMF не решает NNLS для каждого тестового примера, а обучает memory lookup: key задается через BpPK, value через B^T PV, logits нормализуются BatchNorm и проходят Softmax. Обучаются только проекции PK, PV и параметры BatchNorm, а NMF-якорь остается фиксированным. Anomaly score получается из ошибки восстановления LPC-спектра через память нормальных прототипов.

На DCASE2020 Task 2 sec-dev простая замена log-mel на LPC почти не меняет средний AUC у autoencoder, 74.2 -> 75.6, но MemNMF поднимает его до 81.7. Особенно хорошо метод ведет себя на Slider и Valve: для Valve AUC растет с 66.3 у log-mel AE до 97.6 у MemNMF. На полном MIMII при трех уровнях SNR модель с 768 компонентами дает 90.6% average AUC по типам машин и шумам, против 77.2% у GRLNet. При -6 дБ MemNMF держит 92.0 AUC для Valve и 94.1 для Slider, тогда как GRLNet дает 53.4 и 75.0 соответственно.

Ограничения хорошо видны в самой статье. Toy-conveyor ухудшается при переходе к LPC: log-mel AE дает 73.4 AUC, MemNMF - 62.3, потому что сглаженная LPC-огибающая может стереть локальные признаки аномалии. Это машинные звуки, не речь, и обучение идет per-section только на нормальных данных. Поэтому вывод не в том, что LPC всегда лучше спектрограмм, а в том, что для некоторых нестационарных шумных задач полезно отделять спектральную огибающую от детальной частотно-временной текстуры.

Фишка из статьи. Сильная ablation показывает, что выигрыш дает именно связка NMF-якоря и обучаемой памяти; случайная инициализация памяти почти возвращает систему к слабым baselines.

Метод-6 дБ AUC0 дБ AUC6 дБ AUC
MemNMF84.191.595.6
w/o BatchNorm77.687.094.7
w/o NMF, random init67.979.283.3
NMF with Bp61.863.164.3
NMF with NNLS78.587.594.6

Как это читать: фиксированный NMF сам по себе уже полезен, если решать NNLS, но обучаемый lookup лучше, особенно при низком SNR. BatchNorm на logits тоже не косметика: без него при -6 дБ AUC падает на 6.5 пункта.

Оригинальная статья на arXiv