[Paper Review] Improving Calibration for Long-Tailed Recognition (ICLR 2021) 논문 리뷰
업데이트:
✍🏻 이번 포스팅에서는 적은 이미지로 학습가능한 Improving Calibration for Long-Tailed Recognition 논문 리뷰를 꼼꼼하게 !!
- Paper : Improving Calibration for Long-Tailed Recognition (arxiv 2021 /Zhisheng Zhong, Jiequan Cui, Shu Liu, Jiaya Jia)
1. Abstract
본 논문에서는 Deep Neural Networks가 Training Datasets이 심한 Class-Imbalance가 있을 경우 성능이 저하될 수 있다고 말하고 있다.
Two-stage Method를 통해 Representation Learning과 Classifier learning 성능을 향상시키긴 했지만 여전히 Miscalibration이 발생한다.
이를 해결하기 위해 본 논문에서는 2가지 방법을 제안한다.
“Motivated by the fact that predicted probability distributions of classes are highly related to the numbers of class instances, we propose label-aware smoothing to deal with different degrees of over-confidence for classes and improve classifier learning.
For dataset bias between these two stages due to different samplers, we further propose shifted batch normalization in the decoupling framework.”
2. Introduction
많이 쓰이는 Open Dataset 같은 경우에는 일반적으로 각각의 Object, Class의 Instance 수와 관련해서 인위적으로 균형을 이루고 있다.
하지만 실제 사용되는 일반적인 데이터셋은 각각의 Class의 Instance 수가 심각하게 불균형한 Long-tailed Distribution을 보여주고 있다. Long-tailed Distribution애 대해 CNN을 학습시킬 때 성능이 크게 떨어진다.
여기서 Long-tailed Distribution 이란?

쉽게 말하면 클래스가 가지고 있는 데이터 양의 차이가 큰 것을 말한다.
예를 들면 병원에서 질병이 있는 사람과 질병이 없는 사람의 데이터를 모아야 한다고 했을 때 일반적으로 질병이 있는 사람의 데이터가 질병이 없는 사람의 데이터 수에 비해 현저하게 적다.
물론 병원 데이터 뿐 아니라 현실 데이터에서는 대부분 클래스 불균형 문제를 가지고 있다.
이러한 클래스 불균형으로 인해 특정 클래스의 Instance가 너무 높고 반대로 다른 클래스의 경우는 매우 낮기 때문에 마치 긴 꼬리 모양과 같이 생긴 것을 Long-tailed Distribution이라고 말한다.
다시 논문으로 돌아오면 최근에는 Two-Stage Approach를 통해서 성능이 One-stage Method와 비교했을 때 상당히 개선되었다.
Two-Stage Approach에서
Deffered Re-sampling(DRS)과 Deffered Re-weighting(DRW)방법이 있다.
-
- 일반적인 방법으로 불균형되어 있는 Dataset을 CNN Model로 학습시킨다.
-
- DRS로 클래스 균형 리샘플링을 사용하여 데이터 세트에서 CNN을 조정한다.
-
- DRW로 클래스에 다른 weight를 할당함으로써 CNN을 조정한다.
본 논문에서 참고한 2가지 논문과 링크는 아래에 첨부하겠습니다.
bbn: bilateral-branch network with cumulative learning for long-tailed visual recognition, CVPR 2020 Link
Decoupling Representation and Classifier for Long-Tailed Recognition, ICLR 2020 Link
첫 번째 논문에서는 Bilateral-Branch Network(BBN-Model)을 제안한다.
이 모델은 Representation learning과 classifier learning을 따로 수행하는 형태의 학습 방법을 의미한다.

