- Incremental Learning 설명 – 정의, 필요성, 데이터셋, 대표 논문
- [arxiv 2016] Less-forgetting Learning in Deep Neural Networks (LFL) 핵심 리뷰
- [NIPS 2017] Continual learning with deep generative replay (DGR) 핵심 정리
- [CVPR 2017] iCaRL: Incremental Classifier and Representation Learning 핵심 리뷰
- [PNAS 2017] Overcoming catastrophic forgetting in neural networks (EWC) 핵심 리뷰
- [PAML 2017] Learning Without Forgetting (LwF) 핵심 리뷰
- [NIPS 2018] Memory Replay GANs: learning to generate images from new categories without forgetting(MeRGAN) 핵심 리뷰
- [ECCV 2018] Piggyback: Adapting a single network to multiple tasks by learning to mask weights 핵심 리뷰
- [ECCV 2018] End-to-End Incremental Learning (EEIL) 핵심 리뷰
- [CVPR 2018] PackNet: Adding Multiple Tasks to a Single Network by Iterative Pruning
- [ECCV 2018] Memory Aware Synapses: Learning what (not) to forget (MAS) 핵심 리뷰
- [CVPR 2019] Learning to remember:A synaptic plasticity driven framework for continual learning (DGM) 핵심 리뷰
- [NIPS 2019] Compacting, Picking and Growing for Unforgetting Continual Learning (CPG) 핵심 리뷰
- [ICMR 2019] Increasingly packing multiple facial-informatics modules in a unified deep-learning model via lifelong learning (PAE) 핵심 리뷰
- [CVPR 2019] Learning a Unified Classifier Incrementally via Rebalancing (LUCIR) 핵심 리뷰
- [CVPR 2019] Learning without Memorizing (LwM) 핵심 리뷰
- [CVPR 2019] Large Scale Incremental Learning (BiC) 핵심 리뷰
- [CVPR 2020] Conditional Channel Gated Networks for Task-Aware Continual Learning (CCGN) 핵심 리뷰
- [CVPR 2020] Maintaining Discrimination and Fairness in Class Incremental Learning (WA) 핵심 리뷰
- [ECCV 2020] PODNet: Pooled Outputs Distillation for Small-Tasks Incremental Learning 핵심 리뷰
- [WACV 2020] Class-incremental Learning via Deep Model Consolidation (DMC) 핵심 리뷰
- [CVPR 2021] DER: Dynamically Expandable Representation for Class Incremental Learning 핵심 리뷰
내용 요약
기존의 Distillation + Exemplar 방식에 Weight Align기능을 추가한 Incremental Learning 방법론을 제안합니다. New Class Weight Norm을 Old Class Weight Norm과 같은 비중으로 보정해줍니다.
1. 들어가며
이번 글에서는 CVPR 2020에서 발표된 Maintaining Discrimination and Fairness in Class Incremental Learning (WA) 논문을 리뷰합니다. 이 논문은 WA라고 불리며, 이번 글에서도 WA라고 지칭하겠습니다.
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별로 사용할 파라미터 또는 네트워크 등을 정해줌
WA는 Distillation + Memory + Bias correction에 해당하는 방법 중 하나입니다.
2. 제안 방법
바로 제안하는 방법을 살펴보겠습니다. 문제 의식을 같이 하는 BiC, LUCIR과 비교하며 이해하면 좋습니다.
2-1. Baseline
먼저 baseline 모델을 살펴보겠습니다.
저자들은 CE + Knowledge Distillation loss 모델을 baseline으로 잡습니다.
이때 CE loss는 다음과 같습니다.
Knowledge Distillation loss는 다음과 같습니다.
2-2. Distillation loss의 한계
저자들은 baseline 모델의 가장 큰 문제점으로 Knowledge Distillation loss를 말합니다.
CIFAR100을 incremental learning 방식으로 테스트한 결과를 살펴보겠습니다.
결과를 보면 CE로 학습할 때 보다 CE+KD로 학습했을 때 old 클래스에서의 에러가 줄어드는 모습을 볼 수 있습니다. (1333개 -> 1012개) 하지만 old 클래스를 new 클래스로 구분하는 경우는 증가하는 모습을 볼 수 있습니다. (4027개 -> 4314개)
왜 그럴까요?
이는 모델 입장에서 생각해보면 new class라고 대답해서 틀리는 게 old class로 구분했다가 틀리는 것보다 loss를 적게 받기 때문입니다. 게다가 incremental learning 특성상 task가 추가될수록 잘못 학습한 모델로부터 distillation이 되면서 이 문제는 점점 크게 부각됩니다. 따라서 저자들은 이를 보정해줄 필요가 있다고 주장합니다.
2-3. Methodology
이제 저자들의 methodology를 보겠습니다.
제안 방법은 크게 2개의 단계로 나뉩니다.
첫 번째 단계는 baseline 모델 (CE + KD)로 학습하는 단계입니다. 저자들은 이 단계에서는 discrimination을 유지하는 단계라고 표현합니다.
두 번째 단계가 사실상 저자들의 제안 방법인데요. old class와 new class의 norm을 공평하게 맞춰주는 단계입니다. 먼저 weigth vector의 norm을 분석한 결과를 보겠습니다.
Old class의 norm 대비 new class의 norm이 상대적으로 큰 모습을 볼 수 있습니다. 따라서 이를 normalize 해 줄 필요가 있습니다. 이에 저자들은 old class norm와 new class norm의 평균값으로 new class norm을 보정해주는 방법을 제안합니다.
3. 실험 결과
다음은 이렇게 제안한 방법의 실험 결과를 살펴보겠습니다.
3-1. Effect of weight aligning
먼저 WA의 효과를 살펴보겠습니다.
다음은 CIFAR100의 incremental learning 성능을 방법에 따라 분류한 표입니다.
또 confusion matrix도 같이 살펴보겠습니다.
결과를 보면 KD가 단독으로 사용된 var3에서는 약간의 성능 향상을 볼 수 있습니다. WA를 사용할 때 성능 향상폭이 가장 크며 WA + KD + WA를 전부 사용했을 때 가장 큰 성능 향상이 있었습니다.
3-2. Comparison to other methods
다른 방법들과 비교를 해보겠습니다.
다음은 ImageNet을 incremental learning 방법으로 실험한 성능입니다.
또 다음은 CIFAR100을 incremental learning 방법으로 실험한 성능입니다.
WA와 가장 유사한 방법은 BiC입니다. WA는 BiC와 달리 별도의 validation data를 사용하지 않고도 더 높은 성능을 보이고 있습니다.
4. Ablations
다음은 ablations를 살펴보겠습니다.
먼저 그림 a를 보겠습니다.
그림 a는 weight를 제한했을 때의 효과에 대한 실험 결과입니다. Weight를 positive로 제한했을 때 (빨강) 성능 향상이 있었습니다. 저자들은 이에 대해 weight norm이 output logit과 더 일치해지기 때문이라고 해석합니다.
다음은 그림 b를 보겠습니다.
그림 b는 norm의 종류에 따른 효과에 대한 실험 결과 입니다. L1 norm과 L2 norm 종류는 성능에 큰 영향을 주지 않음을 볼 수 있습니다.
다음은 그림 c를 보겠습니다.
그림 c는 FC layer의 bias 효과에 대한 실험 결과입니다. Bias를 추가하면 약간의 성능 향상이 있는 모습을 볼 수 있습니다.
다음은 그림 d를 보겠습니다.
그림 d는 exemplar selection strategy에 따른 효과에 대한 실험 결과입니다. Herding 방식과 random 방식을 비교했을 때 큰 성능 차이는 없는 모습을 볼 수 있습니다.