[21′ ICLR] SSL-OCC : Learning and evaluating representations for deep one class classification 핵심 리뷰

This entry is part 30 of 40 in the series Anomaly Detection

내용 요약

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. 제안 방법

바로 제안한 방법을 살펴보겠습니다.

그림1. SSL-OCC 2단계 학습 방법
그림1. SSL-OCC 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

Distribution-Augmentation-설명
그림2. Distribution Augmentation

저자들은 기존의 Contrastive Learning의 문제점을 제기합니다. 바로 같은 클래스임에도 다른 Instance라면 멀어지도록 학습된다는 점입니다. 이 때문에 Normal Feature들이 모든 공간에 골고루 분포하게 되어 구분이 어렵다는 문제가 있습니다.

이를 위한 해결 방법으로 먼저 Moderate Batch Size를 사용할 것을 제안합니다. Batch Size가 너무 크면 다양한 이미지가 존재하겠죠. 따라서 동일한 클래스임에도 밀어내야 하는 이미지가 많아지게 됩니다. 따라서 Batch Size를 줄였다는 의미입니다.

두 번째는 아래에서 제안하는 Distribution Augmentation 방식입니다. 아래에서 자세히 살펴보겠습니다.

2-1-3. One Class Contrastive Learning

image 45
그림3. Distribution Augmented 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 데이터셋에서의 성능입니다.

cifar10-cifar100-f-MNIST-cat-vs-dog-celebA-실험결과
그림4. Cifar10 / Cifar100 / F-MNIST / Cat vs Dog / CelebA 실험 결과

표와 같이 거의 모든 데이터셋에서 제안한 방법론이 가장 좋은 성능을 보여줍니다.

3-2. mvTec

mvTec-실험결과
그림5. mvTec 실험 결과

다음은 mvTec 성능입니다. 다른 mvTec 모델들보다는 성능이 떨어지지만, 비슷한 계열의 다른 모델들과 비교했을 때는 거의 가장 좋은 성능을 보여줍니다.

Series Navigation<< [20′ NIPS] CSI: Novelty Detection via Contrastive Learning on Distributionally Shifted Instances[21′ ICCV] Hierarchical Transformation AD : A Hierarchical Transformation-Discriminating Generative Model for Few Shot Anomaly Detection 핵심 리뷰 >>
0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
Scroll to Top