[논문리뷰] On Calibration of Modern Neural Networks

GyuSeok Lee·2022년 7월 18일
2

기본정보

1) Problem Definition

이 논문에서 주장하는 문제점은 현대 딥러닝 모델들이 Over-confident하다는 것이었다. Confidence란 classification 기준으로 모델이 최종적으로 내뱉은 확률값이라고 생각하면 된다. 이때 모델의 output으로 나온 확률값이 굉장히 높은 값으로 나오게 되는데, 이에 반해서 accuracy는 상대적으로 작은 값을 보인다. 이를 over-confident라고 한다.

본 논문에서는 모델의 confidence값과 accuracy가 identity하게 대응되도록 함(Well-Calibrated)으로써 reliable한 모델을 만들고자 하였고 이를 Calibration이라고 정의한다.

이 부분에서 반드시 짚고 넘어가고 싶은 부분은 이 논문의 task는 confidence와 accuracy의 값이 대응이 되는 것이지, 각각의 값들을 높이는 것에 있지 않다는 점이다.

2) Key Idea

다양한 Calibration Method들이 이전에도 연구가 되어왔다. (e.g., histogram기반, Bayesian기반 등)

본 논문에서는 Temperature Scaling을 제시한다. 사실 Temperature Scaling기법은 이전의 Hinton 교수님의 Knowledge Distillation에서도 사용이 되었던 방법론이다. 해당 논문에서 classification을 수행할 때, 우리가 특정 class를 구하기 위해 단순히 argmax를 해서 hard label을 구하는 데, 이때 argmax 직전의 확률값(soft label)이 가진 정보를 바탕으로 지식증류(Knowledge Distillation)을 수행하는 것에서 Temperature Scaling이 사용되기도 하였다. (각 class에 대한 확률값을 어느정도 soften 시켜줌)

이와 같은 맥락에서 본 논문에서도 모델의 output으로 나온 logit(-무한대 ~ +무한대)에 대해서 temperature을 나눈 값을 사용함으로써 logit값을 soften시키고 이를 통해 probability의 값을 soften시켰다.

이때 중요한 지점은 temperature scaling을 적용한다고 해서, 모델의 accuracy에는 영향을 끼치지는 않는다. 즉, 모델이 내 뱉는 각 class별 확률의 값이 soften되지만, 각 확률간의 높고낮음관계는 여전히 유지된다.

3) How to use

현재 나는 의료데이터에 Calibration을 적용하고자 Tempearture Scaling을 이용하고 있다.

4) More Reference

나중에 시간이 나면 베이지안 approach를 공부해보고 싶다.
간단히만 설명하면, 베이지안을 이용하면 우리가 구하고자 하는 파라미터가 상수가 아니라 분포의 형태를 갖게 되는데, 이는 uncertainty를 보장하고자 이와 같이 표현된다.

5) 새롭게 알게된 점

  • 먼저 Temperature Scaling을 Post-Process(후처리) 방식으로 적용된다. 무슨 말이냐면, 미리 모델을 잘 학습시킨 이후에 Optimal한 Temperature을 구하는 방식으로 Two-Step으로 이뤄진다. 이를 End2End형태로 구할 수 있을 것 같아서 실험을 해봤는데, 성능이 매우 안좋아진다. 아마도 Temperature Scaling에 적용대상이 되는 Logit값이 variation이 매우 큰 형태로 나오다 보니 Temperature가 제대로 학습이 안되는 것으로 판단된다. 실제로 temperature가 optimal한 point에 다달았음에도 불구하고, 다른 모델의 파라미터들이 덜 학습됌에 따라 계속해서(혹은 어쩔수 없이?) 학습이 되는 현상을 보았다.

  • NLL(Cross Entropy) Loss가 학습하는 방식을 생각해보자.
    기본적으로 해당 손실함수는 target class에 대한 probability를 높이는 방식으로 학습이 진행된다.
    그렇게 만들어진 model을 가지고 test를 수행하면 우리는 다음과 같은 정의를 내릴 수 있다.
    1) 먼저 높은 확률값을 모델이 내뱉으므로 이는 NLL의 관점에서 Overfit하다고 할 수 있다.
    2) 그리고 우리는 이를 over-confident하게 모델이 학습된다고 표현한다.
    3) 또한, probability가 높으므로 이는 상대적으로 낮은 Entropy를 내뱉는다. (FigureS1 참고)
    4) 놀랍게도 이와 같은 특성은 모델의 accuracy를 높이는데 도움을 주었다. (이는 실험적으로 논문에서 보여주었다 -> Figure3 참고)
    5) 결론적으로 현대 딥러닝의 성능(Accuracy=classification error = 0/1 Loss)은 매우 좋아지고 있지만, Probabilitic error(NLL)과 miscalibration은 점점 안좋아 지고 있다.

  • 따라서 Temperature Scaling을 사용하면 logit값을 soften하게 만들어줄 수 있고, 결과적으로 확률값을 soften하게 만들어주게 된다. 이를 통해 NLL에 대해 overfit함을 피할 수 있게 되어 결과적으로 NLL값을 줄이게 되며, 동시에 Calibration Error역시 감소하게 된다.

아래는 내가 직접 실험했던 결과물이다. (실제로 Temperature Scaling을 적용한 후, NLL과 ECE가 모두 감소함을 알 수 있다)

profile
AI Researcher

0개의 댓글