불확실성, Aleatoric and Epistemic Uncertainty (1)
Combining aleatoric and epistemic uncertainty in one model
Aleatoric/epistemic uncertainty를 하나의 모델에 적용할 수 있는 framework를 제안합니다. 이를 위해 aleatoric uncertainty model인 Equation 5에 Bayesian neural networks의 파라미터에 따른 확률 분포를 삽입합니다. 따라서 우리는 입력/출력 $x,y$에 대한 파라미터의 posterior distribution을 추정하면서 aleatoric uncertainty를 반영한 $\sigma$를 측정하여야 합니다.
이전 포스트에서 언급한 대로 파라미터의 posterior distribution은 dropout을 통한 variational inference로 추정하면서 $\hat{W}\sim q(W)$에 대해 모델은 predictive mean $\hat{y}$ 와 predictive variance $\hat{\sigma}^2$ 를 출력합니다. Equation 6의 $f$는 파라미터의 approximate distribution에서 dropout을 통해 샘플링한 $\hat{W}$으로 구성된 Bayesian convolutional neural network 입니다.
우리가 Gaussian likelihood로 모델링하고자 결정했다면 Equation 7과 같은 목적 함수를 설계할 수 있습니다. $D$는 데이터의 숫자로서 image-level일 경우는 1, pixel-level인 dense prediction task의 경우 pixel 개수가 됩니다. 따라서 dense prediction task의 $\hat{\sigma}_i^2$는 픽셀 $i$에 대한 variance가 되겠죠.
Equation 7의 목적 함수를 보면 첫 번째 항은 라벨 $y_i$에 대한 회귀, 두 번째 항은 uncertainty에 대한 regularization 항이라고 생각할 수 있습니다. 특히, uncertainty에 대한 라벨 없이 두 번째 항을 통해서 $\hat{\sigma}_i^2$가 무한대로 가지 않게끔 조절하는 regularize하는 것만으로 각 픽셀에 대한 uncertainty를 학습하는 것을 볼 수 있습니다.
$\hat{\sigma}_i^2$가 0이 되어 수치적으로 불안정하게 됨을 방지하기 위해 $s_i = log \hat{\sigma}_i^2$로 변수를 바꾼 후에 최종적으로 Equation 8의 목적 함수를 사용합니다. Equation 8의 첫 번째 항이 $exp(-s_i)$로 되었으며, 항상 적당한 양수를 가지게 되니 계산상으로 더 안정적이라 할 수 있습니다.
최종적으로 우리가 알고 싶은 픽셀 별 uncertainty는 Monte-Carlo 샘플링을 통해 추정한 $T$개의 $\hat{W}$에 대한 분산인 epistemic uncertainty와 데이터 노이즈 자체에 대한 분산 $\sigma^2$을 합쳐서 표현하게 됩니다.
Learned loss attenuation
Equation 8의 첫 번째 항을 보면 residual regression은 $exp(-s_i)$에 의해 loss 강도가 조절됩니다. 매우 노이지한 데이터에 대해서는 $s_i$가 작게 되므로 에러가 껴있는 라벨에 대한 regression에 대한 효과를 감소시키게 되는 역할을 하게 됩니다. 결과적으로 모델이 높은 불확실성을 가진 입력에 대해서는 작은 loss가 적용됩니다.
또한, Equation 8의 두 번째 항을 통해서 모든 입력에 대해 높은 불확실성을 출력하지 못하도록 합니다. 즉, 높은 불확실성에 대해서 페널티를 가하나 모델이 예측하는 regression에 대한 loss 기여는 $exp(-s_i)$를 통해 줄이는 것이죠. 또한, Equation 8은 regression fitting이 잘 안되어 residual error가 큰 입력에 대해 낮은 uncertainty를 가지지 못하도록 작용하는데, 작은 uncertainty는 $exp(-s_i)$가 크므로 high residual error를 더 강하게 페널티를 주기 때문입니다.
In classification task
Semantic segmentation과 같은 픽셀 별 classification 문제에서는 neural networks가 softmax함수를 통해 픽셀 $i$에 대한 클래스 벡터 $\hat{p}_i$를 도출합니다. 따라서 모델의 출력 (logit) $f_i$에 대해 Gaussian distribution을 설정하고 여기서 샘플링한 벡터 $\hat{x}_i$에 대해 softmax를 적용합니다.
따라서 픽셀 $i$에 대한 관측한 클래스 $c$에 대한 likelihood는 Equation 10과 같습니다.
Equation 10은 Gaussian distribution에 대한 기대값으로 해석적으로 구할 수 없습니다. 따라서 Monte carlo 방법을 통해 $\hat{x}_i$를 $T$번 샘플링한 결과에 대해서 Equation 11과 같은 목적 함수를 사용합니다.
Equation 8과 11을 비교해보면 regression의 경우에는 dropout을 통해 $\hat{W}$를 샘플링하지만 classification에서는 이를 사용하지 않습니다. 이는 classification task 자체가 각 클래스마다 확률이 정의되기 때문에 epistemic uncertainty가 entropy에 의해서 자연스럽게 정의되기 때문입니다. 따라서, 출력의 logit 단에서 epistemic uncertainty를 Monte carlo 방법을 통해 추정하고 aleatoric uncertainty는 $\sigma_i^W$에 의해 추정됩니다.
Experiment
실험은 pixel-wise depth regression과 semantic segmentation을 DenseNet을 이용해 수행합니다. Epistemic uncertainty의 경우 dropout 확률을 0.2, $T$는 50으로 고정합니다.
Semantic segmentation
CamVid와 NYUv2 데이터셋에 대해 semantic segmentation을 수행합니다. Table 1에서 볼 수 있듯이 두개의 uncertainty를 모델링한 것이 더 결과가 좋은 것을 볼 수 있으며, aleatoric uncertainty 모델링이 큰 기여를 했음을 알 수 있습니다.
Pixel-wise depth regression
Make3D와 NYUv2 Depth 데이터셋에 대해 pixel-wise depth regression을 수행합니다. 마찬가지로 uncertainty를 함께 모델링한 것이 더 성능이 좋음을 알 수 있습니다. 특히, Figure 5를 보았을 때 aleatoric uncertainty는 사진 상 깊은 곳과 은닉된 경계 등에서 매우 커짐을 볼 수 있습니다. 또한, epistemic uncertainty는 훈련 데이터 상에서 수가 적은 사람 등에 대해 데이터 부족으로 모델 자체가 예측하기 쉽지 않은 곳이 높은 것을 볼 수 있습니다.
Analysis
Uncertainty가 task 측면에서 어떤 영향을 가질 수 있는지 알아보기 위해 특정 threshold 이상의 uncertainty를 가진 픽셀을 제거할 때의 모델 성능이 얼마나 향상되는지 분석합니다. Figure 2에서 보면, precision과 RMS가 모델이 불확실한 픽셀이 많을 수록 낮아지는 것을 볼 수 있습니다.
또한, aleatoric uncertainty는 많은 데이터로부터 설명될 수 없고 out-of-data example (다른 트레이닝 셋의 데이터)에 대해서 증가하지 않는다는 것을 보입니다. Table 3을 보면 데이터 크기가 늘어날수록 모델 uncertainty인 epistemic variance는 줄어들지만, aleatoric variance는 거의 일정한 것을 볼 수 있습니다. 또한, 다른 데이터 셋에 대해 실험할 때는 aleatoric uncertainty는 영향을 받지만 모델 uncertainty는 크게 증가한 것을 알 수 있습니다.
결론적으로 aleatoric uncertainty는 데이터가 많은 상황과 여러 번에 dropout monte carlo 샘플링이 없으므로 실시간 애플리케이션 개발 측면에서 중요하며 epistemic uncertainty는 데이터가 적은 상황과 다른 도메인의 데이터셋에 대한 감지, 안전 측면에서 중요하다고 할 수 있습니다. 따라서 서로 상호 배제적이 아니라 두개의 uncertainty를 잘 조합해서 사용하는 것이 중요합니다.
참조
'Machine Learning Tasks > ETC' 카테고리의 다른 글
불확실성, Aleatoric and Epistemic Uncertainty (1) (0) | 2021.03.26 |
---|