AI
Large Scale Incremental Learning'CVPR 2019
아인샴
2024. 5. 3. 15:45
목적 : incremental learning에서 겪는 이슈 해결의 아이디어를 얻을 수 있지 않을까?
Abstract
- incremental learning에서의 new class learning에 대한 catastrophic forgetting 이슈
- missing old classes data 때문에 급격한 성능감소
- knowledge distillation 과 keeping a few exemplars 를 통해 retain knowledge 시도
- 이 방법은 large number of classes로 확장하기는 어려움
- 논문은 이 문제의 원인을 2가지로 꼽음
- Old/New class 간의 Data Imbalance
- 시각적으로 유사한 클래스 수의 증가
- 학습데이터가 불균형한 경우 visually similar class는 특히나 더 어려워지기에 논문은 이러한 data imbalance를 해결하기 위한 방법 제안한다.
- last FC layer가 새로운 클래스에 대한 strong bias 가 있다는 걸 발견
- linear model이면 이 bias를 고칠 수 있다.
- 2개의 bias parameters를 통해 ImageNet(1000 cls) 와 MS-Celeb1M(1만 cls)에서 좋은 성능을 보였다.
- 최첨단 알고리즘에서 11.1% 13.2% 성능이 향상되었다.
Introduction
- 얼굴인식과 같은 시스템은 이미 학습된 얼굴을 잊지 않고 새로운 사람을 추가할 수 있어야 하는데 대부분의 딥러닝은 과거데이터 not available 경우에는 심각한 성능저하 catastrophic forgetting을 겪는다.
- (a)old class 분류성능유지 (b)old/new class간 균형유지의 두가지 과제가 있다. distillation은 (a)를 해결하기 위해 사용되었으나 클래스 수가 늘어나면 성능저하를 보인다. 다음은 클래스 수 100 > 1000에서의 성능저하 표이다.
- Incremental learning에 대한 a large number of classes 처리가 더 어려운 이유는 무엇인가?
- Training data 불균형 - 클래스간 margin이 작은 형태는 data imbalance에 민감하다.
- 다양한 incremental step동안 visually similar classes 를 갖게될 가능성도 높다.
- the boundary 는 sample이 더 많은 클래스를 선호하도록 유도된다.
- 대규모 incremental learning를 위해 data imbalance를 해결하기 위한 다음의 해결방법을 제시한다.
- last fc layer에서 강한 bias를 발견했기에 이걸 바탕으로 bias를 수정하기 위한 방법 Bic(bias correction)을 제안한다. fc계층 뒤로 2개의 파라미터를 가진 simple linear model 을 추가했다.(그림 2)
그림2. BiC overview. old class에서 온 exemplars와 new class에서 온 samples 가 train/val set으로 나뉜다. Training set은 conv+FC(1단계) 학습에 쓰이고 val set은 bias correction(2단계)에 쓰인다. - BiC(Bias correction)는 1st stage에서 conv 층과 FC계층을 learning 후 2nd stage에서 learned 된다. old class로부터의 exemplar와 new class로부터의 sample data가 first stage용 training set 과 second stage용 validation set으로 나뉜다. Validation set은 feature space에서 old and new 클래스의 real distribution을 approximation하는데 도움이 되며 이를 통해 FC layer의 bias를 estimate 할 수 있다. 우리는 small validation set을 통해 bias가 효과적으로 교정된 것을 확인했다.
- last fc layer에서 강한 bias를 발견했기에 이걸 바탕으로 bias를 수정하기 위한 방법 Bic(bias correction)을 제안한다. fc계층 뒤로 2개의 파라미터를 가진 simple linear model 을 추가했다.(그림 2)
Related Work
- Incremental learning : old class에 대해서 3가지로 나뉜다. 실제 데이터가 필요한 경우, 합성데이터가 필요한 경우, 아무것도 필요하지 않은 경우로 나뉘어진다.
- Without using old data :
- [9]는 fc layer 얼림 → feature extraction layer의 shared weights 변화를 방지함으로써 old task의 performance를 유지하려 했다.
- [10]은 new task 최적화 시에 주요 weights를 제약하는 방식으로 remembering old task 기술을 제안했다. 단점은 이러한 important weight들이 old/new task에서 충돌한다는 것.
- [13]은 knowledge distillation을 적용해 old task 성능유지를 제안했는데 이 두 작업을 나눠 multi-task learning을 했다. classifier 를 다르게 점진적으로 학습했으며 이는 learning classifier incrementally 랑은 다르다.
- [23]은 objection detecting incrementally 에 knowledge distillation 을 적용했다.
- [18] retain knowledge를 위해 Autoencoder를 적용했다.
- [25,26]은 new task에 대한 knowledge dictionary를 갱신하고 old task에 대한 dictionary coefficient를 유지했다. (?)
- Using synthetic data :
- old task 에 대한 합성데이터를 replay 하기 위해 GAN을 사용했다.
- [22]는 target으로서의 old solver's response 을 target으로 하는 합성데이터에 ce loss를 적용했다.
- [27]은 root MSE 에러를 이용해 합성데이터에 대한 old task의 response(아마도 추론)를 학습했다.
- 하지만 [22,27]은 생성모델의 능력에 의존정이었고 복잡한 객체와 장면에 어려움을 겪었다.
- Using exemplars from old data:
- 이전데이터를 일부 필요로 하는 방법으로 [19]는 소수의 exemplars 제안했다. [2]는 모든 incremental step에 대한 classificer를 유지하고 그들을 distillation으로 사용했다.
- old/new 클래스 사이 imabalance를 완화하고자 balanced finetuning과 temporary distillation을 도입했다.
- [14] sample training이 다른 tasks에서 하나하나 사용되는 동안 continuous한 learning 이 제안되었다. 새로운 task가 오면 old tasks의 output인 soft max를 통한 CE loss를 제한한다.
- [28] : network를 hierarchilcally 하게 성장시키는 training도 제안되었다. 이와 유사하게 [21]은 layers 수를 늘려서 new coming data를 처리한다.
- Without using old data :
- 우리의 BiC 방법은 Using exemplars from old data(3rd)에 속하며 [19,2] 처럼 이전 클래스의 exemplars를 유지한다. 데이터 불균형을 처리하는 방법이 다른데 먼저 classifier layer의 strong bias를 찾은 다음 linear model 에서 small validation set을 이용해 correct 한다
- small validation set : exemplars 의 small subset 으로 학습데티어에서 제외되었으며 bias 교정을 위해서만 사용된다. [19,2]최신기술로 비교컨데 BiC방법은 1000개 이상 class의 대규모 데이터셋에서 더 효과적이다.