- 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방식에 Bias Correction layer를 추가한 incremental learning 방법론을 제안합니다. Cosine normalization, less-forget constraint, inter-class separation 방법을 적용합니다.
1. 들어가며
이번 글에서는 CVPR 2019에서 발표된 Learning a Unified Classifier Incrementally via Rebalancing (LUCIR) 논문을 리뷰합니다. 이 논문은 LUCIR이라 불리며, 이번 글에서도 LUCIR이라고 지칭하겠습니다.
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별로 사용할 파라미터 또는 네트워크 등을 정해줌
LUCIR은 Distillation + Memory + Bias correction에 해당하는 방법 중 하나입니다.
2. 제안 방법
바로 제안하는 방법을 살펴보겠습니다.
2-1. 제안 방법 요약
우선 큰 그림을 먼저 잡고 시작하겠습니다.
저자들이 생각하는 기존 방식의 문제점들과 이를 위한 해결방안을 살펴보겠습니다.
저자들이 지적하는 기존 방식의 첫 번째 문제점은 new class의 feature norm의 크기가 old class의 feature norm 크기보다 크다는 것입니다. 이는 new class에 대한 편향을 야기합니다. 이는 BiC에서 제기한 문제와 결을 같이 하는데요. BiC에서 제안한 해결 방법과는 달리 LUCIR에서는 feature에 cosine normalization을 적용합니다.
기존 방식의 두 번째 문제점은 distillation loss가 적용되어도 embedding과 feature의 cosine similarity만 유지되면 되기 때문에 그림과 같이 전체적으로 shift 되는 현상을 일으킨다는 것입니다. 이를 해결하기 위해 저자들은 Less-Forget Constraint 항을 적용합니다.
기존 방식의 세 번째 문제점은 새롭게 학습한 new class embedding들과 기존의 old class embedding들이 공간상에 겹치게 존재한다는 점입니다. 이를 해결하기 위해 저자들은 Inter-Class Separation 항을 추가합니다.
2-2. 하나씩 자세히
이제 하나씩 자세히 살펴보겠습니다.
2-2-1. Cosine Normalization
먼저 cosine normalization입니다.
위의 그림은 old/new class들에 대해 각각 l2 norm과 bias값을 측정한 그래프입니다. L2 norm과 bias 모두 new class 값들이 확연하게 큰 모습을 확인할 수 있습니다. 이는 new class에 대한 편향을 야기하므로 이를 해결하기 위해 feature에 cosine normalization을 적용합니다.
- f : feature extractor
- 𝜃 : FC Layer weight
- b : FC layer bias
- f– : L2 Normalized Vector
왼쪽 기존 수식을 보면 Feature Extractor로부터 추출한 Feature에 Weight를 곱한 뒤 Bias를 더하는 연산을 볼 수 있습니다. 이렇게 기존 방법대로 연산하면 New Class에 대해 편중된 Weight와 Bias로 인해 New Class에 대한 Prediction으로 치우치게 되겠죠. 따라서 오른쪽 수식과 같이 FC 연산을 Cosine Similarity 연산으로 변경합니다. 이렇게 되면 Weight와 Bias의 큰 값에 영향을 받지 않고 오직 방향만 고려하여 연산하게 되어 문제를 해결할 수 있습니다.
2-2-2. Less-forget constraint
cosine normalization을 한 뒤 기존의 distillation loss를 적용하면 아래와 같습니다.
저자들은 이 방식에는 문제가 있다고 지적합니다.
위의 그림처럼 단순히 embedding과 feature의 각도를 유지하는 방향으로 학습하면 전체적으로 shift 될 수 있다는 것입니다. 따라서 저자들은 feature를 기존 모델의 feature에 가까워지도록 학습하는 loss를 제안합니다.
이때의 distillation loss값은 새로운 클래스의 개수에 따라 크기가 달라집니다. 따라서 이를 보정해주기 위한 상수를 아래와 같이 계산합니다.
새로운 클래스의 개수가 커짐에 따라 보정 상수값은 작아지는 모습을 볼 수 있습니다.
2-2-3. Inter-class separation
마지막으로 남은 문제는 기존 class embedding과 new class embedding이 같은 공간에 뭉친다는 것입니다. 이를 위한 margin ranking loss를 제안합니다.
- x : anchor of original class
Anchor가 되는 original class에 대해 같은 클래스의 feature는 당기고, 다른 클래스의 feature는 밀어내는, triplet loss의 형태를 취하고 있습니다. 결과적으로는 모든 Feature가 겹치기 않게 분포할 수 있게 됩니다.
4. Total loss
위의 세 가지 loss를 종합한 최종 loss는 다음과 같습니다.
- N : training batch
- No : old samples
3. 실험 결과
다음은 이렇게 제안한 방법의 실험 결과를 살펴보겠습니다.
3-1. CIFAR100 테스트
먼저 CIFAR100 테스트입니다.
테스트 방법은 다음과 같습니다.
먼저 절반의 클래스에 해당하는 50개 클래스를 학습시킵니다. 그 다음 각각의 phase 개수만큼 나눠 incremental learning 방식으로 학습한 뒤 최종 성능을 측정합니다.
비교하는 방법들은 다음과 같습니다.
- iCaRL-CNN : iCaRL 방법 + 일반적인 classifier
- iCaRL-NME : iCaRL 방법 + Nearest Mean of Exemplars
- Ours-CNN : 제안하는 방법 + 일반적인 classifier
- Ours-NME : 제안하는 방법 + Nearest Mean of Exemplars
- Joint-CNN : 모든 데이터로 학습하는 upper bound
결과를 보면 제안하는 방법이 iCaRL보다 성능이 높은 모습을 볼 수 있습니다. 또 재밌는 점은 iCaRL은 CNN보다 NME 방식의 성능이 더 좋지만, 제안하는 방법은 반대로 CNN이 NME보다 성능이 좋은 모습을 보입니다.
3-2. ImageNet 테스트
다음은 ImageNet 테스트입니다.
CIFAR100과 동일한 결과를 보입니다.
4. Ablations
다음은 ablations를 살펴보겠습니다.
4-1. The effect of each component / number of reserved samples
먼저 각 component의 효과와 reserved sample의 개수에 따른 효과를 살펴보겠습니다.
비교 대상은 다음과 같습니다.
- CN : Cosine Normalization
- LC : Less Forget Constraint
- IS : Inter class Separation
모든 component가 다 사용되었을 때 가장 성능이 좋으며 cosine normalization만 사용해도 iCaRL보다 높은 성능을 보입니다. 또한 b실험을 보면 reserved sample의 개수가 증가함에 따라 성능이 좋아지는 모습을 볼 수 있습니다.
4-2. The effect of adaptive loss weight
다음은 Less-Fotget Constraint에서 소개한 보정 상수 (adaptive loss weight)에 대한 실험입니다.
실험 결과는 다음과 같습니다.
Adaptive loss weigth를 적용했을 때 더 성능이 높은 모습을 볼 수 있습니다.
4-3. The comparison of confusion matrix
다음은 confusion matrix를 확인해보겠습니다.
비교 방법은 iCaRL입니다. iCaRL에 비해 확실히 new class에 치우지지 않은 모습을 확인할 수 있습니다.