- Anomaly Detection 설명 – 정의, 특성, 활용 방안, 연구 흐름
- [One Class Classification 방식의 Anomaly Detection]
- [18′ ICML] Deep SVDD : Deep One-Class Classification
- [20′ ICLR] DEEP SEMI-SUPERVISED ANOMALY DETECTION (Deep SAD) 핵심 리뷰
- [20′ ACCV] Patch SVDD : Patch-level SVDD for Anomaly Detection and Segmentation
- [21′ ICLR] EXPLAINABLE DEEP ONE-CLASS CLASSIFICATION (FCDD) 핵심 리뷰
- [Reconstruction 방식의 Anomaly Detection]
- [17′ IPMI] AnoGAN : Unsupervised Anomaly Detection with Generative Adversarial Networks to Guide Marker Discovery
- [18′ ACCV] GANomaly : Semi-Supervised Anomaly Detection via Adversarial Training
- [20′ ECCV] Attention Guided Anomaly Localization in Images (CAVGA) 핵심 리뷰
- [21′ ICCV] Devide and Assemble : Learning Block-wise Memory for Unsupervised Anomaly Detection 핵심 리뷰
- [21′ ICCV] Learning Unsupervised Metaformer for Anomaly detection 핵심 리뷰
- [22′ CVPR] SSPCAB : Self-Supervised Predictive Convolutional Attentive Block for Anomaly Detection 핵심 리뷰
- [Pretrained Feature Matching 방식의 Anomaly Detection]
- [20′ Arxiv] SPADE : Sub-Image Anomaly Detection with Deep Pyramid Correspondences
- [20′ ICPR] Mahalanobis AD : Modeling the Distribution of Normal Data in Pre-Trained Deep Features for Anomaly Detection
- [21′ ICPR] PaDiM : a Patch Distribution Modeling Framework for Anomaly Detection and Localization
- [22′ CVPR] PatchCore : Towards Total Recall in Industrial Anomaly Detection
- [Normalizing Flow 방식의 Anomaly Detection]
- [20′ NIPS] Why Normalizing Flows Fail to Detect Out-of-Distribution Data 핵심 리뷰
- [21′ WACV] Same Same But DifferNet: Semi-Supervised Defect Detection with Normalizing Flows 핵심 리뷰
- [22′ WACV] CFLOW-AD: Real-Time Unsupervised Anomaly Detection with Localization via Conditional Normalizing Flows 핵심 리뷰
- [22′ WACV] Fully Convolutional Cross-Scale-Flows for Image-based Defect Detection (CS-Flow) 핵심 리뷰
- [21′ arxiv] FastFlow: Unsupervised Anomaly Detection and Localization via 2D Normalizing Flows 핵심 리뷰
- [Self Supervised Learning 방식의 Anomaly Detection]
- [18′ NIPS] Deep Anomaly Detection Using Geometric Transformations (GEOM) 핵심 리뷰
- [19′ NIPS] SSL-AD : Using Self-Supervised Learning Can Improve Model Robustness and Uncertainty 핵심 리뷰
- [20′ ICLR] CLASSIFICATION-BASED ANOMALY DETECTION FOR GENERAL DATA (GEOD) 핵심 리뷰
- [20′ NIPS] CSI: Novelty Detection via Contrastive Learning on Distributionally Shifted Instances
- [21′ ICLR] SSL-OCC : Learning and evaluating representations for deep one class classification 핵심 리뷰
- [21′ ICCV] Hierarchical Transformation AD : A Hierarchical Transformation-Discriminating Generative Model for Few Shot Anomaly Detection 핵심 리뷰
- [21′ ICLR] SSD: A UNIFIED FRAMEWORK FOR SELFSUPERVISED OUTLIER DETECTION 핵심 리뷰
- [Knowledge Distillation 방식의 Anomaly Detection]
- [20′ CVPR] Uninformed Students: Student–Teacher Anomaly Detection with Discriminative Latent Embeddings
- [21′ Arxiv] Student Teacher AD : Student-Teacher Feature Pyramid Matching for Unsupervised Anomaly Detection
- [21′ CVPR] Multiresolution Knowledge Distillation for Anomaly Detection
- [22′ CVPR] Reverse Distillation AD : Anomaly Detection via Reverse Distillation from One-Class Embedding
- [Synthetic Anomaly 방식의 Anomaly Detection]
- [21′ ICCV] DRAEM : A discriminatively trained reconstruction embedding for surface anomaly detection
- [21′ CVPR] CutPaste: Self-Supervised Learning for Anomaly Detection and Localization
내용 요약
Knowledge Distillation을 사용하는 Anomaly Detection 방법론을 살펴봅니다. Teacher 네트워크보다 작은 Student 네트워크에 정상 이미지에 대한 지식을 전달하는 방법을 사용합니다. 다양한 데이터셋에 대한 성능 실험을 통해 기존 방법들보다 성능이 좋음을 밝혔습니다.
1. 들어가며
이번 글에서는 2021년 CVPR에 발표된 Multiresolution Knowledge Distillation for Anomaly Detection 논문을 리뷰합니다. Anomaly Detection에 관한 기본적인 내용은 Anomaly Detection에 관한 모든 것 글을 참고해주세요.
본격적으로 들어가기 전, 제목의 의미를 통해 저자들이 강조하고자 한 내용을 유추해 보겠습니다. 제목에서는 크게 두 가지 포인트를 찾을 수 있습니다.
첫 번째는 Knowledge Distillation을 사용하는 Anomaly Detection 방법론이라는 것입니다.
두 번째는 Multiresolution, 즉 Multi Layer Feature를 사용한다는 것입니다. 이를 통해 다양한 Level의 Feature를 Knowledge Distillation 하는 Anomaly Detection 방법임을 유추할 수 있습니다.
본문에서 하나씩 자세한 내용을 살펴보겠습니다.
이번 글의 순서는 다음과 같습니다.
첫 번째로 기존 방법인 Uninformed Students의 한계를 살펴봅니다.
두 번째로 제안 방법에 대해 살펴봅니다. 먼저 큰 그림을 살펴본 뒤 Loss Function과 Anomal Score 측정 방법을 살펴봅니다.
세 번째로 성능 실험을 통해 제안 방법의 효과를 살펴봅니다.
네 번째로 Ablation 실험을 통해 제안 방법의 타당성을 살펴봅니다.
2. 기존 방법의 문제점
이번 논문 전에도 Knowledge Distillation을 사용하는 Anomaly Detection 방법이 존재했습니다. 대표적으로 Uninformed Students를 들 수 있습니다. 하지만 저자들은 Uninformed Students에 세 가지 문제가 있다고 지적합니다.
첫 번째는 동일한 Teacher / Student 네트워크 구조입니다.
위 그림은 Uninformed Students의 Teacher / Student 네트워크 그림입니다. 두 네트워크가 동일한 사이즈로 구성된 모습입니다. 저자들은 Teacher와 Student 네트워크의 사이즈가 동일하여 필요 없는(Redundant) 정보까지 모두 전달되는 문제가 있다고 주장합니다.
이 주장은 이렇게 생각해 볼 수 있습니다. Teacher 네트워크는 보통 ImageNet과 같이 큰 데이터셋을 학습한 모델을 사용합니다. Student 네트워크는 Teacher 네트워크로부터 정상 이미지에 대한 정보를 받아 학습하는데요. 이때 Teacher 네트워크는 강아지, 고양이 등 정상 이미지와 상관없는 지식까지 모두 전달해 주겠죠. 하지만 이러한 정보들은 Anomaly Detection 문제를 풀어야 하는 Student 네트워크 입장에서는 오히려 방해만 됩니다.
두 번째는 Teacher 네트워크로부터 전달되는 정보입니다.
Uninformed Students에서는 Teacher 네트워크로부터 추출한 마지막 Layer의 Feature만을 Student 네트워크에 전달합니다. 이는 Anomaly Detection 문제를 풀어야 하는 Student 네트워크에게는 불리하다는 것이죠.
왜냐하면 Anomaly는 다양한 스케일의 특성을 갖고 있습니다. 따라서 고정된 한 스케일의 정보만을 학습하면 특정 스케일의 Anomaly만 검출할 수 있죠.
세 번째는 학습하기 어렵다는 것입니다.
Uninformed Students는 제목처럼 다수의 Student 네트워크의 앙상블을 사용합니다. 그 말은 다수의 Student 네트워크를 학습해야 한다는 것이죠. 또한 Teacher 네트워크도 ImageNet으로 학습한 모델을 그대로 사용하지 않습니다. ImageNet Patch를 사용하여 추가로 학습해줘야 하죠.
3. 제안 방법
저자들은 이러한 기존 방법의 문제를 개선한 새로운 방법을 제안합니다.
먼저 저자들의 큰 그림을 살펴보고, Loss Function과 Anomal Score 측정 방법 순으로 알아보겠습니다.
3-1. 큰 그림
크게 봤을 때 제안 방법도 이전 방법과 마찬가지로 Teacher-Student 모델의 구조를 하고 있습니다.
Teacher 모델은 정보를 전달해 주는 역할을 합니다. 이를 위해 큰 모델을 사용하며 ImageNet을 학습한 뒤 가중치를 고정합니다.
반면 Student 모델은 ImageNet 같이 큰 데이터셋을 학습하지 않습니다. Anomaly Detection 데이터셋의 정상 이미지만으로 학습할 겁니다. 다만 직접 이미지를 학습하는 것이 아닌 Teacher가 알려주는 대로 학습하는 것이죠. 따라서 Student 모델이 Teacher 모델만큼 용량이 크다면 문제가 생깁니다. Student 모델은 Normal 데이터의 특성만 학습해야 하는데요. Teacher 모델로부터 넘어오는 ‘너무 많은 정보’를 전부 학습해 버리기 때문입니다. 이로 인해 테스트 단계에서 처음 보는 Anomaly에도 Normal과 동일한 Manifold를 형성해 버리는 문제가 발생합니다. 따라서 Student 모델은 Teacher 모델보다 Compact 하게 구성합니다. 이는 이후 실험에서 밝힌 바와 같이 MVTec처럼 Normal과 Anomal의 특성이 매우 유사한 데이터셋에서 더욱 효과를 발휘합니다.
또한 이전 방법과 달리 Teacher 모델의 최종 Output Feature 뿐만 아니라 모든 Intermediate Feature도 Distillation 해줍니다. 딥러닝 모델의 각 Layer는 서로 다른 특성의 정보를 포함합니다. 최종 output 정보만 사용한다는 건 다양한 특성의 정보를 버리겠다는 말이 되는 거죠. 이후 실험에서 증명한 것처럼 이렇게 다양한 layer의 정보를 사용하는 것은 AD 성능에 도움이 됩니다.
3-2. Loss Function
이제 이렇게 나온 Teacher와 Student 모델의 Feature가 서로 같아지도록 학습하기 위한 Loss를 살펴보겠습니다.
첫 번째는 Feature들의 ‘값’이 같아지도록 유도하기 위한 Value Loss입니다.
이를 위해 두 Feature 간의 Euclidean Distance를 Loss로 사용합니다. 거리가 서로 가까워지도록 학습하는 것이죠. 수식으로는 이렇게 표현됩니다.
- as : source model (teacher)의 activation output feacher
- ac : cloner model (student)의 activation output feacher
- CPi : i번째 layer의 critical layer
두 번째는 Feature들의 ‘방향’이 같아지도록 유도하기 위한 Direction Loss입니다.
이를 위해 두 Feature 간의 Cosine Similarity를 Loss로 사용합니다. Feature의 방향이 서로 같아지도록 학습하는 것이죠. 수식으로는 이렇게 표현됩니다.
- vec : feature를 1차원 벡터화해 준다는 뜻
전체 loss는 위의 두 loss를 합하여 구성해 줍니다.
3-3. Anomal Score
다음은 학습이 완료된 후 Anomal Score를 측정하는 방법을 살펴봅니다.
기본 철학은 이렇습니다.
Student(Cloner) 모델은 Normal 데이터에 대해서만 학습했기 때문에 Normal Manifold만 알고 있습니다. 반면 Teacher(Source) 모델은 Imagenet 같은 대형 데이터셋으로 다양한 특성을 학습했죠. 따라서 테스트 단계에서 마주치는 Anomaly들에 대해서도 학습된 어떤 특성으로 인식할 겁니다. 즉 Normal 부분은 Teacher 모델과 Student 모델이 비슷하게 반응하고, Anomal 부분은 두 모델이 다르게 반응할 거라는 거죠. 이를 이용하여 Input x에 대한 Loss의 Gradient로 Anomaly Localization을 측정합니다.
이렇게만 구하면 Noisy 하니깐 Gaussian Blur와 Morphological Filter를 적용해 줍니다. 최종 Anomaly Score로서의 Localization Map은 이렇게 구해집니다.
- g : gaussian filter
- ⊖ : morphological erosion
- ⊕ : morphological dilation
4. 실험 결과
제안 방법의 성능을 확인해 보겠습니다.
4-1. MNIST, fashion MNIST, CIFAR10
먼저 MNIST, fashion MNIST, CIFAR10 데이터셋에 대한 one class novelty detection 성능입니다.
비교해봐야 하는 방법론은 Uninformed Students(U-Std)입니다. MNIST에서는 U-Std 모델의 성능이 더 좋은 모습입니다. 반면 더 복잡한 데이터셋인 f-MNIST와 CIFAR10에서는 제안 방법의 성능이 더 좋은 모습입니다.
4-2. MVTec
다음은 MVTec 데이터셋에 대한 anomaly detection 성능입니다.
Uninformed Students 성능이 안 나와있는데요. Uninformed Students의 mvTec Detection 성능은 85.7 AUROC였습니다. Detection 성능이 조금 개선된 모습입니다.
4-3. Retinal-OCT
다음은 홍채 데이터셋에 대한 anomaly detection 성능입니다.
대부분 Reconstruction 방식의 모델들과 성능을 비교하고 있습니다. 이중에서는 가장 좋은 성능을 보입니다.
4-4. MRI, CT 데이터셋
다음은 MRI, CT 데이터셋에 대한 anomaly detection 성능입니다.
마찬가지로 비교 대상 중에서는 가장 좋은 성능을 보입니다.
5. Ablations
다음은 Ablation을 살펴보겠습니다.
5-1. Intermediate knowledge
먼저 Intermediate Feature 효과에 대한 실험 결과입니다.
위 그림은 사용한 Layer Feature에 따른 성능을 비교한 그래프입니다.
더 다양한 Layer Feature를 사용할수록 성능이 개선되는 모습입니다. 따라서 저자들이 제안하는 Multi Resolution 방법은 효과가 있다고 할 수 있습니다.
5-2. Distillation effect (Compact C)
다음은 Student 모델을 Compact 하게 구성했을 때의 효과에 대한 실험 결과입니다.
위 그림은 Student 모델을 Teacher 모델과 동일하게 구성했을 때와 더 작게 구성했을 때의 성능을 비교한 그래프입니다.
결과를 보면 Student 모델이 Compact 할 때 성능이 좋은 모습입니다. 따라서 저자들이 제안하는 대로 Student 모델을 Teacher 모델보다 작게 구성하는 방법은 효과가 있다고 할 수 있습니다.
5-3. Direction loss, Value loss
다음은 Direction Loss와 Value Loss 효과에 대한 실험 결과입니다.
위 그림은 Loss 구성에 따른 성능을 비교한 그래프입니다.
Direction Loss는 CIFAR10처럼 Interclass Variance가 큰 데이터셋에서 효과적인 모습입니다. 반면 Value Loss는 MVTec처럼 Interclass Variance가 작은 데이터셋에서 효과적입니다. 이 둘의 효과를 같이 누리기 위해 같이 사용했을 때 가장 효과적인 모습입니다. 따라서 저자들이 제안하는 대로 Direction Loss와 Value Loss를 같이 구성하는 방법은 효과가 있다고 할 수 있습니다.
5-4. Localization using interpretability methods
다음은 Localization 방법에 따른 효과 실험입니다.
위 그림은 다양한 Localization 방법에 따른 성능을 비교한 표입니다.
Localization Interpretability 방법에 따라 성능이 조금씩 차이가 나는 모습인데요. Gaussian Filter 이후에는 크게 성능 차이가 없는 모습입니다. 따라서 저자들이 제안하는 Gaussian Filter를 사용하는 Localization 방법은 효과가 있다고 할 수 있습니다.
6. 결론
지금까지 Multiresolution Knowledge Distillation for Anomaly Detection의 주요 내용을 살펴봤습니다.
기존 방법과 달리 더 작은 Student 네트워크에 정상 이미지에 대한 Teacher 네트워크의 지식을 전달하는 방법이었습니다. 이때 다양한 Layer Feature를 사용한 방법이 유용했습니다. 이번 논문은 다양한 데이터셋에 대한 성능 평가를 진행했다는 장점이 있습니다. 하지만 실제로 활용하기에는 성능이 충분하지 않다는 한계가 있습니다.