[CVPR 2019] Large Scale Incremental Learning (BiC) 핵심 리뷰

This entry is part 17 of 22 in the series Incremental Learning

내용 요약

기존의 distillation + exemplar 방식에 Bias Correction layer를 추가한 incremental learning 방법론을 제안합니다. 기존 방식은 새로운 Class에 대해 지나치게 Biased 된다는 점을 문제로 지적합니다. 이를 해소하기 위한 Bias Correction 방법을 제안합니다.

1. 들어가며

이번 글에서는 CVPR 2019에 발표된 Large Scale Incremental Learning (BiC) 논문을 리뷰합니다. 이 논문은 BiC이라고 불리며, 이번 글에서도 BiC라고 지칭하겠습니다.

전체-흐름-속에서-보기
그림1. Incremental Learning 전체 흐름

Incremental Learning을 방법론에 따라 크게 구분하면 위의 그림과 같이 구분할 수 있습니다.

  • Regularization : 이전 task에서 학습한 네트워크의 파라미터가 최대한 변하지 않으면서 새로운 task를 학습하도록 유도
  • Distillation : 이전 task에서 학습한 파라미터를 새로운 task를 위한 네트워크에 distillation
  • Distillation + Memory : 이전 task의 데이터를 소량 메모리로 두고 새로운 task학습 때 활용
  • Distillation + Memory + Bias correction : 새로운 task에 대한 bias를 주요 문제로 보고, 이에 대한 개선에 집중
  • Distillation + Memory + Dynamic structure : task에 따라 가변적으로 적용할 수 있는 네트워크 구조를 사용
  • Distillation + Memory + Generative model : 이전 task의 데이터를 generative model을 사용하여 replay 하는 방식을 사용
  • Dynamic structure : Pruning / Masking 등을 사용하여 task별로 사용할 파라미터 또는 네트워크 등을 정해줌

BiC는 Distillation + Memory + Bias correction에 해당하는 방법 중 하나입니다.

2. 제안 방법

바로 제안하는 방법을 살펴보겠습니다.

제안-방법
그림2. 제안 방법

2-1. 학습 1단계

저자들은 학습 단계를 크게 2가지 단계로 구분하고 있습니다.
먼저 1단계를 살펴보겠습니다. 엄밀히 말하면 1단계는 저자들의 제안 방법은 아니고 기존 방법을 의미합니다.

학습-1단계
그림3. 학습 1단계

1단계 학습은 base line에 해당하는 classification + distillation loss를 학습하는 단계입니다. old + new class로 이루어진 전체 클래스에 대해 classification loss를 적용합니다.

classification-loss
그림4. classification loss

다음은 old class 만으로 distillation loss를 적용합니다.

distillation-loss
그림5. distillation loss

최종 loss는 다음과 같습니다.

final-loss
그림6. final loss

여기까지는 LFL, LwF 등의 기존 방법들과 크게 다르지 않은 모습입니다.

2-2. 문제 분석

위의 baseline까지만 학습했을 때의 문제를 분석해보겠습니다.

image 6
그림7. 문제 분석

먼저 그림 a를 보겠습니다.
다양한 방법의 Incremental Learning 성능을 비교하고 있는 그래프입니다. 위에서 살펴본 1단계 방법(파란색)의 성능이 가장 낮은 모습입니다. 흥미로운건 Baseline 모델에서 FC Layer의 Bias만 제거해도 (빨간색) 성능이 크게 향상된다는 점입니다. 이를 통해 Baseline 방식으로 학습했을 때 Bias에 문제가 있음을 알 수 있습니다.

이어서 그림 b를 보겠습니다.
그림b는 Baseline으로 학습한 모델의 Confusion Matrix입니다. 그림을 보면 대부분의 예측이 마지막 학습 데이터인 80~100 Class에 치우쳐 있음을 알 수 있습니다.

이 두 가지 관찰을 통해 이런 결론을 내릴 수 있습니다. Baseline 방법은 마지막에 배우는 클래스에 치우친 학습을 합니다. 그 결과 대부분의 문제에 대해 마지막 데이터 클래스에 치우쳐서 대답을 하죠. 이 상태에서 FC Layer의 Bias만 제거해줘도 치우침이 많이 개선된다는 것을 알 수 있습니다.

