논문리뷰/Anomaly Detection

[논문리뷰] OOD 논문리뷰

402번째 거북이 2023. 3. 5. 12:34

🎈Do Deep Generative Models Know What They Don’t Know? (2019)

High Ood Likelihood

본적 없는 데이터셋에 대해서 더 낮은 BPD(Log-Likelihood의 대용으로 낮을수록 likelihood가 높은 것이라고 이해)를 보이는 현상을 발견.

 

Normalizing Flow 모델의 object function 중 어떤 term이 문제인지 알아보기 위해 test, 결과적으로 term2에서 high ood likelihood를 발견.

문제의 원인을 term2라고 결론짓지 않고, normalizing flow 기반 모델 자체의 일반화 어려움이 원인이라고 결론지음.

입력데이터에 따라 민감하게 학습⇒ Generalization에는 약함.

**특히 term2는 입력데이터에 대한 jacobian(입력 데이터에 대한 모델의 변화 그 자체)**이기때문에 입력데이터에 민감할 수밖에 없음.

(loss function에 jacobian이 들어가는 모델의 경우 그래서 보통 regularization을 강조함)

term2가 항상 일정한 값을 가지도록 규제하는 것을 해결책으로 내세움.

⇒ 규제해도(CV-GLOW) high Ood likelihood 문제가 해결되지 않음.

 

high Ood likelihood를 일으킨 데이터셋인 SVHN 데이터와 다른 데이터셋(CIFAR-10)의 분산을 비교,

SVHN의 데이터 분산 자체가 CIFAR-10보다 작은 것을 확인, 따라서 SVHN의 likelihood가 더 큰 것으로 확인.

⇒ term2가 문제가 아니라, 데이터셋 자체의 분산 문제라고 결론지음.

⇒ 데이터셋의 분산이 작을수록 likelihood를 크게 계산한다는 특징을 발견.

 


🎈Why Normalizing Flows Fail to Detect Out-of-Distribution Data (OOD)

 

⇒데이터셋의 문제가 아니라 Flow 모델이 갖는 inductive bias에서 문제를 찾음.

 

inductive bias를 Ood Detection을 잘하기 위한 방식으로 변화할 것을 주장(아래 세 방법을 통해)

  1. Checkerboard Masking 방식의 변화
  2. Bottleneck의 도입
  3. image embedding feature의 활용

 

✨Flow 모델의 문제: Inductive Bias of Flow

flow가 학습하는 것은 feature map⇒latent space로의 변환: semantic information을 학습하는것은 아님.

loss function이 어떤 object인지와 관계없이 structured image에 대해서는 모두 high likelihood로 계산하도록 되어있음

Flow가 inductive bias를 semantic content를 학습하도록 해야 함.

따라서 Ood dataset의 likelihood는 최소화하고 target dataset의 likelihood는 최대화하도록 objective function을 수정.

 

✨Coupling Layer의 Checkerboard Masking 문제

기존 coupling Layer의 checkerboard masking이 semantic information보다 pixel단위의 주변 information에 더 집중하게 만든다고 지적.

cycle masking으로 실험해 high Ood likelihood가 개선되는 것을 확인

사분면 모두에 대한 inference가 완료되기 전까지 바로 주변 pixel을 마스킹해서 참고할 수 없도록 함, 단 generate 되는 샘플 자체의 질이 떨어지는 것을 확인.

 

✨Bottleneck 도입

encoder와 decoder 사이에 fully connected layer를 삽입⇒ input이 그대로 output으로 전해지는 coupling layer의 특성을 없애고자 함. (모델 capacity를 줄이는 효과)

결과적으로 모델 capacity를 줄인 결과 high Ood Likelihood 문제가 감소됨을 발견.

⇒질문: 과정에서 spatial information이 사라지지는 않나?

 

✨CNN Network를 활용한 Flow 개선

다른 pretrained 모델을 사용해 image embedding을 진행한 후 flow detection을 수행하는 방식 제안.

ImageNet 데이터로 pretrained된 EfficientNet을 활용해 데이터의 embedding정보를 추출.

결과적으로 pretrained model로 embedding을 진행한 flow모델이 high Ood likelihood가 적었음.


 

질문: 여러 semantic level의 정보를 담도록 feature를 추출해서 flow에 전달하는데, 이 방식만으로는 inductive bias of flow를 극복하기에 충분하지 않은 것인가?

⇒그 방식이 마지막 방식인 듯.