YoojLee / paper_review

paper review archive
6 stars 2 forks source link

Out-of-Distribution Detection with Deep Nearest Neighbors (ICML'22) #36

Open YoojLee opened 1 year ago

YoojLee commented 1 year ago

image

Abstract

Distance-based methods have demonstrated promise, where testing samples are detected as OOD if they are relatively far away from in-distribution (ID) data. However, prior methods impose a strong distributional assumption of the underlying feature space (may not always hold)

This paper...

1. Introduction

OOD Detection은 classifier의 reliability에 중요함. 예컨대, 학습 시 보지 못했던 데이터를 입력으로 받았을 때 inference할 때 문제가 생길 수 있음. 이를 위해서 보지 못했던, 즉 OOD sample을 잘 구분해내는 작업이 필요함. (Reliable classifier should classify known in-distribution samples + identify ood input as "unknown")

OOD 연구가 많이 이루어져왔고, 그 중 distance based 방법론들이 promising. But, 이런 경우 분포에 대한 가정이 strong한 경우가 많음.

→ Can we leverage the non-parametric nearest neighbor approach for OOD detection?

test input의 embedding과 training set의 embedding 간의 거리 비교를 통해 k-th nearest neighbor distance를 구한 후 이를 threshold를 통해서 OOD detection을 수행해보자. 이처럼 k-NN으로 OOD detection을 수행할 경우 다음과 같은 4가지 장점을 갖게 됨.

1) distributional assumption free 2) OOD agnostic (distance threshold는 ID data를 사용해서 결정되지, OOD 샘플에 대한 정보는 전혀 활용하지 않음) 3) easy-to-use (공분산 행렬의 역행렬을 구하는 등 numerically unstable한 연산 과정이 필요 없음) 4) model-agnostic (어떤 모델 아키텍처나 training loss에든 적용 가능함)

위와 같은 장점에도 불구하고, 그동안의 연구에서는 k-NN 방식의 OOD Detection이 overlooked.

해당 연구는 k-NN 방법론의 efficacy를 처음으로 explore했을 뿐 아니라, 단순히 k-NN을 사용하면 performant하지 않고 compact and normalized feature space가 OOD detection에 k-NN을 적용하는 데에 key임을 추가적으로 밝혀냄.

또한, k-NN based OOD detection이 결국 Bayes optimal estimator와 동치임을 보여주면서 theoretical analysis도 진행함.

2. Preliminaries

supervised multi-class classification을 가정하며, (x,y) label set으로 train된 neural network f를 가정함. f의 output인 logit vector를 기반으로 ID score를 산출한 후, $\lambda$ thresholding을 통해서 ID와 OOD를 구분해내는 level set estimation으로 OOD task를 formulation함. (아래 수식 참조)

image

즉, OOD Detection을 binary classification 문제로 상정하고 OOD detector의 input을 학습된 classification network f로부터 가져오겠다는 것임. 결국엔 multi-stage OOD detection인 것.

3. Deep Nearest Neighbor for OOD detection

image 여기서 z가 normalized된다는 점, feature vector는 penultimate layer에서 가져온다는 점 참고. z는 이미지 단위로 하나씩 존재하게 됨.

OOD detection에서 indicator function은 ID라고 판단을 내릴 때에 1값을 리턴하게 됨. 따라서, indicator 내부에 들어갈 score 값은 ID score라고 칭할 수 있다. ID Score가 높아야 ID라고 판단하는 것이므로 distance는 ID Score와는 방향이 반대임 (distance 값이 작을 수록 ID일 확률이 높으므로). 따라서 indicator에 들어가는 distance 값인 $r_k(\mathrm{z}^*)$는 ID score의 기능을 하기 위해 -값을 취해야 함.

이때, threshold인 $\lambda$ 값은 많은 ID data (95%)가 correctly classify되도록 선택됨 (이때, OOD sample에 의존하지 않고 $\lambda$가 선택된다는 점에서 OOD-agnostic하다고 주장)

4. Experiments

등을 테스트하고자 함.

Evaluation metrics 같은 경우에는 다음의 4가지를 활용:

4.1. Results on CIFAR-10

ID를 CIFAR-10으로 하고 resnet-18을 backbone으로 활용함. 여기서, 다른 training loss에서도 잘 작동함을 보여주기 위해서 Contrastive Loss를 활용함 (SupCon) CIFAR-10과 같은 경우 k = 50으로 선정함 (CIFAR-100에서는 200으로 선정)