위 모델은 2가지의 branch로 이루어져 있다.
1. Coventional learning branch
- Representation learning
- 원래 Long-tail distribution pattern을 그대로 학습하는 용도로 사용된다.
- Typical uniform sampler 사용
이 때 Typical uniform sampler는 클래스 불균형이 있는 Dataset을 그대로 sampling 하는 것을 의미한다. 따라서 이 때 학습할 때 data가 많은 class, 즉 Head 쪽 Data가 학습이 더 많이 진행되게 되고 결과적으로 feature의 학습인 representation learning이 더 잘 되게 만든다.
2. Re-balancing branch
- Classifier learning
- Coventional learning branch와 달리 Tail 쪽 Data를 조금 더 많이 sampling한다.
- Tail class에 대한 classification accuracy를 상승시키기 위한 것이다.
이 논문으로부터 얻을 수 있는 정보는 Original Data로 부터 Feature learning의 장점을 얻기 위해
Conventional branch를 통해서 Original distribution에 대해 학습을 진행한다.
이전 실험에서 Representation learning을 한 이후에 Classifier learning을 RW, RS 형태로 진행한 것처럼 Alpha 값을 조정하여 처음에는 uniform sampler로부터 학습을 시작하고,
이것으로부터 feature가 잘 학습된 Backbone 네트워크로부터 RS/RW 효과를 내는 Re-balancing branch로 부터 학습을 늘린다.
최종적으로
Conventional learning branch는 Majority Class에 preference를 더 가지도록,
Re-balancing branch는 Minority Class에 preference를 더 가지도록 학습이 된다.
따라서 Mix-up을 했을 때, 즉 두 가지 결과를 합쳤을 때 이런 Weight가 Balance한 형태로 가장 잘 맞춰지게 된다.
두 번째 논문에서는 Two-stage decoupling Model을 제안한다.
이 모델은 classifier re-training(cRT)와 Learnable weight scaling(LWS)가 있다.
1. classifier re-training(cRT)
Representation learning 부분을 고정시키고 Classifier만 Class Balanced 형식으로 다시 학습시키는 방법을 이야기 한다.
2. Learnable weight scaling(LWS)
Scaling 하는 정도는 학습을 통해서 얻는 방법을 의미한다.
Confidence Calibration
Calibration이란 모형의 출력값이 실제 Calibrated Confidence를 반영하도록 만드는 것을 말한다.
예를 들어 X의 Y1에 대한 모형의 출력이 0.8이 나왔을 때, 80% 확률로 Y1일 것이라는 의미를 갖도록 만드는 것이다.
일반적으로 현대 딥러닝같은 경우에는 Overconfident 성격을 띄고 있다.
예시로 아래 그림을 보면 1998년에 제시된 LeNet의 경우 모형의 출력이 0~1 사이에 균일하게 분포되어 있지만, ResNet의 경우 1근처에 집중되어 있는 것을 확인할 수 있다.
그 결과로 아래 그림을 보게 되면 ResNet의 경우 Confidence와 Accuracy가 많이 어긋나는 것을 확인할 수 있다.
모형의 출력이 실제 Calibrated Confidence를 반영한다면 Confidence와 Accuracy는 일치해야 한다.

모형의 예측값이 실제 확률을 반영한다는 의미를 가진 Calibration이 중요한 이유
실제 딥러닝이 응용될 때, 의사결정 프로세스중 하나의 구성요소가 될 경우가 많다.
의학적 진단을 예로 들자면, 딥러닝을 전적으로 신뢰해서 모든 판단을 딥러닝에게 맡기는 의사결정이 이루어지는 경우는 적고, 딥러닝 모델의 Confidence가 낮은 경우에만 사람이 보는 방식으로 사람이 할 일의 일부를 딥러닝이 하게 되는 구조가 대부분입니다.
이 경우 Confidence가 낮은 것만 사람이 재확인하는 방식이 가능한데 이러한 의사결정이 가능하기 위해서는 모형의 Confidence를 보는 것이 필요하고 이 Confidence가 Calibrated Confidence이여야 신뢰할 수 있는 값이라고 할 수 있다.
네트워크의 Calibration을 측정하는 방법으로 Expected Calibration Error(ECE)를 사용한다.
ECE는 Confidence와 실제 Accuracy의 Distribution의 차이를 측정하는 방법이다. 예측값을 균등하게 M묶음으로 나눈 뒤에 Accuracy와 Confidence차이의 평균을 계산하는 방법이다. 여기서 n은 샘플의 개수다.