2-3. 학습 2단계

이제 이를 해결하기 위한 저자들의 제안을 살펴보겠습니다.
먼저 전체 데이터를 old/new 모두 train/val로 나눠 총 4 등분합니다.

데이터-4등분
그림8. 데이터 4등분

앞서 1단계의 base line방법으로는 train (new + old) 데이터를 학습합니다. 다음은 val (new + old) 데이터로 bias correction 수행합니다. new class에 대해서 bias가 치우쳐져 있으므로 new class에 대해서만 correction 작업을 수행합니다. 최종 output에 대해 old 클래스에 대해서는 그대로 유지하고, new class에 대해서만 linear correction 작업을 추가하면 최종 output은 다음과 같습니다.

bias-correction-output
그림9. bias correction output

New Class Output에 대해서는 𝛼,𝛽를 추가하여 Linear Correction을 적용한 모습을 볼 수 있습니다. 이제 여기에 Classification Loss를 적용하면 수식은 다음과 같습니다.

bias-correction-학습
그림10. bias correction 학습

이 상태에서 다른 모든 파라미터는 고정한 채 Bias Correction을 위한 파라미터인 𝛼,𝛽만 학습을 진행합니다. 이렇게 되면 최종적으로 New Class에 대한 Bias 문제를 보정해줄 수 있겠죠?

3. 실험 결과

다음은 이렇게 제안한 방법의 실험 결과를 살펴보겠습니다.

3-1. Comparison on large datasets (ImageNet1000, Celeb-10000)

먼저 큰 사이즈의 데이터셋 (ImageNet1000, Celeb-10000)에 대한 incremental learning 성능 테스트입니다.

comparision-on-large-datasets
그림11. comparison on large datasets

비교할 방법론은 LwF, iCaRL, EEIL과 BiC입니다. 우선 incremental learning 테스트의 특성상 학습이 진행될수록 data imbalance가 심해지게 됩니다. 이는 new class가 추가되며 exemplar의 old class는 점점 줄어들어야 하기 때문입니다. 이를 생각하고 위의 실험 결과를 보면, 실험이 진행될수록 (data imbalance가 심해질수록) 다른 방법들과의 성능 차이가 더 커지는 모습을 볼 수 있습니다. 이를 통해 BiC가 data imbalance에 더 강인하다고 생각할 수 있습니다.

3-2. Comparison between different scales (ImageNet100, ImageNet1000)

다음은 다른 scale의 데이터셋 (ImageNet100, ImageNet1000)에 대한 incremental learning 성능 테스트입니다.

comparision-between-different-scales
그림12. comparison between different scales

비교할 방법론은 LwF, iCaRL, EEIL과 BiC입니다. 마찬가지로 다른 방법론들 대비 가장 좋은 성능을 보여줍니다.

3-3. Comparison on a small dataset (CIFAR100)

다음은 작은 데이터셋 (CIFAR100)에 대한 incremental learning 성능 테스트입니다.

comparision-on-a-small-dataset
그림13. comparison on a small dataset

비교할 방법론은 LwFiCaRLEEIL과 BiC입니다. 마찬가지로 다른 방법론들 대비 가장 좋은 성능을 보여줍니다.

4. Ablations

다음은 ablations를 살펴보겠습니다.

4-1. The impact of bias correction

이번 논문의 핵심인 bias correction의 효과를 살펴보겠습니다.

the-impact-of-bias-correction
그림14. the impact of bias correction

총 4가지 방법에 대한 실험을 진행했습니다.

  • baseline1 : classification loss 로만 학습
  • baseline2 : classification + distillation loss 로만 학습
  • BiC : 이번 논문
  • upper bound : classification + distillation loss로 학습한 뒤 fcl만 모든 데이터셋을 사용하여 재학습
    실제로 incremental learning에서 사용할 수 없는 세팅으로서, upper bound로 설정

결과 confusion matrix를 보면 baseline 대비해 BiC는 new class에 대한 bias가 많이 상쇄된 모습을 볼 수 있습니다.

Series Navigation<< [CVPR 2019] Learning without Memorizing (LwM) 핵심 리뷰[CVPR 2020] Conditional Channel Gated Networks for Task-Aware Continual Learning (CCGN) 핵심 리뷰 >>
0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
Scroll to Top