baseline 같은 경우에는 Contrastive Loss를 사용하지 않는 모델과 사용하는 모델로 나누어서 선정함. Contrastive Loss를 사용하지 않는 경우는 GODIN을 제외하고 모두 CE Loss를 활용하는 ID Classifier 기반의 OOD Detection 방법론들임. (GODIN은 DeConf-C Loss를 별도로 활용하여 id-classifier를 추가학습시키는 것으로 보임. 이에 따라 ID accuracy가 타 모델과 다름을 알 수 있음)

image

모든 데이터셋에 대한 evaluation metrics 평균을 보았을 때, KNN 기반 방법론이 가장 좋았음. (KNN for non-contrastive, KNN+ for contrastive)

실제로 parametric 기반 방법론인 Mahalanobis와 SSD+와 비교했을 때 KNN 기반 방법론이 더 좋았음. training loss에 상관 없이 기존 방법론들을 outperform했으며, parametric method보다 더 좋은 성능을 보여줌.

더 나아가, contrastive loss를 활용한 backbone을 사용함으로써 ID accuracy가 올라감. 이를 통해 embedding quality가 높아졌음을 미루어볼 수 있고 이에 실제로 detection performance가 향상되었음을 알 수 있음. 실제로 아래와 같이 정성적으로도 feature embedding이 잘 되었음을 보여주고 있음.

image

추가적으로 non-parametric method와 비교해본 결과 (SupCon으로 backbone 고정) KNN이 우수한 성능을 보여줌.

image

OOD dataset을 조금 더 어려운 데이터셋으로 변경하여 실험해본 결과, 역시 KNN 방법론이 strongest baseline인 SSD+를 능가함.

image

4.2. Evaluation on Large-scale ImageNet Task

샘플 수가 100만 단위로 증가해도 과연 KNN이 effective할지에 대한 실험. k=1000으로 세팅하고, 여기서는 _random sampling_을 적용함. $\alpha$%만큼을 전체 이미지에서 sampling하고, 이를 바탕으로 k도 $\alpha$%$\cdot k$로 조정.

OOD는 ImageNet과 overlap이 있는 카테고리를 제외하고 Places365, Textures, iNaturalist, SUN에서 설정.

image

Contrastive Loss를 적용하지 않는 경우, knn 방법론이 FPR 측면에서 가장 좋았음. 또한, 샘플링을 적용하지않을 경우 ($\alpha$ = 100) 대비, 1% 샘플링을 적용해도 성능 drop이 그렇게 크지 않다는 점이 주목할 만함. AUROC 측면에서도 타 baseline 대비 competitive함.

Contrastive Loss를 적용한 경우에는 baseline인 SSD+ 대비 성능이 큰 폭으로 앞섬. 또한, CE Loss를 적용했을 때보다 같은 KNN 기반 방법론이어도 훨씬 성능이 좋아짐을 알 수 있음. SSD+의 경우에는 ImageNet에 적용을 할 경우 성능이 매우 떨어졌는데 이는 Large-Scale Dataset으로 확장하면서 기존 SSD+가 가지고 가던 multivariate Gaussian에 대한 분포 가정이 제대로 적용되지 않음으로 그 이유를 추측해볼 수 있음. (KNN 같은 경우, non-parametric하기 때문에 역시 이런 부분에서 자유롭다) Contrastive backbone 하에서 KNN 방법론은 strongest baseline인 ODIN을 FPR 95 측면에서 대략 18% 정도를 outperform함. 역시, 1% 랜덤샘플링을 적용했을 때 performance drop이 매우 적었음.

1% 샘플링을 통해 성능이 거의 떨어지지 않았지만 inference time이 기존 CE Loss 기반 방법론과 동일한 7.04를 기록함. 이는 KNN 기반 OOD Detection을 수행하면서 추가적으로 발생하는 inference overload가 거의 발생하지 않았음을 추측해볼 수 있음. (full dataset을 쓴다고 해도 다른 거리기반 방법론보다 훨씬 적은 inference time)

추가적으로 ViT backbone에서도 실험을 진행함.

image

역시 parametric 방법론인 SSD+ 대비 더 좋은 성능을 보여주고 있음. ConvNet backbone만이 아닌 ViT backbone에서도 효과적임을 입증.

YoojLee commented 1 year ago

NN search에 있어서는 Faiss 활용함.