오늘 정리할 논문은 ICLR 2018에 소개된 ODIN입니다. ODIN은 Out-of-DIstribution detector for Neural network의 약자로, 이미 학습이 완료된 network model에 어떠한 수정 없이 Out-Of-Distribution(OOD)를 찾을 수 있는 것이 특징입니다.

먼저 OOD에 대해 간단하게 소개해드리겠습니다. OOD란 현재 가지고 있는 in-distribution 데이터로 multi-class classification network를 학습시킨 뒤, test 과정에서 in-distribution 데이터에 대해서는 model이 올바르게 예측하고 out-of-distribution 데이터는 걸러내는 것을 목표로 하는 분야입니다. 주요 분류는 다음과 같습니다.

Taxonomy of generalized OOD detection framework

딥러닝 모델의 overconfident한 경향성을 고려하면, OOD는 중요한 연구분야입니다. 일반적으로 multi-class classification의 경우, 마지막 layer에 FC layer와 softmax 활성화 함수를 이용해 classification을 진행하는데, 이때 사용하는 softmax 함수 때문에 예측 확률이 거의 1에 근접하는 overconfident한 현상이 발생합니다. In-distribution 데이터를 confident하게 분류하는 경우에는 문제 되지 않습니다. 다만 out-of-distribution 데이터의 분류 결과가 ${1 \over n}$ 확률로 예측되지 않고 대부분의 경우 어떤 하나의 class로 overconfident하게 예측이 되기 때문에 문제가 됩니다.

 

Overconfident prediction of model

위 그림은 유저가 마우스로 그린 그림을 MNIST 분류기에 넣었을 때, 예측결과를 보여주는 그림입니다.(출처) 0~9의 숫자가 아님에도 어떤 숫자로 예측하게 되는 현상을 관측할 수 있습니다. 이를 해결하기 위해서 10이라는 unknown class를 unknown images들을 모아서 network를 다시 학습시키는 방법을 생각해 볼 수 있겠습니다. 다만 이렇게 되면 network를 다시 학습시켜야 하는 문제, unknown image를 모아야 하는 문제가 발생합니다.

오늘 살펴볼 OOD detector, ODIN은 이러한 문제없이 효과적으로 OOD를 찾는 것을 목표로 하고 있습니다. 주요 포인트는 다음과 같습니다.

  • Re-training NN 과정 없이 쉬운 구현으로 OOD detection을 수행할 수 있다.
  • 기존의 것들을 잘 적용해서 Baseline보다 높은 성능 향상을 이끌어 냈다.
  • 직관적인 파라미터 설정 가이드를 제공한다.

 

Two Main Components

ODIN의 핵심은 2가지입니다. Temperature Scaling과 Input Pre-processing입니다.

Temperature Scaling

Softmax Score

Temperature scaling은 우리가 아는 softmax 함수를 약간 변형한 형태입니다. Knowldege distillation(출처)이나  prediction confidence를 calibration하는(출처) 효과를 가지고 있습니다. 여기서 $T$는 temperature라는 이름의 하이퍼파라미터이며, $T>1$의 $T$ 값은 softmax score를 soften하게 만들어주는 효과를 가지고 있습니다. 범위에 따라서 다음의 효과를 가지고 있습니다.

  • $T→ \infty$
    softmax score = $1/n$
  • $T=1$
    softmax score = original Prob
  • $T→0$
    softmax score = 1

저자는 classification 문제에서 in-distribution 데이터의 confidence가 높다는 것을 근거로, 이를 OOD detection 문제에 적용해서, in-distribution과 out-of-distribution 데이터의 softmax score 사이를 넓혀서 OOD 검출을 효과적으로 수행하려고 합니다. $T$는 train 과정에서는 1로 세팅하고, test 과정에서는 적절한 값을 찾아야 합니다.

 

Input Pre-processing

Input pre-processing

Google에서 수행한 adversarial attack 연구에서 영감을 받은 것으로, 위의 식을 토대로 input data를 전처리하게 됩니다. 위의 식에서 $'-'$를 $'+'$로 바꾸면 adversarial attack이 되며, pertubation을 추가하는 것으로 input에 대한 softmax score를 감소하는 것이 목표였습니다. 저자는 이를 역으로 활용하여 pertubation을 제거하는 것으로 in-distribution 데이터에 대한 softmax score를 강화하여 in-과 out-of-의 score 간격을 넓히고자 합니다. 아래의 이미지를 보면 이해하기 쉬워집니다. Gradient를 따라 이동시켰더니, in-distribution data에 대한 softmax score가 높아집니다. (out-of-distribution은 조금만 높아짐)