아래 그림을 통해 클래스의 불균형 구성 비율 때문에 Long-tailed Datasets에서 훈련된 네트워크가 Miscalibrated하고 Over-Confident하다는 것을 보여준다.

- 원본 CIFAR-100 Dataset + CE(Cross Entropy)
- Long-tailed Datasets
- Long-tailed Datasets + cRT
- Long-tailed Datasets + LWS
위 결과값을 통해 Long-tailed Datasets를 훈련한 Network가 일반적으로 ECE가 높다는 것을 확인할 수 있다. 또한 cRT, LWS 에서도 마찬가지로 Over-Confidence를 확인할 수 있다.
위 현상은 다른 Long-tailed Datasets에서도 존재한다.
또 다른 문제는 Two-stage Decoupling이 Dataset bias 또는 Domain shift를 무시한다는 것이다.
이 문제는 1단계에서 Instanced balanced Dataset에 대해 먼저 훈련하고 2단계에서 모델이 Class-balanced dataset에서 훈련했을 때
Distribution of the dataset by different sampling ways가 일치하지 않는다는 것이다.
따라서 Dataset bias 문제를 해결하기 위해서 Batch normalization에 초점을 둔다.
위 문제들을 모두 해결하기 위해서 논문에서는 Mixup Shifted Label-Aware Smoothing model(MiSLAS)를 제안한다.
- Long-tailed Dataset에 대해 훈련된 Model이 Balanced Dataset에 대해 훈련된 Model 보다 훨씬 Miscalibrated and Over-confident
(이는 2단계 모델 역시 같은 문제점 발생) - mixup은 representation learning에는 긍정적인 영향을 주고 Over-confidence를 줄일 수 있지만 Classifier learning에서는 부정적 영향을 줄 수 있다.
따라서 Classifier learning과 Calibration을 향상시키기 위해 Label-aware smoothing을 제안한다.
Label-aware smoothing이란?
–>handle different degrees of over- confidence for classes - Dataset bias or Domain shift를 Decoupling Framework에서 해결하기 위해 성능을 개선할 수 있는 Shift learning on the batch normalization layer를 제안한다.
- Long-tailed Dataset 여러 개에서 MiSLAS를 검증하고 실험 결과를 보여준다.
3. Related Work
Re-sampling and Re-weighting
- Re-samling
- Over-sampling the Tail-class images
- Over-sampling은 대규모 데이터셋에 정기적으로 유용
- 소규모 데이터셋에서 Tail Class에 대한 Over-fitting 발생
- Under-sampling the Head-class images
- 데이터의 많은 부분을 폐기하므로 Deep model의 일반화 능력이 저하
- 데이터의 많은 부분을 폐기하므로 Deep model의 일반화 능력이 저하
- Over-sampling the Tail-class images
- Re-weighting
- Class & Instance에 서로 다른 weight를 할당
- Vanilla Re-weighting Method
- 클래스 샘플 수에 역비례하여 Class weight를 제공
- 대규모 데이터의 경우 학습시키는 동안 Deep Model을 최적화하기 어려움
- 유효 숫자를 사용하여 Class weight를 사용하여 위 문제 해결
- 각 인스턴스의 weight를 적응적으로 다시 매김
(ex.Focal loss -> 잘 분류된 예제에는 작은 weight, 분류하기 어려운 일부 예제에는 큰 weight를 부여하여 학습을 어려운 예제에 집중시킴)
Confidence calibration and regularization
- Calibrated confidence는 Classification model에서 중요
- Model capacity, Normalization, Regularization -> Network Calibration에 큰 영향을 미치는 것을 확인
- Mixup
Interpolation of input and labels으로 훈련하는 Regularization 기법- manifold mixup, Cut- Mix, Remix
- Mixup으로 학습된 CNN -> Better calibrated
- Label smoothing
another Regularization 기법
–>Over-confident를 줄이도록 Model을 만든다.- compute loss upon a soft version of labels
- relieve Over-fitting and increase Calibration and Reliability
Mixup은 학습을 진행할 때 랜덤하게 두 개의 샘플 (x(i),y(i)), (x(j),y(j))를 뽑아서 (x_dot,y_dot)을 만들어 학습에 사용하는 것을 말한다.
아래 그림은 Mixup에 대한 예시를 보여준다. lambda는 보통 0.5가 아닌 한 쪽 데이터에 치우치도록 0.1 혹은 0.2정도를 준다.

