<aside>
💡 아래 포스트는 네이버 Boostcamp AI-Tech 과정 중 고려대학교 인공지능학과 최성준 교수님의 마스터 클래스 "To know what we do not know" 수업 및 자료와 Eric Jang의 "Uncertainty: a Tutorial" 블로그 포스트를 바탕으로 재구성한 것입니다!
</aside>
Introduction
Uncertainty in Deep Learning
Deep Learning에서 불확실성(uncertainty)을 모델링하고자 하는 시도는 많이 있었습니다. 또한, 실제로 해당 성능이 기존의 방법에 비해 우수하기도 했습니다. 주로, 불확실성을 모델링하는 방식은 베이즈 법칙(Bayes' Rule) 혹은 **정보 이론(Information Theory)**에 그 기반을 두고 있습니다. 이를 바탕으로 최근에는 기존 딥러닝 모델들의 다양한 성질을 바탕으로 불확실성 모델링을 확장 및 발전시키고 있습니다. 해당 기법들을 나열하면 아래와 같습니다.
- Bayesian Methods (베이지안 방법론) models distributions (not exact values) based on Bayes' Rule (non-deterministic approach).
베이지안 방법론은 베이즈 법칙에 의거하여 정확한 값이 아닌 분포들을 모델링하는 비결정론적인 방법론입니다.
- Calibration/Confidence (캘리브레이션/신뢰도) is a frequentist notion of uncertainty which measures the discrepancy between subjective forecasts and (empirical) long-run frequencies. Therefore, Calibration is an orthogonal concern to accuracy; a (neural) network's predictions may be accurate and yet miscalibrated, and vice versa[6].
캘리브레이션은 빈도주의자 관점의 불확실성 개념으로, 주관적인 예측치와 (경험에 의한) 장기적인 실제 빈도 사이의 불일치를 측정하는 지표입니다. 따라서, 캘리브레이션은 정확도(accuracy)와는 무관한 척도로, 인공신경망의 예측치가 정확하지만 calibration이 안 되어 있을수도, 혹은 그 반대일 수도 있습니다.
- Out-of-Distribution Detection (OOD 탐지) is the generalization of the predictive uncertainty to domain shift, that is, measuring if the network knows what it knows[6].
OOD 탐지는 예측치 불확실성을 도메인(훈련 데이터의 영역) 변화에 대해서도 일반화한 것입니다. 즉, 인공신경망이 "자기가 무엇을 아는지 모르는지"를 측정하는 수치로, 원래 훈련 데이터 영역의 범위를 벗어난 경우 예측을 피하는 지를 측정하는 것입니다[7].
- Distance-based Methods (거리 기반 방법론) calculates distances using various distance measures between ID(In-distribution) and OOD(Out-of-distribution) and compare them.
거리 기반 방법론은 ID와 OOD의 거리를 다양한 방식으로 측정하여 이를 비교합니다.
Different Types of Uncertainties
우리가 아는 것은 구분하기가 매우 쉽습니다. 단순히 그것이 무엇인지를 말하면 되는 것이죠. 그러나 우리가 모르는 것을 "왜 모르는지" 혹은 "어떻게 모르는지" 구분하는 것은 쉽지 않습니다. 당연히 "무엇인지"조차 모르기 때문이죠. 실제로 사람의 학습 과정에서 메타인지(meta-cognition)라고 불리는 "자신이 무엇을 아고 무엇을 모르는지 아는 것"은 매우 중요하죠!
불확실성을 수치로 나타낸 것이 일반적으로 **분산(variance)**입니다. 경제학과 금융학에서는 이를 **위험(risk)**이라고 부릅니다. 표준편차(standard deviation), 최대예상손실액(Variance-at-risk), 엔트로피(entropy) 등의 다른 방식들도 존재합니다. 물론 불확실성이 정확히 어떠한 의미를 갖고 있는지, 혹은 어떤 대상의 불확실성을 측정하는 지를 정의하는 것도 필요합니다. 예를 들어, 동전 혹은 주사위 던지기와 같이 내재된 무작위성(randomness)일수도, 혹은 모델이 부정확해서 신뢰도(confidence)가 부족한 것일 수도 있습니다[2].
통계학 등 이러한 불확실성을 다루는 분야에서는 대략적으로 3가지의 불확실성이 있다고 구분합니다. 개념적으로는 구분되지만, 실제로 이들은 완벽히 구분되지 않습니다. 따라서 이를 구분하는 방법론을 찾는 것이 매우 중요하다고 할 수 있습니다. 우리가 제어할 수 있는 여부에 따라서 aleatoric uncertainty와 epistemic uncertainty로 구분됩니다. 또한, input에서 비롯되어 최종 output으로 흘러가는지 혹은 input 자체에만 해당하는지에 따라 out-of-distribution uncertainty로 구분되기도 합니다.
Data uncertainty - aleatoric uncertainty
- 기존 통계학에 있는 용어로, 데이터를 만들어내는 과정 혹은 자연 속에 내제되어 줄어들을 수 없는 불확실성을 의미합니다. 이는 라틴어 aleatorius에서 온 말로 "만들어지는 과정에서 우연적인 요소가 포함됨"을 의미합니다.
- 주사위 던지는 것을 아무리 좋은 모델을 가지고 훈련하더라도, 다음 번 "1"이 나올 확률은 여전히 1/6으로 동일합니다. → 자연 속에 내제되어 있는 무작위성입니다
- 카메라에 찍힌 영상을 바탕으로 semantic segmentation하는 task를 수행한다고 가정합시다. 이때, 해상도의 한계로 인해 경계가 불명확해 정확도가 떨어질 것입니다. → 데이터가 만들어지는 과정에서 발생하는 필연적인 불확실성입니다.
- 따라서, aleatoric uncertainty는 inputs으로부터 model prediction까지 전파(propagation)됩니다[2].
- 이는 데이터를 더 수집하거나 더 우수한 모델을 사용한다고 해서 성능이 개선되지 않는다는 것을 의미합니다. 즉, aleatoric uncertainty는 줄어들 수 없습니다(irreducible).
- 그러나 이는 aleatoric uncertainty에 대해 어떠한 조치도 하지 못함을 의미하지 않습니다[2].
- 가장 좋은 해결책은 모델이 해당 불확실성을 올바르게 대표하는 값을 출력하도록 훈련시키는 것입니다. 예를 들어, language generation model은 sentence completion tasks에 내재하고 있는 ambiguity를 학습하여 a sequence of categorical distributions를 도출해냅니다.
Model uncertainty - epistemic uncertainty
- Data uncertainty와 대비되는 용어로 사용되며, "지식에 관한 지식"이라는 뜻의 그리스어 episteme로부터 유래됐습니다. 이는 올바른 모델 파라미터에 대한 우리의 무지로부터 발생된 올바른 예측값의 무지(our ignorance of the correct prediction arising from our ignorance of the correct model parameters)[2]에 대한 지표입니다.
- 이는 우리가 좀 더 잘 예측할 수 있지만, 모델의 capacity가 부족하거나 데이터 혹은 지식이 충분하지 않아서 발생하는 불확실성입니다. 따라서 우리의 노력으로 줄어들 수 있는 (reducible) 불확실성입니다.
- 자동차 분류 문제에서 한 번도 보지 않은 자동차 이미지가 주어질 때 → 데이터가 충분하지 않아 발생
- 자동차 분류 문제를 CNN이 아닌 MLP를 가지고 분류를 해결할 때 → 모델의 capacity가 부족해서 발생
Out-of-distribution - novelty detection