異常音検知:ノイズに対するロバスト性の検証(CNN・AutoEncoder)
「ToyADMOS:異常音検知」手法比較:CNN と AutoEncoderと教師なし学習による異常音検知~AutoEncoder色々~続きです。
背景
これまでノイズの無いクリアな信号で検証していました。しかし、実環境では周囲から生ずるノイズの影響を無視できません。そのため、ノイズ重畳信号に対する異常検知能力が重要になります。今回は、CNNとAutoEncoderについて、ノイズ重畳信号の正常・異常分類性能を比較します。
目的
CNN(教師あり学習)とAutoEncoder(教師なし学習)について、ノイズ重畳信号を用いて学習・推論を行い正常・異常分類性能を比較します。
結論
・AutoEncoder(教師なし学習)のロバスト性は低い
・CNN(教師あり学習)のロバスト性は高い
・AutoEncoderの性能はノイズ無しに比べ50%以上低下
・ノイズの濾過や異常信号の周波数帯域切り出しなどが必要
・CNNの性能はノイズ無しに比べ10~20%程度の低下
・ノイズ環境下ではCNNは使えそう
f1-score(ノイズ重畳信号)
CNN>>>> Deep-Ae > 1D-AE > Conv-AE
使用データ
・データの概要
・データセット:ToyADAMOS
・ノイズ重畳信号:
下記図のCH1~4とノイズ信号を合成
サンプリング周波数:16[kHz]
・信号の比較(ノイズの有無)
ノイズ無し(CH1)とノイズ重畳信号を比較します。ノイズ重畳信号の振幅は、ノイズ無し(CH1)に比べて比較的大きく、元信号がノイズに埋もれています。
入力信号前処理
・1D AEの信号前処理
ノイズ重畳信号にハニングウインドウを掛けてFFTで周波数領域(dB)に変換後、正規化します。
・2D AE / CNN信号前処理
ノイズ重畳信号をSTFT変換した後に、画像サイズを[256, 256]へと縮小します。目的は、AE内でのResize処理の影響を低減するためです。
検証モデル
下記、4種類の方法を用います。
教師なし学習(3種)
閾値は、ROCカーブより算出しました。
教師あり学習(1種)
・CNN
結果・考察
学習・推論をノイズ重畳信号で行い、前回のノイズ無し(CH1)の結果と比較します。
・f1-score/recall/Precision比較
CarとConveyorの各caseのスコアを平均して傾向を確認します。
Car:4種の平均(case1, case2, case3, case4)
Conveyor:3種の平均(case1, case2, case3)
f1-score(ノイズ重畳信号)
CNN>>>> Deep-Ae > 1D-AE > Conv-AE
CNNの分類性能は、ノイズの影響を受けにくいことが分かりました。ノイズ重畳によるf1-scoreの低下はノイズ無しに比べ10~20%と比較的小さいです。教師あり学習の強みが十分活かされています。
一方、AutoEncoderの分類性能はノイズの影響で大きく低下します。ノイズ重畳により、f1-scoreがノイズ無しに比べ50%以上低下するケースも見られます。Precisionが大幅に低下している事から、正常信号の誤判定率が大幅に上昇しており、狼少年状態です。
・AUCスコア
AutoEncoderのAUCスコアをノイズの有無で確認します。モデルによらず、ノイズ重畳信号ではAUCスコアが低下しており、正常・異常音の切り分けが難しくなっています。
これは、AutoEncoderがノイズフィルタのように働くためだと考えられます。再構成時には正常信号の特徴が復元されるため、再構成誤差にノイズと異常音が含まれます。ノイズのパワーが異常音のパワーと同等もしくは大きい場合、異常音がノイズに埋もれてしまい、正常・異常音を正しく分類できない要因になると思われます。ノイズの濾過や異常信号の周波数帯域切り出しなどが必要になりそうです。
今後
教師なし学習でノイズ環境下での性能を高める手法を検証していきます。また、ToyADAMOS2データセットの検証も行いたいと思います。
参考文献
[1] Koizumi, Yuma, et al. “ToyADMOS: A Dataset of Miniature-Machine Operating Sounds for Anomalous Sound Detection.” arXiv preprint arXiv:1908.03299 (2019).