`[논문] On Calibration of Modern Neural Networks: Calibration이란?`에서 이어지는 내용입니다.
측정
그렇다면 이러한 calibration은 어떻게 나타낼 수 있으며, 기존의 결과값과 어떠한 관계성을 지니고 있을까요? 수학적으로 perfect calibration은 다음과 같이 측정할 수 있습니다.
$$\mathbb{P}\left(\hat{Y} = Y \mid \hat{P} = p\right) = p, \quad \forall p \in [0, 1]$$
그리고, 본 논문에서는 3가지 측정 방법을 제시하고 있습니다.
Reliability Diagrams
이 방법은 정확도의 기댓값(confidence)과 관측된 정확도를 각각 x,y축으로 한 뒤, confidence 기준 빈으로 나누어 각각에 대해 계산하여 calibration에 대해 측정하는 방법입니다. 아래의 식은 각각 confidence와 accuracy입니다.
$$\text{conf}(B_m) = \frac{1}{|B_m|} \sum_{i \in B_m} \hat{p}_i,$$
$$\text{acc}(B_m) = \frac{1}{|B_m|} \sum_{i \in B_m} \mathbf{1}(\hat{y}_i = y_i),$$
예시로는 Figure 1의 아랫부분을 보면 됩니다. (아래의 그림 참고)
Expected Calibration Error (ECE)
Reliability Diagrams는 좋은 시각화 도구이지만, 요약적인 정보를 위한 통계가 필요할 때가 있습니다. ECE는 이런 목적에 사용되며 모델의 confidence와 실제 accuracy 간의 차이를 측정하는 지표입니다. 하지만, confidence와 accuracy의 두 분포를 비교하는 완전한 통계적인 방법은 사실 존재하지 않습니다. 때문에 과거 연구자들은 ECE를 변형 및 확장하여 이러한 한계를 극복하려 했습니다. 그 중 하나의 방법으로 confidence와 accuracy의 기댓값 차이를 계상하는 것이 있습니다. 본 논문에서도 이를 기준으로 소개합니다.
때문에 ECE는 정확히는 이러한 차이의 기댓값을 계산하는것을 목표로 합니다. 구체적으로는 ECE가 다음과 같이 계산됩니다.
$$\text{ECE} = \sum_{m=1}^{M} \frac{|B_m|}{n} \left| \text{acc}(B_m) - \text{conf}(B_m) \right|,$$
여기서,$n$은 전체 샘플 수를 나타내며, $B_m$은 각 구간의 샘플 집합입니다.
각 구간에서 정확도와 신뢰도의 차이를 계산하고, 이 차이에 해당 구간의 샘플 수를 전체 샘플 수로 나눈 가중치를 곱하여 전체적으로 평균을 구합니다. 이 값이 ECE로, 모델이 얼마나 잘 보정되었는지를 하나의 값으로 요약해줍니다.
Negative log likelihood (NLL)
NLL은 확률 모델의 성능을 평가하는 데 사용되는 표준적인 지표입니다. 딥러닝 분야에서는 이 지표를 교차 엔트로피 손실(cross entropy loss)이라고 부르기도 합니다. NLL은 주어진 데이터에 대해 모델이 얼마나 잘 작동하는지를 측정하며, 값이 작을수록 모델이 데이터를 더 잘 설명한다고 판단할 수 있습니다.
$$\mathcal{L} = -\sum_{i=1}^{n} \log\left(\hat{\pi}(y_i \mid \mathbf{x}_i)\right)$$
는 주어진 입력 $x_i$에 대해 출력 $y_i$가 나올 확률을 모델이 예측한 값이며, $n$은 샘플의 수입니다.
NLL은 모델이 실제 데이터 분포를 얼마나 잘 근사하는지를 측정하는 지표로, 이 값이 작을수록 모델이 더 정확하게 데이터를 예측하고 있다는 뜻입니다.
'통계 & 머신러닝 > 통계적 머신러닝' 카테고리의 다른 글
[Torch Uncertainty] Installation (0) | 2024.08.22 |
---|---|
[논문] On Calibration of Modern Neural Networks: Results (0) | 2024.08.20 |
[논문] On Calibration of Modern Neural Networks: Calibration (0) | 2024.08.20 |
[논문] On Calibration of Modern Neural Networks: Miscalibration! (0) | 2024.08.19 |
[논문] On Calibration of Modern Neural Networks: Calibration이란? (0) | 2024.08.19 |