[20′ NIPS] Why Normalizing Flows Fail to Detect Out-of-Distribution Data 핵심 리뷰

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

내용 요약

Normalizing Flow 모델이 왜 Anomaly Detection에 실패하는지 원인을 분석합니다. 이를 해결하기 위한 세가지 해결 방안을 제안합니다. 실험 결과를 통해 제안 방법의 적절함을 증명합니다.

1. 들어가며

이번 글에서는 2020년 NIPS에 발표된 Why Normalizing Flows Fail to Detect Out-of-Distribution Data 논문을 리뷰합니다. 이 논문은 최초로 Normalizing Flow를 Anomaly(OOD) Detection에 적용하며 문제점을 분석한 논문입니다. Anomaly Detection에 관한 기본적인 내용은 Anomaly Detection에 관한 모든 것 글을 참고해주세요. Normalizing Flow에 대한 기본적인 내용은 Normalizing Flow와 딥러닝 글을 참고 바랍니다.

2. 제안 방법

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

2-1. Why flows fail to detect OOD data

먼저 저자들은 왜 flows 모델이 OOD 검출에 실패하는지 원인을 분석합니다.

1.RealNVP-flows
그림1. RealNVP의 ID, OOD에 대한 반응

위 그림a는 ImageNet으로 학습한 RealNVP 모델의 각 데이터셋에 대한 log likelihood 그래프입니다. SVHN, CelebA 데이터셋은 OOD 임에도 불구하고 ImageNet 데이터셋보다 더 큰 likelihood를 내는 모습을 볼 수 있습니다.

그림b는 ID와 OOD에 대한 RealNVP 모델의 Intermediate Layer Output을 보여주고 있습니다. ID, OOD 모두 구조가 망가지지 않은채로 흐름이 잘 유지되는 모습을 보입니다. OOD 같은 경우는 구조가 망가지는 모습을 보이며 최종적으로 Likelihood가 낮게 나와줘야 하는데 말이죠.

2-2. Flow latent spaces

이에 저자들은 Normalizing Flow는 Semantic 정보가 아닌 Pixel Correlation과 Graphical Details에 초점을 맞추기에 OOD도 잘 복원하며 높은 Likelihood를 보인다고 주장합니다.

2.RealNVP-latent-space
그림2. RealNVP Latent Space

위 그림은 RealNVP 모델의 latent space 모습입니다. 왼쪽 그림은 Fashion MNIST로 학습한 뒤 MNIST를 테스트, 오른쪽 그림은 CelebA를 학습한 뒤 SVHN을 테스트하는 모습입니다. 왼쪽 그림의 MNIST와 오른쪽 그림의 SVHN은 OOD 임에도 불구하고 latent space에서 원래의 형상이 잘 유지되는 모습을 보입니다. 따라서 그림 1의 실험에서 OOD에서도 높은 likelihood가 나왔음을 알 수 있습니다.

2-3. Transformations learned by coupling layers

이에 대한 원인을 분석하기 위해 coupling layer에서 image가 어떻게 변환되는지를 살펴봅니다.

3.transformations-learned-by-coupling-layers
그림3. Transformations Learned By Coupling Layers

Coupling layer에서는 masked input에 대해 affine transform을 수행하기 위해 s, t 함수를 학습합니다. 이때 위의 그림에서와 같이 t함수는 원본 이미지를 거의 그대로 복원하는 방향으로 학습하게 됩니다. 따라서 OOD 데이터셋에 대해서도 원래 이미지를 잘 복원할 수 있고 이는 OOD의 Likelihood가 높게 나오는 원인이 됩니다.

저자들은 이런 현상의 원인을 앞서 말했던 leveraging local pixel correlations 현상과 coupling layer co-adaptation 효과 때문이라고 주장합니다. 그림 3의 c, d 그림을 보면 horizontal masking을 했는데도 OOD를 잘 복원해내는 모습을 볼 수 있습니다. 첫 번째 coupling layer에서 위쪽 절반의 정보를 encoding 해서 아래 절반에 넣어주고, 두 번째 coupling layer에서는 다시 이 아래 정보를 decoding 해서 위쪽 절반을 채워줍니다. 이렇게 반복하며 원래 정보를 유지하는 현상을 저자들은 coupling layer co-adaptation이라고 부릅니다.

2-4. Changing biases in flows for better OOD detection

위의 내용까지로 보건대, flows 모델은 모든 structured image에 대해 likelihood를 증가시키도록 transformation을 학습한다고 볼 수 있습니다. 따라서 OOD 데이터셋에 대한 high likelihood를 낮추기 위해서는 이 bias를 완화시켜야 합니다.

논문에서는 이를 위한 두 가지 방법을 제시합니다.

첫 번째는 masking strategy를 바꾸는 방법입니다. 세 가지 masking 방식에 대한 실험을 진행합니다. 세 가지 방식은 Checkerboard, horizontal, cycle-mask입니다. Cycle mask 방식은 이미지 정보가 한참 돌고 돌아서 모델이 direct 하게 사용할 수 없도록 저자들이 고안한 방식입니다. 그랬더니 checkerboard -> horizontal -> cycle-mask 순으로 낮은 OOD likelihood를 냈습니다.

두 번째는 st-network에 bottleneck을 주는 방법입니다. st-network가 너무 큰 capacity를 가져 거의 모든 structured data를 다 원복 시킬 수 있으므로 bottleneck을 주어 이 capacity를 낮추자는 아이디어입니다. 이를 위해 st-network 중간에 fully connected layer를 넣어 dimension을 낮춘 뒤 원래 dimension으로 복원시키는 방법을 사용했습니다.

4.effect-of-st-networks-capacity
그림4. Effect of st Networks Capacity

위 그림을 보면 dimension(l)을 낮게 압축시킬수록 low OOD likelihood를 내는 모습을 볼 수 있습니다.

2-5. Out of distribution detection using image embeddings

마지막으로 input으로 image가 아닌 embedding vector를 사용하는 실험을 진행합니다.

5.effect-of-image-embeddings
그림5. Effect of Image Embeddings

그 결과 image를 학습하는 것보다 pretrained CNN으로 추출한 feature를 사용했을 때 더 높은 ID likelihood와, 더 낮은 OOD likelihood를 얻을 수 있었습니다.

Series Navigation<< [Normalizing Flow 방식의 Anomaly Detection][21′ WACV] Same Same But DifferNet: Semi-Supervised Defect Detection with Normalizing Flows 핵심 리뷰 >>
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