Uncertainty

불확실성(Uncertainty)에는 다음과 같이 크게 세 종류의 불확실성이 있다.

  • Aleatoric Uncertainty
  • Epistemic Uncertainty
  • Out-of-Distribution Uncertainty

1. Aleatoric Uncertainty

  • 데이터 “생성과정”에서 발생하는 무작위성

  • 따라서, 단지 데이터의 수를 늘린다고 해서 줄어드는 불확실성이 아님!

  • ex)

    • \(x \sim N(0,1)\)에서 \(x\)를 샘플링한다고 해보자. 여기서 \(x\)를 1개를 뽑든, 999999개를 뽑든,

      해당 \(x\)는 (분산) 1 만큼의 불확실성을 가지고 있다.

데이터를 늘린다고해서 줄일 수 있는 불확실성이 아니라고해서, 무시해되 되는 것은 아니다. 우리는 대신에 해당 aleatoric uncertainty의 정도를 출력해 줄 수 있는 모델을 만드는 것이 중요하다!

2. Epistemic Uncertainty

  • “모델”의 불확실성과 관련있는 불확실성

    ( 즉, 우리가 정확한 모델의 파라미터를 모르는 데에서 오는 불확실성이다. )

  • 데이터의 수를 늘리면 줄어드는 불확실성!

  • ex) (1,2), (4,8) 두 점으로 추정한 간단한 선형회귀식 \(y=\beta x\)에서의 \(\hat{\beta}=2\)

    (1,2),(2,4),(3,6),(4,8)…..(400,800) 400개의 점으로 추정한 간단한 선형회귀식 \(y=Ax\)에서의 \(\hat {\beta}=2\)

    두 결과 모두 \(\beta\)를 2로 예측하였다. 하지만 전자의 경우보다, 후자의 경우가 더욱 더 \(\hat{\beta}\)에 대해 더욱 강하게 확신할 수 있을 것이다. ( 다른 말로, 2개의 점만으로 추정한 \(\hat{\beta}\)는 400개의 점으로 추정한 것보다 더 “불확실하다”라고 할 수 있다. )

**출처 : Uncertainty in Deep Learning. How To Measure? Towards Data Science**

3. Out-of-Distribution Uncertainty (OoD)

  • 입력 자체가, 우리가 예상했던 분포에서 들어오지 않은 입력값일 때!

  • (기본 가정) train & valid & test 데이터는 우리가 다루고자하는 데이터의 모든 범위를 다 커버하고 있다!

    하지만, 이 가정에 어긋나는 데이터, 즉 정말 새로운 분포에서 데이터가 올 경우에 발생하는 문제이다.

  • OoD 입력을 처리하는 방법

    • 1) OoD가 모델에 입력 되기 전에 해당 입력을 탐지하기

      ( 즉, 입력이 우리의 train dataset의 분포에 속하는지를 판별한다 ) ( ex. GAN의 Discriminator가 맡게 되는 역할 )

    • 2) OoD의 입력을 받되, 해당 입력의 불확실성에 대해 예측하기

      ( ex. Softmax가 출력하는 값들은 전부 “확률”값으로, 해당 정답에 대한 (불)확실성을 보여준다 )