논문

하루에도 수만개의 글자를 읽고 있습니다. 하루에도 수백장의 종이를 들춰 읽습니다.
이것은 그 읽기에 대한 일기입니다.

Training Confidence-Calibrated Classifier for Detecting Out-of-Distribution Samples

1 Introduction

Deep neural network는 많은 분야에서 최고의 성능을 보여주었지만, 네트워크가 예측한 결과의 uncertainty를 평가하는 것은 어려운 일입니다. 때문에 AI 안전의 관점에서 실세계의 시스템에서는 심각한 논란이 있어왔습니다.

DNN의 overconfidence 문제는 out-of-distribution을 탐지하는 문제와 높게 관련되어있습니다. 이것은 테스트 샘플이 학습할 때 사용했던 in-distribution에서 온 것인지 아니면 그것과는 완전히 다른 out-of-distribution에서 온 것인지를 구분하는 문제입니다. 수식으로 표현해보면, 입력 $\mathbf{x}$가 $P_{\text{in}}$ 혹은 $P_{\text{out}}$에서 온 것인지를 구분하고자 하고, 이를 구분할 수 있는 검출기 $g(\mathbf{x}): \chi \rightarrow \{ 0, 1 \} $를 만드는 문제입니다.

Contribution: 이 논문에서는 분류 성능을 떨어트리지 않으면서도 out-of-distribution를 알아채기 위한 학습 방법을 제안합니다. 이를 위해 confidence loss라고 새로운 로스 함수를 제안합니다. 이 로스는 out-of-distribution의 샘플들로 예측되는 분포와 유니폼 분포간의 Kullback-Leibler (KL) divergence가 최소화 되도록 하여 out-of-distribution 샘플은 더 낮은 신뢰도를 예측하도록 하였습니다. 하지만 학습을 위한 out-of-distribution의 샘플을 얻는 것은 어렵습니다. 사전 지식이 존재하지 않으며 거대한 공간을 차지하고 있습니다. 이를 다루기 위해 Generative Adversarial Network (GAN)을 이용하여 $P_{\text{out}}$의 샘플을 효과적으로 생성할 수 잇도록 하였습니다. 기존의 GAN과는 다르게, 제안하는 GAN은 $P_{\text{in}}$의 주변의 샘플들을 생성하도록 하였습니다.

2 Training confident neural classifiers

2.1 Confident Classifier for out-of-distribution

학습에 cross entropy 로스를 사용한다고 가정할 때, 제안하는 새로운 로스 함수 confidence loss는 다음과 같습니다.

$$ \underset{\theta}{\min} \mathbb{E}_{P_\text{in}(\hat{\mathbf{x}}, \hat{y})} \big[ -\log P_\theta (y= \hat{y} | \hat{\mathbf{x}}) \big] + \beta \mathbb{E}_{P_{\text{out}}(\mathbf{x})} \big[ KL(\mathcal{U}(y) || P_\theta (y|\mathbf{x})) \big]$$

여기서 $\mathcal{U}$는 유니폼 분포이고, $\beta$는 패널티 파라미터입니다. 이 로스는 out-of-distribution의 샘플들은 유니폼한 분포에 가깝게 내도록 합니다. KL divergence 항이 분류 성능을 낮추는 부담이 있긴 하겠지만, DNN의 표높은 표현력으로 인하여 그렇지 않다는 것을 발견하였습니다.

이상적으로는 out-of-distribution의 모든 샘플(무한대의)이 KL 항을 최소화하도록 학습시키거나, 샘플링을 잘 할 수 잇는 out-of-distribution의 어떤 사전 정보가 있으면 좋겠지만, 그렇지 못합니다. 따라서 in-distribution에 가까운 out-of-distribution에서 샘플링하는 방법을 제안하였고, 다른 가정 없이 성능을 올릴 수 있었습니다.

2.2 Adversarial generator for out-of-distribution

기존의 $P_\text{in}$에 가까운 분포를 복원하고자 하는 GAN과는 다르게 여기에서는 generator가 $P_\text{out}$에 가까운 분포를 복원하고자 하는 것이 목표입니다. 이를 위해 새로운 GAN loss를 이용하였습니다.

$$ \underset{G}{\min} \underset{D}{\max} \beta \mathbb{E}_{P_G (\mathbf{x})} \big[ KL(\mathcal{U}(y) || P_\theta (y | \mathbf{x})) \big] + \mathbb{E}_{P_\text{in} (\mathbf{x})} \big[ \log D(\mathbf{x})\big] + \mathbb{E}_{P_G (\mathbf{x})} \big[ \log (1- D(\mathbf{x})) \big]$$

$\theta$는 in-distribution으로 학습된 분류기의 파라미터입니다. 분류기가 잘 학습되어 있다고 가정하였을 때, 이 로스의 첫번째 항은 generator가 in-distribution 분류기에서 유니폼 분포를 가지도록 이미지를 생성하도록 합니다. 두번째 세번째 항은 out-of-distribution이 in-distribution에서 멀어졌을 때 로스가 올라가도록 되어있기에 서로가 가깝도록 만들어줍니다.

2.3 Joint Training method of confident classifier and adversarial generator

GAN과 분류기를 동시에 학습하여 서로를 성능을 동시에 학습합니다.

$$\underset{G}{\min} \underset{D}{\max} \underset{\theta}{\min} \mathbb{E}_{P_\text{in}(\hat{\mathbf{x}}, \hat{y})} \big[ -\log P_\theta (y= \hat{y} | \hat{\mathbf{x}}) \big] + \beta \mathbb{E}_{P_G (\mathbf{x})} \big[ KL(\mathcal{U}(y) || P_\theta (y | \mathbf{x})) \big] + \mathbb{E}_{P_\text{in} (\mathbf{x})} \big[ \log D(\mathbf{x})\big] + \mathbb{E}_{P_G (\mathbf{x})} \big[ \log (1- D(\mathbf{x})) \big] $$

3 Experimental Results

4 Conclusion

 


Add a Comment Trackback