- 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
내용 요약
Self Supervised Learning과 단순한 Classifier를 결합한 Anomaly Detection 방법을 설명합니다. 기존 Contrastive Learning을 Anomaly Detection에 맞게 변형한 Distribution Augmentation Contrastive Learning 방법을 제안합니다.
1. 들어가며
이번 글에서는 2021년 ICLR에 발표된 Learning and evaluating representations for deep one class classification 논문을 리뷰합니다. 이 논문은 Self Supervised Learning을 사용한 One Class Classification이라는 의미로 SSL-OCC라고 부르겠습니다. Anomaly Detection에 관한 기본적인 내용은 Anomaly Detection에 관한 모든 것 글을 참고해주세요.
2. 제안 방법
바로 제안한 방법을 살펴보겠습니다.
저자들은 위의 그림과 같이 Self Supervised Representation Learning 을 위한 단계와 One Class Classifier를 위한 단계를 나눠 2단계 학습 방법을 제안합니다.
2-1. Self Supervised Learning 구성
먼저 첫 번째 단계인 Self Supervised Learning 부분을 살펴보겠습니다.
2-1-1. Augmentation Prediction
먼저 Rotation Prediction 같은 Augmentation을 맞추도록 학습합니다. 이는 비슷한 철학을 갖고 있는 이전 방법들인 GEOM, GEOD 등에서 사용한 방법과 동일합니다.
2-1-2. Contrastive Learning
저자들은 기존의 Contrastive Learning의 문제점을 제기합니다. 바로 같은 클래스임에도 다른 Instance라면 멀어지도록 학습된다는 점입니다. 이 때문에 Normal Feature들이 모든 공간에 골고루 분포하게 되어 구분이 어렵다는 문제가 있습니다.
이를 위한 해결 방법으로 먼저 Moderate Batch Size를 사용할 것을 제안합니다. Batch Size가 너무 크면 다양한 이미지가 존재하겠죠. 따라서 동일한 클래스임에도 밀어내야 하는 이미지가 많아지게 됩니다. 따라서 Batch Size를 줄였다는 의미입니다.
두 번째는 아래에서 제안하는 Distribution Augmentation 방식입니다. 아래에서 자세히 살펴보겠습니다.
2-1-3. One Class Contrastive Learning
저자들은 위의 문제점들을 해결하기 위한 Distribution-Augmented Contrastive Learning 방식을 제안합니다.
핵심은 간단합니다. 동일한 클래스의 이미지는 서로 가까워지도록, 서로 다른 Augmentation을 받은 이미지는 멀어지도록 학습하자는 것이죠. 생각해보면 일리가 있습니다. 강아지 클래스를 정상이라고 학습해야 한다고 가정해보죠. 그럼 모든 형태의 강아지는 정상으로 판별해야 합니다. 따라서 모든 강아지 이미지는 가깝게 분포해야 하죠. 반면 ‘이상한’ 강아지는 정상 강아지 이미지와 멀리 떨어져야 합니다. 따라서 Augmentation 받은 강아지 이미지는 정상 강아지 이미지와 멀리 떨어뜨리자는 아이디어 입니다.
2-2. Classifier 구성
SSL-OCC에서는 Classifier로 딥러닝 모델을 사용하지 않습니다. 대신 OC-SVM, KDE 같은 단순한 Classifier를 사용합니다.
3. 실험 결과
이번에는 SSL-OCC의 성능을 살펴보겠습니다.
3-1. CIFAR10 / CIFAR100 / f-MNIST / CAT vs DOG / celebA
먼저 CIFAR10 / CIFAR100 / f-MNIST / CAT vs DOG / celebA 데이터셋에서의 성능입니다.
표와 같이 거의 모든 데이터셋에서 제안한 방법론이 가장 좋은 성능을 보여줍니다.
3-2. mvTec
다음은 mvTec 성능입니다. 다른 mvTec 모델들보다는 성능이 떨어지지만, 비슷한 계열의 다른 모델들과 비교했을 때는 거의 가장 좋은 성능을 보여줍니다.