- 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 Transformation을 맞추는 Self Supervised Learning 방식을 사용한 Anomaly Detection 방법론을 소개합니다. Score로는 Dirichlet normality score를 사용합니다.
1. 들어가며
이번 글에서는 2018년 NIPS에 발표된 Deep Anomaly Detection Using Geometric Transformations 논문을 리뷰합니다. 이 논문은 GEOM이라고 불리며, 이번 글에서도 GEOM이라고 지칭하겠습니다. Anomaly Detection에 관한 기본적인 내용은 Anomaly Detection에 관한 모든 것 글을 참고해주세요.
2. 제안 방법
바로 제안 방법을 살펴보겠습니다.
2-1. 큰 그림
먼저 저자들의 큰 그림을 같이 살펴보겠습니다.
GEOM은 Normal Data의 Image Transformation을 맞추는 Classifier를 학습합니다. 이렇게 Image Transformation을 맞추기 위해 학습하는 과정에서 Normal Data의 공통된 핵심 Feature를 학습하겠죠. 학습이 잘 된다면, Test Normal Data에 대해서는 어떠한 Transformation을 했는지 잘 맞출것이고, 반대로 Anomal Data에 대해서는 잘 못 맞출 겁니다. 따라서 Softmax의 값이 크면 Normal, 낮으면 Anomal로 판단할 수 있을 겁니다.
2-2. Creating and learning the self-labeled dataset
이제 첫 번째 단계인 Self Labeled Dataset을 제작하는 부분부터 살펴보겠습니다.
Image Transformation을 맞추는 Classifier를 학습시키기 위해 Normal Image 한 장당 k개의 Transformation을 수행한 뒤 Transformation Label과 같이 Self-Labeled Dataset을 제작해줍니다.
2-3. Dirichlet normality score
다음은 Test단계를 살펴보겠습니다.
학습 단계에서 수행했던 k개의 rTansformation을 Test Image에게 동일하게 수행합니다. 이렇게 생성된 k개의 이미지에 대해 각각 네트워크를 통해 나온 Softmax의 출력값을 구합니다. 이때 Normal 데이터라면 Softmax가 정답 클래스에서 크게 나올 것이고, Anomal 데이터라면 균등하게 나올 것입니다. 따라서 Dirichlet Normality Score를 사용하여 Normal 정도를 측정합니다. 수식은 다음과 같습니다.
이때의 y는 Softmax값입니다.
실제 테스트에서는 다음과 같은 Simplified Version을 사용합니다.
3. 실험 결과
다음은 이렇게 제안한 방법의 실험 결과를 살펴보겠습니다.
3-1. CIFAR10 & CIFAR100 & Fasion-MNIST Anomaly Detection 테스트
먼저 CIFAR10, CIFAR100, Fashion-MNIST에 대한 Anomaly Deteciton 테스트 결과입니다.
비교 방법론들은 다음과 같습니다.
- OC-SVM : One Class Deep SVDD
- DAGMM : Deep Autoencoding Gaussian Mixture Model
- DSEBM : Deep Structured Energy Based Model
- AD-GAN : GAN based model
결과를 보면 비교 방법들중 가장 성능이 좋은 모습을 볼 수 있습니다.
이렇게 성능이 좋은 이유에 대한 저자들의 생각을 살펴보겠습니다.
위의 그림은 MNIST 데이터셋의 3을 GEOM방식으로 학습한 뒤, 각각 0과 3을 넣고 gradient ascent하여 optimized 된 이미지를 출력한것입니다.
왼쪽을 보면 input으로 들어간 0이 3 모양으로 변하여 출력된 모습입니다.
반면 오른쪽은 input으로 들어간 3이 거의 모양이 변하지 않은채 출력된 모습입니다.
따라서 저자들은 transformation을 맞추도록 학습하는 과정에서 네트워크가 normal data의 특성을 학습한 것이라고 해석합니다. 또한 이때 transformation으로는 flip, translation, rotation 등과 같은 geometric transformation만 사용해야 하며, noise 같은 non-geometric transformation을 사용하면 더 성능이 떨어진다고 말합니다.