Uncertainties in Deep Learning Algorithms

현대의 딥러닝 알고리즘들은 여러층의 non-linearity와 효과적인 optimization 방법들을 통해서 강력한 representational learning capability와 generalization 성능을 얻게 되었습니다. 그럼에도 우리가 잊으면 안되는 점, 뉴럴넷들은 단지 학습 데이터에 fitting이 되어있는 상태에서 사용된다는 사실입니다.

다시 말해서, 우리는 학습 데이터에서 보지 못한, 혹은 학습 데이터의 분포와 다른 분포를 갖는 예측 데이터에 대해서 뉴럴넷이 정확하게 예측을 하는지에 대해서는 의문을 가질 필요가 있습니다. 테슬라를 비롯한 자동차 업체들의 자율주행 기능이 아직도 완전히 신뢰 받지 못하는 이유도 이것 때문이라고 볼 수 있습니다.

이러한 경우에 우리가 할 수 있는 방법은, 딥러닝 모델의 예측에 대한 불확실성, 즉 uncertainty를 정량화하는 것입니다. 이 경우, 모델이 자주 보지 못한 패턴의 예측데이터일수록 모델의 예측값에 대한 uncertainty가 높게 나올 것이고, 이를 바탕으로 의사결정에서 얼마나 딥러닝 모델에 의지할 지를 결정할 수 있습니다. 학습 데이터가 충분하지 않은 경우나, 모델의 안전성이 중요한 메디컬, 산업 AI분야에서 uncertainty를 고려하는 것은 더욱 중요한 문제가 됩니다.

Bayesian Deep Learning

그렇다면 딥러닝에서 uncertainty를 어떻게 표현할 수 있을까요? 가장 기본적인 방법은 Bayesian 기반의 모델링을 하는 것입니다.

여기서 말하는 Bayesian이란 무엇일까요? 통계학으로 세상을 바라볼 때 우리가 취할 수 있는 두 가지 다른 접근법이 있습니다. 바로 Frequentist로서의 접근법과 Bayesian의 접근법입니다. Statistics: Are you Bayesian or Frequentist? 두 관점의 차이를 간략히 설명하자면, Frequentist들은 오로지 관측된 데이터만을 고려하여 어떠한 분포에 대한 예측을 하는 반면, Bayesian들은 관측된 데이터 저변에 깔려있는 prior distribution을 고려하여 예측을 한다는 점이 다른 점입니다. 이 경우 Frequentist들의 관심을 가지는 값은 $p(D|\theta)$, 즉 likelihood인 반면, Bayesian들의 관심 가지는 값은 prior distribution이 고려된 $p(\theta|D) = \frac{p(D|\theta)p(\theta)}{p(D)}$, 즉 posterior distribution이라고 볼 수 있습니다.

그림 1. Standard machine learning and Bayesian learning

그림 1. Standard machine learning and Bayesian learning

기존 머신러닝, 혹은 딥러닝 모델들은 하나의 input에 대해 하나의 output, 즉 point estimate 을 하는 방식이었습니다. 좀더 디테일하게 설명해보자면, 우리가 지금 돌리고 있는 Deep learning은 대부분 $\underset{\theta} {\mathrm{argmax}} [p(D|\theta)]$ 를 만족하는 '하나의' weight point $\theta$ 를 찾는 문제입니다. 위와 같은 방식을 maximum likelihood estimation(MLE)이라고 합니다.

반면, 앞에서 말씀드렸듯 Bayesian들의 관심은 $p(\theta|D) = \frac{p(D|\theta)p(\theta)}{p(D)}= \frac{p(D|\theta)p(\theta)}{\int_{\theta'}p(D, \theta')d\theta'}$ 로 정의되는 posterior probability 그 자체를 구하는 것입니다. 혹은 이 posterior probability에서 sampling해서 예측값들의 분포를 구하는 것이라고 볼 수도 있겠죠. Bayesian learning 은 하나의 input에 대해 여러번의 output을 얻고, 이 여러 output들의 분포를 구해볼 수 있습니다. 이 경우 output들의 분포에서 나오는 분산값을 uncertainty로 정의할 수 있습니다.

Overconfidence Problem