- 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 핵심 리뷰
내용 요약
MAS(Memory Aware Synapses) 방식의 Incremental Learning 방법론을 제안합니다. Gradient를 사용하여 측정한 parameter의 중요도에 기반한 regularization 방식을 사용합니다.
1. 들어가며
이번 글에서는 ECCV 2018에 발표된 Memory Aware Synapses: Learning what (not) to forget (MAS) 논문을 리뷰합니다. 이 논문은 MAS라고 불리며, 이번 글에서도 MAS라고 지칭하겠습니다.
![[ECCV 2018] Memory Aware Synapses: Learning what (not) to forget (MAS) 핵심 리뷰 1 전체-흐름-속에서-보기](https://blog.kakaocdn.net/dn/rxRw7/btrqAeyOF4B/VkOkwPFnpAbFGjcvAcvCRK/img.png)
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별로 사용할 파라미터 또는 네트워크 등을 정해줌
MAS는 Regularization에 해당하는 방법 중 하나입니다.
2. 제안 방법
바로 제안하는 방법을 살펴보겠습니다.
2-1. Estimating parameter importance
저자들의 핵심 아이디어는 “모든 parameter를 regularization하지 말고, 중요한 parameter만 regularization 하는 것”입니다.
이때 중요한 parameter는 어떻게 정의할까요? 저자들은 “parameter값이 약간 변하더라도 feature 값이 크게 변하는 parameter”를 중요한 parameter라고 정의합니다. 이를 수식으로 표현하면 아래와 같습니다.
![[ECCV 2018] Memory Aware Synapses: Learning what (not) to forget (MAS) 핵심 리뷰 2 feature-gradient](https://blog.kakaocdn.net/dn/crQ5Bm/btroMqINEmC/qzi5qgcUKd7aVWHwOxTss0/img.png)
좌변은 파라미터 𝜃가 미세하게 𝛿만큼 변했을 때의 feature값의 차이입니다. 이는 우변의 gradient로 표현할 수 있습니다. 따라서 parameter의 중요도는 아래와 같이 gradient의 크기로 표현할 수 있습니다.
![[ECCV 2018] Memory Aware Synapses: Learning what (not) to forget (MAS) 핵심 리뷰 3 parameter-importance](https://blog.kakaocdn.net/dn/cavbmn/btroPGwOG7d/81C4S8oX8IrUxNdSkDeXSK/img.png)
그럼 이제 저자들의 의도대로 parameter의 gradient가 크면 새로운 task로 학습시킬 때 backprogation을 적게 하고, 반대로 gradient가 작으면 새로운 task를 학습시킬 때 정상적으로 backpropagation을 해서 parameter를 변화시키면 됩니다.
이때 문제가 하나 있습니다. 보통 딥러닝 모델들은 매우 큰 차원을 갖는 함수인데, 각 차원별로 전부 gradient를 구해 backpropagation을 해줘야 한다는 것입니다. 따라서 차원을 줄이기 위해 F를 그대로 쓰지 않고 F의 L2 norm 제곱 값을 사용합니다.
![[ECCV 2018] Memory Aware Synapses: Learning what (not) to forget (MAS) 핵심 리뷰 4 l2-norm-제곱](https://blog.kakaocdn.net/dn/bbG0ds/btroMpiTJtY/6KpP9egrRvEKCGmB1vDek0/img.png)
2-2. Learning a new task
위에서 설명한 방법으로 새로운 task를 학습하기 위한 loss function은 아래와 같습니다.
![[ECCV 2018] Memory Aware Synapses: Learning what (not) to forget (MAS) 핵심 리뷰 5 loss-function](https://blog.kakaocdn.net/dn/VWMFW/btroPe8ILNU/0kvqsMJZR2ZqlcqxL67PKK/img.png)
우변에 regularization 항이 추가된 모습을 볼 수 있습니다. 이때는 위에서 설명한 parameter importance에 해당합니다. 모든 파라미터에 대해 일관된 규제를 하는 방식이 아닌, 중요도가 큰 파라미터에만 집중적으로 변화량에 대해 규제한다고 생각할 수 있습니다.
2-3. Connection to Hebbian learning
다음은 신경과학에서의 Hebbian Learning Theory와의 상관관계를 살펴보겠습니다.
먼저 Hebbian learning theory는 다음과 같습니다. “하나의 자극에 대해 같이 활성화되는 뉴런 시냅스들은 연결이 더 강화되어, 그 결과 해당 자극에 대한 성능이 더 좋아진다.”
이를 딥러닝 관점에서 해석하자면 다음과 같습니다. “파라미터의 중요도는 뉴런의 activation correlation에 의해 결정된다고 할 수 있다.” 이를 수식으로 표현하면 다음과 같습니다.
![[ECCV 2018] Memory Aware Synapses: Learning what (not) to forget (MAS) 핵심 리뷰 6 뉴런-activation-correlation](https://blog.kakaocdn.net/dn/TWQUg/btroNJ2rDg2/VDYC530kUMBhPXDVZysjXK/img.png)
다시 저자들의 모델로 돌아오겠습니다.
위에서 제안한 방법은 모델 전체의 파라미터에 영향을 주는 방법입니다. 이를 layer마다 나눠서 생각해보겠습니다.
![[ECCV 2018] Memory Aware Synapses: Learning what (not) to forget (MAS) 핵심 리뷰 7 local-방식](https://blog.kakaocdn.net/dn/loLRY/btroPq8TrVQ/OIGHxhkn9KKQjvbSjm6jJ0/img.png)
위 그림의 Local 한 방식처럼 layer마다 나눠서 생각하면, 위에서 구한 gradient는 다음과 같습니다.
![[ECCV 2018] Memory Aware Synapses: Learning what (not) to forget (MAS) 핵심 리뷰 8 local-방식의-gradient](https://blog.kakaocdn.net/dn/bbSkNV/btroPV8mPnG/e2V2KcRHSPr78n7whrLK51/img.png)
이때 gradient는 다음과 같이 표현됩니다.
![[ECCV 2018] Memory Aware Synapses: Learning what (not) to forget (MAS) 핵심 리뷰 9 img](https://blog.kakaocdn.net/dn/brdW7Q/btroQcB12Y3/cS9a3CxqSAfTRzBNmcjUv0/img.png)
이때 activation이 ReLU일 때는 다음과 같이 표현할 수 있습니다.
![[ECCV 2018] Memory Aware Synapses: Learning what (not) to forget (MAS) 핵심 리뷰 10 local-방식의-최종-gradient](https://blog.kakaocdn.net/dn/v2Mcm/btroOEfw8hF/Kokkds2MefO0N2wdOoanm0/img.png)
결국 위에서 본 Hebbian learning을 수식으로 표현한 것과 같은 식이 되었습니다. 따라서 저자들은 본인들의 제안 방식은 신경과학적 관점과 동일하다고 주장합니다.