- 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
내용 요약
Normal Image에 대해 k개의 Transformation Image Feature가 각각의 Center에 모이도록 학습하는 Anomaly Detection 방법론을 제안합니다. 이때 Center Triplet Loss를 사용합니다.
1. 들어가며
이번 글에서는 2020년 ICLR에 발표된 CLASSIFICATION-BASED ANOMALY DETECTION FOR GENERAL DATA 논문을 리뷰합니다. 이 논문은 GEOD라고 불리며, 이번 글에서도 GEOD라고 지칭하겠습니다. Anomaly Detection에 관한 기본적인 내용은 Anomaly Detection에 관한 모든 것 글을 참고해주세요.
2. 제안 방법
바로 제안 방법을 살펴보겠습니다.
2-1. 큰 그림
먼저 저자들의 큰 그림을 살펴보겠습니다.
우선 N개의 normal image data에 대해 k개의 transformation을 수행하여 k개의 image를 만들어냅니다. 이렇게 생성된 N*k개의 이미지에 대해 네트워크를 통과한 feature들이 각 transformation 별 center로 모이도록 학습합니다. 즉 k개의 center가 존재하고 각 center에는 N개의 feature들이 모이도록 학습합니다. 이렇게 학습이 완료되면 test 이미지에 대해서도 마찬가지로 동일한 k개의 transformation을 수행합니다.
이제 k개의 이미지가 네트워크를 통과해 나온 k개의 feature들은 normal image였다면 각 transformation center에 가깝게 분포할 것이고, unnormal image였다면 멀게 분포할 것입니다. 따라서 center와의 거리가 멀수록 unnormal로 판단할 수 있습니다.
2-2. Train process
이제 train process를 살펴보겠습니다.
위에서 설명한 대로 N개의 normal image에 대해 각각 k개의 transformation을 수행하여 N*k개의 train image dataset을 만듭니다. 이제 각각의 image는 transformation별로 나뉘어 k개의 center에 모이도록 학습합니다. 이때 학습 loss로는 center triplet loss를 사용합니다.
2-3. Test process
Test단계를 살펴보겠습니다.
학습 단계와 마찬가지로 이미지마다 동일한 k개의 transformation을 수행합니다. Test 이미지가 normal이었다면 네트워크를 통해 나온 k개의 feature는 학습 때와 마찬가지로 각각의 center를 잘 찾아갔을 것이고, 반대로 unnormal이었다면 잘 찾아가지 못해 center로부터 멀리 떨어져 분포할 것입니다. 따라서 각 transformation의 center로부터의 거리를 anomal score로 사용합니다.
이때의 P는 다음과 같습니다.
3. 실험 결과
다음은 이렇게 제안한 방법의 실험 결과를 살펴보겠습니다.
3-1. CIFAR10
먼저 CIFAR10 데이터셋의 Anomaly Detection 결과입니다.
비교 방법론은 다음과 같습니다.
- Deep SVDD : normal data가 center에 모이도록 hypersphere를 학습한 뒤 center와의 거리를 anomal score로 활용
- GEOM : k개의 transformation을 맞추는 classifier를 학습한 뒤 softmax값을 normality score로 활용
결과를 보면 가장 좋은 성능을 보입니다.
3-2. Fashion-MNIST
다음은 Fashion-MNIST 데이터셋의 Anomaly Detection 결과입니다.
비교 방법론은 다음과 같습니다.
- Deep SVDD : normal data가 center에 모이도록 hypersphere를 학습한 뒤 center와의 거리를 anomal score로 활용
- GEOM : k개의 transformation을 맞추는 classifier를 학습한 뒤 softmax값을 normality score로 활용
결과를 보면 가장 좋은 성능을 보입니다.