- 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 핵심 리뷰
내용 요약
기존의 Dynamic Structure Incremental Learning 방법론을 모두 종합한 CPG 방법을 소개합니다. PackNet의 Pruning 방법과 Piggyback의 Masking 방법, 그리고 PAE의 Extension 방법을 모두 종합하여 Compacting Pruning Growing (CPG) 방법을 제안합니다.
1. 들어가며
이번 글에서는 NIPS 2019 에 발표된 Compacting, Picking and Growing for Unforgetting Continual Learning (CPG) 논문을 리뷰합니다. 이 논문은 CPG라고 불리며, 이번 글에서도 CPG라고 지칭하겠습니다.
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별로 사용할 파라미터 또는 네트워크 등을 정해줌
CPG는 Dynamic structure에 해당하는 방법 중 하나입니다.
2. 제안 방법
바로 제안 방법을 살펴보겠습니다.
2-1. Compacting (pruning & retraining)
첫 번째 단계는 compacting 단계입니다.
New task를 받기 전에 gradual pruning과 retraining을 통해 compacting 과정을 수행합니다. 이 과정은 PackNet의 과정과 동일합니다.
2-2. Picking
다음은 picking 과정입니다.
New task를 학습하기 위해, 이 전까지 학습된 파라미터 중 중요한 파라미터를 고르는 과정을 수행합니다. 이 과정은 Piggyback과 동일하게 수행됩니다. Binary mask에 threshold를 적용하는 방식입니다. 이렇게 최종적으로 선택된 old task의 파라미터는 fix 됩니다. 그리고 남은 파라미터와 mask M은 new task를 학습합니다.
2-3. Growing
이때 new task를 학습하면서 목표 성능에 다다르지 못하면 growing과정을 수행합니다. 이는 PAE와 마찬가지로 파라미터를 확장하는 단계입니다.
2-4. Compacting (pruning & retraining)
이렇게 완성된 new task의 파라미터는 point 1의 과정으로 돌아가 gradual pruning을 거친 뒤 old task의 최종 선택된 파라미터와 합쳐서 최종 파라미터를 완성합니다.
지금까지의 과정을 요약하면 다음과 같습니다.
3. 실험 결과
다음은 이렇게 제안한 방법의 실험 결과를 살펴보겠습니다.
3-1. CIFAR100 (DEN / CPG / fine tuning 비교)
먼저 CIFAR100 데이터셋에 대해 DEN / CPG / fine tuning 방식을 비교한 결과입니다.
실험 방식은 CIFAR100의 100개 클래스를 5개 클래스씩 20개의 task로 나누어 incremental learning 방식으로 성능을 측정합니다. 그림 a, b, c, d는 각각 task가 진행됨에 따라 task1,5,10,15의 성능을 나타냅니다. DEN모델은 task가 진행될수록 old task의 성능이 지속적으로 하락하는 모습을 볼 수 있습니다. 반면 CPG모델은 task가 진행되어도 old task의 성능이 유지되는 모습입니다.
3-2. CIFAR100 (PackNet / PAE / CPG 비교)
다음은 CIFAR100 데이터셋에 대한 PackNet / PAE / CPG 모델의 성능 비교 결과입니다. 먼저 세 모델의 차이점을 보겠습니다.
- PackNet : expansion, picking 이 안됨
- PAE : expansion은 되지만 picking 과정이 없음
- CPG : expansion, picking 가능
결과는 다음과 같습니다.
Exp는 몇 배의 파라미터를 사용했는지, Red는 몇 배의 파라미터가 남아 있는지를 의미합니다. 결과를 보면 CPG는 PAE보다 적은 파라미터를 사용하면서 가장 좋은 성능을 낸 모습을 볼 수 있습니다.
3-3. CIFAR100 (scratch / fine tuning / CPG 비교)
다음은 CIFAR100 데이터셋에 대한 scratch / fine tuning / CPG 방식의 성능 비교 결과입니다.
- scratch : 각 task별 모델을 따로 할당, scratch로 학습
- fine tuning : 각 task별 모델을 따로 할당, fine tuning만 수행
결과는 다음과 같습니다.
Scratch, fine tuning방식은 task마다 모델을 할당하므로 20배의 파라미터를 사용했습니다. 반면 CPG는 1.5배의 파라미터만을 사용하면서도 더 좋은 성능을 보입니다.
3-4. Fine grained image classification tasks
다음은 6개 데이터셋에 대한 fine grained image classification task결과입니다.
첫 task인 ImageNet에 대해서는 CPG모델이 scratch 방식보다 낮은 성능을 보입니다. 하지만 task가 진행될수록 성능이 더 좋아지는 모습을 보입니다.