- 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 방법인 PackNet을 소개합니다. 하나의 Task를 학습한 뒤 Pruning과 재학습 과정을 통해 기존 지식은 유지하며 새로운 지식을 학습하는 방법을 제안합니다.
1. 들어가며
이번 글에서는 CVPR 2018 에 발표된 PackNet: Adding Multiple Tasks to a Single Network by Iterative Pruning 논문을 리뷰합니다. 이 논문은 PackNet 이라고 불리며, 이번 글에서도 PackNet 이라고 지칭하겠습니다.
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별로 사용할 파라미터 또는 네트워크 등을 정해줌
PackNet은 Dynamic Structure 에 해당하는 방법 중 하나입니다.
2. 제안 방법
이번 챕터에서는 PackNet의 제안 방법에 대해 살펴봅니다. 크게 Training (학습), Pruning, Inference (추론) 과정으로 나누어 살펴봅니다.
2-1. 학습 방법
먼저 PackNet의 학습 방법을 살펴보겠습니다.
PackNet 학습 방법의 핵심은 Train & Pruning 과정입니다. 학습은 일반적인 방법과 동일하게 모델을 학습합니다. 그리고 나서 Pruning을 진행합니다. 이는 Pruning을 통해 확보한 Parameter를 다음 Task 학습에 사용하기 위함입니다. 하지만 이렇게 Pruning을 거치면 기존에 학습했던 지식도 많이 사라지겠죠? 이를 보완하기 위해 Pruning 후 기존 Task를 재학습해줍니다.
결론적으로 PackNet의 학습 방법은 Task 당 (Train -> Pruning -> Re-Train) 과정을 반복하는것이라고 할 수 있습니다.
2-2. Pruning 방법
이때 Pruning도 다양한 방법이 존재하는데요. PackNet에서는 단순히 큰 값을 갖는 가중치만 살리는 방법을 사용합니다. 이는 큰 값을 갖는 가중치가 중요하다고 판단한다는 의미겠죠.
2-3. Inference 방법
이렇게 학습이 완료된 뒤 Inference 과정도 단순합니다. Pruning을 하며 Masking 된 파라미터가 생길텐데요. 이러한 파라미터들은 Masking 한 채로 Matrix Multiplication 연산을 수행합니다.
3. 실험 결과
이번 챕터에서는 다양한 실험 결과를 통해 PackNet의 성능을 살펴보겠습니다.
3-1. Fine Grained Classification Tasks
먼저 Fine Grained Classification Task 실험 결과를 살펴보겠습니다.
위 그림은 ImageNet, CUBS, Stanford Cars, Flowers 데이터셋에 대한 Incremental Learning 성능을 비교한 표 입니다. Classifier Only는 ImageNet Pretrained Model의 Classifier만 재학습한 방식입니다. LwF는 Distillation 방식의 Incremental Learning 방법입니다. Individual Networks는 모든 데이터셋을 개별 모델로 학습한 결과이니 Upper Bound 성능이라고 할 수 있습니다.
결과를 보면 우선 기존 방식인 LwF보다 훨씬 우수한 성능입니다. 이는 단순 Distillation Loss 보다는 Pruning 방식이 기존 지식을 더 유지하며 학습할 수 있음을 보여줍니다.
또한 Upper Bound 성능인 Individual Networks의 성능과 비교해봤을때, 훨씬 적은 파라미터로 크게 차이 안나는 성능을 보이는 모습입니다.
LwF와 조금 더 자세히 비교해보겠습니다.
위 그림은 새로운 Task를 학습할때 마다의 성능을 측정한 그래프 입니다.
LwF는 새로운 Task를 학습할 때 마다 기존 Task 성능이 크게 하락하는 모습입니다.
반면 PackNet은 새로운 Task를 학습해도 기존 Task 성능이 유지되는 모습을 볼 수 있습니다. 이는 PackNet은 Pruning & Re-Train 과정을 통해 기존 Task를 학습한 뒤에는 해당 파라미터는 고정되기 때문입니다.
3-2. Large Scale Dataset Task
다음은 대용량의 데이터셋에 대한 성능을 살펴보겠습니다.
위 그림은 ImageNet과 Places365 데이터셋에 대한 Incremental Learning 성능을 비교한 표입니다. Jointly Trained Network는 ImageNet과 Places365 데이터셋을 통합하여 한번에 학습한 방법입니다.
결과를 보면 PackNet은 Jointly Trained Network보다 성능이 좋은 모습입니다. ImageNet을 학습한 뒤 Places365 데이터셋을 학습해야 하는 PackNet이 더 어려운 조건이었음에도 불구하고 더 좋은 성능을 보이고 있습니다. 또한 마찬가지로 Upper Bound 성능과 크게 차이가 없으면서도 훨씬 적은 파라미터를 사용하는 모습을 볼 수 있습니다.