MemNMF: LPC-спектры и NMF-память для аномальных звуков
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 дБ AUC | 0 дБ AUC | 6 дБ AUC |
|---|---|---|---|
| MemNMF | 84.1 | 91.5 | 95.6 |
| w/o BatchNorm | 77.6 | 87.0 | 94.7 |
| w/o NMF, random init | 67.9 | 79.2 | 83.3 |
| NMF with Bp | 61.8 | 63.1 | 64.3 |
| NMF with NNLS | 78.5 | 87.5 | 94.6 |
Как это читать: фиксированный NMF сам по себе уже полезен, если решать NNLS, но обучаемый lookup лучше, особенно при низком SNR. BatchNorm на logits тоже не косметика: без него при -6 дБ AUC падает на 6.5 пункта.