Label smoothing은 일반화 성능을 높이기 위해 사용하는 기법이다.
one-hot encoding처럼 정답 레이블에 1 아닌 레이블에 0을 부여하는 것이 아니라
정답 레이블이 아닌 레이블에도 약간의 레이블 값을 넣어주는 것을 의미한다.
아래 그림은 Label smoothing에 대한 예시이다.

Two-stage methods
- Deffered Re-weighting(DRW) & Deffered Re-sampling(DRS)
better than conventional one-stage methods- 더 나은 Feature에서 시작해서 adjust the decision boundary and locally tunes features
- Decomposing representation and classifier learning
- 먼저 Instance-balanced sampling으로 Deep Model을 학습
- 그 후 Parameters of Representation learning이 고정된 Class-balanced sampling으로 classifier를 미세 조정
- The cumulative learning strategy
- bridge the representation learning and classifier re-balancing
- requires dual samplers of instance-balanced and reversed instance- balanced sampler
- 먼저 Instance-balanced sampling으로 Deep Model을 학습
3.1 Study of mixup Strategy
Instance-balanced sampling & mixup
Instance-balanced sampling : The most general representation among all for long-tailed recognition
mixup : The Network trained with mixup are better calibrated
- Mixup in the Two-stage Decoupling framework
- Higher representation generalization
- reduce Over-confidence
Stage 1
180epochs 동안 ImageNet-LT에서 Original Cross-entropy Model, Two stage Models of cRT and LWS 학습시킨다
Stage 2
각각 10epochs에 대해 미세 조정한다.
두 단계에 대한 Training setup(with/without mixup alpha = 0.2)을 변경한다.
체크표시는 mixup이 적용했을 때 x표시는 mixup을 적용하지 않을 때이다.
(Top-1 Accuracy / ECE에 대한 표)

- Mixup을 적용했을 때
- Improvement of Cross Entropy는 can be ignored
- Stage 1에서 cRT, LWS 모두 성능이 크게 향상
- Stage 2에서 추가로 mixup을 진행시 개선 효과가 없거나 오히려 성능을 손상시킴
위 결과에 대한 이유를 설명하는 mixup의 역할
1. encourages representation learning
2. but, adverse or negligible effect on classifier learning
정리
즉, 1단계에서 mixup은 representation learning에는 좋은 효과를 보여주지만
2단계에서는 classifier learning에서는 효과를 보여주지 못하거나 오히려 악영향을 미친다.

위 그림은 Final classifier weight norms을 확인한 것이다. 위 그림을 봤을 때 mixup이 tail classes에 더 우호적일 수 있다는 것을 보여준다.
그래서 2단계에서 mixup을 추가했을 때 생기는 불안정한 결과를 개선하기 위한 방법으로 다음과 같은 방법을 추가로 제안한다.
-> Label-aware smoothing
3.2. Label-aware smoothing
Cross-entropy의 최적의 솔루션과 비교하여,
Label-aware smoothing
- encourage a finite output, more general and remedying overfit
또한 인스턴스 수가 더 많은 클래스인 Head class가
더 다양한 예를 많이 포함하고 있기 때문에 예측 확률이 Tail class보다 더 좋다.
따라서 더 큰 Label smoothing factor를 부여해야 한다고 논문에서는 말하고 있다.
그리고 Label-aware smoothing은 Cross-entropy보다 더 복잡하기 때문에
Generalized classifier learning framework에 적용해야 한다고 말하고 있고
예시로는 위에서 배운 cRT 혹은 LWS를 말한다.
cRT와 LWS중에서 대규모 데이터셋에서 LWS가 더 좋은 결과를 주기 때문에
실험에서는 LWS + Label-aware smoothing으로 결과를 확인한다.
결과는 아래 그림과 같다.