Illustration of effects of the input preprocessing

더보기

Pertubation은 Back-propagation을 통해 loss를 최소화하려는 것을 반대로 이용하여, loss를 높이는 gradient를 계산한 값입니다. 이를 input 데이터에 섞었더니 true에 대한 softmax score가 감소하는 연구결과가 있습니다.

$\epsilon$은 하이퍼파라미터입니다. 실험을 통해 적절한 값을 선택해 줄 필요가 있습니다.

 

Out-Of-Distribution Detector

Out-of-distribution detector

마지막 inference 단계에서 위와 같은 detector를 통과합니다. Temperature scaling과 input pre-processing을 거친 데이터가 model을 통과하고 얻은 제일 큰 Prob으로 설정한 threshold 값보다 크면 in-distribution, 작으면 out-of-distribution으로 판별하게 됩니다.

 

Experiment

Architecture and Training configurations

저자가 실험에 사용한 network는 DenseNetWide ResNet입니다. 자세한 구조는 Dense-BC와 WRN-28-10의 구조를 사용했습니다.

 

Accuracy of Pre-trianed Networks

Test error rates on CIFAR-10 and CIFAR-100

사용한 데이터는 CIFAR-10과 CIFAR-100입니다. Test error rate는 위 표와 같습니다.

 

Evaluation Metrics

저자가 제시(사용)하는 평가지표는 다음과 같습니다. TPR(True-Positive rate)이 95% 이상인 경우에 얻은 값을 평가지표로 사용하고 있습니다.

  1. FPR
  2. Detection Error
    $P_e=0.5(1-TPR)+0.5FPR$
  3. AUROC
    Area Under Receiver-Operating-Characteristic curve
    AUROC는 positive example이 negative example보다 높은 점수를 받을 가능성으로 해석할 수 있습니다.
    Ideal한 경우에 AUROC는 100%입니다.
  4. AUPR
    Area Under Precision-Recall curve
    AUPR-In과 AUPR-Out을 사용했으며, 각각 in-distribution과 out-of-distribution이 positive로 분류되는 경우의 PR curve를 사용해서 값을 얻었습니다.

더보기
책 「데이터 과학자와 데이터 엔지니어를 위한 인터뷰 모음집」

위 그림에서 (c)와 (d)는 (a)와 (b)에 대비해서 negative example을 10배 늘린 결과이다. 이를 통해 ROC curve는 데이터셋과 별개로 일반적인 경우에서의 모델 성능을 나타냄과 PR curve는 데이터셋의 상황에 맞는 모델 성능을 나타 냄을 알 수 있다.

 

Test Result on Out-Of-Distribution Dataset 

실험을 통해 설정된 하이퍼파라미터는 $T=1000$, $\epsilon=0.0014$ (CIFAR-10), $\epsilon=0.002$ (CIFAR-100)을 사용하였습니다. 하이퍼파라미터 설정을 위한 데이터셋은 iSUN입니다. 성능지표는 아래와 같습니다.

ROC curve ; base-line(red), ODIN(blue) ; CIFAR-10(in-), TinyImageNet(out-of-distribution)
Distinguishing in- and out-of-distribution test set data for image classification

OOD dataset에 테스트한 결과를 나타내는 표입니다. 화살표가 의미하는 바는 "↓ : 낮을수록 성능이 좋음", "↑ : 높을수록 성능이 좋음"입니다. 전체적으로 baseline과 비교했을 때, 높은 성능 향상을 이루어냈음을 알 수 있습니다.

 

Parameter Transferability

Detection performance using different validation OOD datasets

앞서 하이퍼파라미터가 하나의 데이터셋에서 튜닝이 이루어지고 다른 데이터셋에서 평가했다고 짧게 언급했습니다. 구체적인 근거(실험 자료)는 아래와 같습니다. 모든 하이퍼파라미터 튜닝은 TPR 95%를 만족하였을 때, FPR을 최소화하는 파라미터 선택으로 이루어졌습니다.

 

Parameter Tuning

전체적인 경향성을 보시면 됩니다.

 

Conclusion

Trained model에 바로 적용할 수 있는 점이 가장 큰 매력으로 느껴집니다. 따로 unknown에 대한 데이터를 수집하지 않아도 되기 때문입니다. ODIN에 대한 코드는 여기서 살펴보실 수 있습니다.