Search

[작성중]딥러닝에서의 calibration

참고할만한 논문

Neural Network(NN)의 성능! performance는 보통 ‘정확도'를 뜻한다
정확도는 여러 metric으로 측정될 수 있지만 크게 나누면
1.
데이터가 얼마나 잘 분류되었는지
2.
예측한 것 중 어느정도 맞았는지
이정도로 분류할 수 있겠다.
accuracy, precision, recall(==sensitivity), f1-score등이 대표적인 measure이다.
그렇지만 calibratione도 정확도 못지않은 매우 중요한 성능 이라고 할 수 있다.
참고할만한 논문의 첫번째 논문에서는 현대의 NN이 과거의 NN보다 정확도는 향상되었으나 calibration이 좋다고 주장한다.

그래서 calibration이 뭐죠?

간단히 말해 모델의 출력값이 실제 confidence를 반영해야한다는 것입니다.
즉, 입력 X를 클래스 2개 (개와 고양이)로 분류한다고 했을 때, 출력값이 개에 대해서 0.8이라면 이는 개일 확률이 80%임을 뜻해야 한다는 것!
이는 매우 중요합니다

왜?

예를 들어 의학적 진단을 위한 보조 용도로 딥러닝이 활용된다고 해보자( 의료 영역에서는 전적인 결정을 딥러닝에 맡기기 어렵다 )
이런 경우에는 confidence가 낮은 경우만을 사람이 검토하는 등으로 노동력을 줄일 수 있다.
예를 들어 false negative가 매우 치명적인 암진단의 경우라면 confidence가 낮은 negative결정만을 사람이 검토할 수 있다.
이런 경우 confidence의 calibrated confidence여야 의미가 있고, 신뢰할 수 있겠죠!
위 그림은 참고할만 한 논문 [1]에서 보여진 그림인데,
LeNet : 모델의 출력이 0~1사이에 균일하게 분포한다
ResNet : 모델의 출력이 1 근처에 집중되어있다
모델의 출력이 실제 confidence를 반영한다면, confidence와 accuracy가 일치해야한다.
이런 것을 주장하는 그림입니다
그러면서 이제 현대의 딥러닝은 일반적으로 overconfident하다고 합니다