[Self Supervised Learning 방식의 Anomaly Detection]

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

1. 들어가며

이번 글에서는 Self Supervised Learning 방식의 Anomaly Detection에 대해 설명합니다. 먼저 Self Supervised Learning 방식의 큰 그림을 살펴보고요. 이어서 대표적인 방법들을 하나씩 간략하게 살펴보겠습니다. Anomaly Detection에 관한 기본적인 내용은 Anomaly Detection에 관한 모든 것 글을 참고해주세요.

2. 큰 그림

먼저 Self Supervised Learning을 사용하는 Anomaly Detection 방법의 큰 그림을 살펴볼게요. Anomaly Detection 방법중 Pretrained Feature Matching 방식이 있는데요. 이 계열의 핵심 아이디어는 Pretrained 네트워크는 Normal과 Anomal Feature를 구분할 수 있는 능력이 있다는 것입니다. 그리고 실제로 이러한 방법들은 성능이 제법 좋았죠. 재미있는건 이 네트워크들은 심지어 Normal 데이터 조차도 학습하지 않았다는 것입니다. 그럼 정상 데이터에 대해서 어떤 식이라도 학습을 하면 더 좋은 구분 능력을 갖지 않을까요?

그럼 어떻게 정상 데이터를 학습할 것이냐는 문제가 남는데요. 하나의 클래스에 대해서만 학습하기에 가장 좋은 방법중 하나가 Self Supervised Learning이죠. 예를 들어 Transformation 종류를 학습하는 겁니다. 이렇게요.

image 27
그림1. Transformation 맞추기

이미지에 회전, 이동등의 변환을 해놓고 모델에게 맞추도록 학습하는 것이죠. 또는 Contrastive Learning을 학습하는 방법도 있습니다. 이렇게요.

image 28
그림2. Contrastive Learning

비슷한 특성의 이미지는 가까워지도록, 반대 특성의 이미지는 멀어지도록 학습하는 방법이죠. 이렇게 학습이 된 네트워크라면 구분하는 방법은 기존의 Anomaly Detection 방법들을 사용해도 좋은 성능이 나오지 않겠어요?

3. 대표적인 방법들

그럼 이러한 아이디어를 구현한 방법들을 하나씩 살펴보겠습니다.

3-1. GEOM

최초의 접근 방법은 GEOM이었습니다. 정상 이미지를 회전 시킨뒤 회전의 종류를 맞추도록 모델을 학습하는 방법이었죠.

image 30
그림3. GEOM

GEOM은 최초의 Supervised Learning 방식의 Anomaly Detection 방법으로써 이후 연구에 많은 영감을 주었습니다. 자세한 내용은 GEOM 리뷰글을 참고해 주세요.

3-2. GEOD

그럼 이런 생각을 해볼 수 있겠네요. Transformation 종류를 학습 한다는 것은 같은 종류의 Transformed Feature 끼리 뭉쳐서 분포 한다는말 아니겠어요? 그럼 Feature는 이런 식으로 분포 할겁니다.

image 31
그림4. GEOD

그럼 각 Cluster 별로 Anomal Score를 측정하자는 아이디어가 GEOD의 핵심 아이디어입니다. 자세한 내용은 GEOD 리뷰글을 참고해 주세요.

3-3. SSL-AD

다음으로 살펴볼 논문은 2019년 NIPS에 발표된 Using Self-Supervised Learning Can Improve Model Robustness and Uncertainty라는 논문입니다. 편의상 SSL-AD라고 부를게요. SSL-AD는 앞선 아이디어에서 한발 더 나아갑니다. 앞선 방법들은 회전의 종류만 맞추도록 모델을 학습했는데요. 회전 뿐만 아니라 평행 이동 (Translation)까지 맞추도록 학습하자는 거죠.

image 32
그림5. SSL-AD

그럼 위와 같은 구조가 될겁니다. 회전의 종류를 맞췄을때 Normal 이미지의 특성을 잘 학습했다면, 당연히 평행 이동의 종류까지 같이 학습하면 더 많은 특성을 학습할 수 있겠죠? 자세한 내용은 SSL-AD 리뷰글을 참고해 주세요.

3-4. CSI

다음으로 살펴볼 논문은 CSI입니다. 앞선 방법들이 Transformation 종류를 맞추는 형태의 Self Supervised Learning이었다면, CSI는 Contrastive Learning을 사용하는 방법입니다. 같은 클래스의 Soft Augmentation 이미지는 당기도록, 다른 클래스 이미지와 같은 클래스의 Hard Augmentation 이미지는 밀도록 학습하는 방식이죠.

image 33
그림6. CSI

자세한 내용은 CSI 리뷰글을 참고해 주세요.

3-5. SSL-OCC

다음으로 살펴볼 방법은 2021년 ICLR에 발표된 Learning and evaluating representations for deep one class classification 논문입니다. 편의상 SSL-OCC라고 부를게요. SSL-OCC에서는 특정 방법을 제안한다기 보다 Self Supervised Learning 방식의 Anomaly Detection 방법론의 장점을 체계적으로 분석합니다.

image 34
그림7. SSL-OCC

이렇게 Self Supervised Learning으로 학습한 뒤 간단한 Classifier만 붙여줘도 성능이 좋음을 밝히죠. 자세한 내용은 SSL-OCC 리뷰글을 참고해 주세요.

3-6. Hierarchical Transformation AD

다음으로 살펴볼 방법은 2021년 ICCV에 발표된 A Hierarchical Transformation-Discriminating Generative Model for Few Shot Anomaly Detection 논문입니다. 편의상 Hierarchical Transformation AD라고 부를게요. Hierarchical Transformation AD는 Few Shot Anomaly Detection 방법론을 제안하는데요.

image 35
그림8. Hierarchical Transformation AD

위 그림처럼 정상 이미지를 다양한 Scale과 Patch에 대해 Transformation을 학습하는 방법입니다. 그럼 한 장의 이미지에서도 매우 많은 학습 데이터가 생기겠죠? 덕분에 좋은 성능의 Few Shot Anomaly Detection 방법을 구현할 수 있었습니다. 자세한 내용은 Hierarchical Transformation AD 리뷰글을 참고해 주세요.

3-7. SSD

다음으로 살펴볼 방법은 SSD입니다. SSD는 Contrastive Learning 방법으로 학습하는데요. 이렇게 학습한 Feature를 Cluster별 Mahalanobis Distance로 Normal와 Anomal로 구분합니다.

image 37
그림9. SSD

이러한 큰 그림하에 Few shot Anomaly Detection 방법까지 제안하죠. 자세한 내용은 SSD 리뷰글을 참고해 주세요.

Series Navigation<< [21′ arxiv] FastFlow: Unsupervised Anomaly Detection and Localization via 2D Normalizing Flows 핵심 리뷰[18′ NIPS] Deep Anomaly Detection Using Geometric Transformations (GEOM) 핵심 리뷰 >>
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