왼쪽부터 Head, Medium,Tail 순으로 결과를 보여준 것이다.
(연한 파랑 : LWS + Cross-Entropy , 짙은 파랑 : LWS + Label-Aware Smoothing)
LWS + Cross-Entropy의 경우엔
Head와 Medium에서 실제로 1.0에 가까울 정도로 높은 Over-confident를 보이는 반면에,
LWS + Label-Aware Smoothing의 경우엔
Over-confident가 많이 감소한 것을 확인할 수 있다.
3.3. Shift Learning on Batch Normalization
인스턴스 균형 샘플링으로 1단계에서 학습한 후 클래스 균형 샘플링으로 2단계에서 학습한다.
위 Two-stage training framework는 Transfer learning의 변형으로 볼 수 있는데
Transfer learning 관점에서 Two-stage training framework를 보면
backbone부분을 고정하고 Classifier를 튜닝하는 것은 unreasonable 하다.
다른 샘플링 방법이기 때문에 Head, Medium, Tail 구성 비율이 다르고, 따라서 Bias가 존재한다.
2가지 방법을 참고해서 사용
- AdaBN & TransNorm
- update the running mean μ and variance σ
- fix the learnable linear transformation parameters α and β for better normalization in Stage-2
4. Experiments
4.1.1 Datasets and Setup
1. CIFAR-10 and CIFAR-100
50000장 Training & 10000장 Validation + 10개 카테고리 혹은 100개 카테고리
Long-tailed Dataset 사용
2. ImageNet-LT and Places-LT
- ImageNet-LT
115800 이미지 + 100 카테고리 (class cardinality:5~1280) - Places-LT
184500 이미지 + 365 카테고리 (class cardinality:5~4980)
3. iNaturalist 2018
437500 이미지 + 8142 카테고리
4.1.2 Implementation Details
SGD optimizer with momentum = 0.9 to optimize network
- MiSLAS model with ResNet-32 + 160~180 epochs에서 0.1로 learning rate 감소
- Use cosine learning rate -> MiSLAS model + ResNet- 10, 50, 101, 152
4.2 Ablation Study
Calibration performance

CIFAR-100-LT with IF 100 데이터셋으로 했을 때
Calibration performance에 대한 결과이다.
본 논문에서 제시하는 MiSLAS 모델일 때가 가장 Confidence gap이 적은 것을 보여준다.
Comparing re-weighting with label-aware smoothing

class balanced cross-entropy와 Label-aware smoothing을 비교했을 때 결과이다.
위 결과에서 알 수 있듯이 Label-aware smoothing을 했을 때
Over-confidence도 크게 감소하고 Accuracy도 상승하는 것을 확인할 수 있다.
4.2.1 Result

위 결과 표를 통해 알 수 있는 점
- 1단계에서 mixup을 했을 때 Accuracy증가 + ECE 감소
- Shift learning on BN + Label-aware smoothing까지 했을 때 Accuracy 약간 증가 + ECE 크게 감소
Comparison with State-of-the-arts

전체적으로 본 논문 이전에 사용되었던 방법들이랑 비교했을 때
MiSLAS가 압도적으로 높은 Accuracy + 좋은 Calibration임을 보여준다.
대규모 데이터 셋인 a,b,c에서도 MiSLAS가 높은 성능을 가지고 있는 것을 확인할 수 있다.
5 Conclusion
- Long-tailed Dataset을 학습한 모델은
balanced dataset을 학습한 모델보다 miscalibrated and overconfident - 첫 번째 솔루션 - Mixup
- 1단계에서 mixup 사용 -> representation learning에서 좋은 효과(classifier learning에서는 오히려 역효과)
- 두 번째 솔루션 - Label-aware smoothing
- LWS를 사용하여 Over-confidence를 크게 감소시킨다.
- 세 번째 솔루션 - Shift learning on the batch normaization
- Two-stage method framework에서 Dataset bias를 줄이기 위해서 사용 -> 성능 향상
- 논문에서 제시하는 MiSLAS 모델이 가장 좋은 Accuracy + Calibration 을 보여줌
- 대규모 데이터 셋에서도 마찬가지 좋은 성능을 보여줌
댓글남기기