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가지로 꼽음
    1. Old/New class 간의 Data Imbalance
    2. 시각적으로 유사한 클래스 수의 증가 
  • 학습데이터가 불균형한 경우 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에서의 성능저하 표이다. 

그림1  degradation은 final incremental step의  Accuracy와 모든 데이터를 사용하여 학습된 non-incremental classifier의 accuracy 사이의 격차다. 우리 방법(BiC)은 성능저하가 적다.

  • Incremental learning에 대한 a large number of classes 처리가 더 어려운 이유는 무엇인가?
    1. Training data 불균형  - 클래스간 margin이 작은 형태는 data imbalance에 민감하다.
    2. 다양한 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가 효과적으로 교정된 것을 확인했다. 

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를 처리한다. 
  • 우리의 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의 대규모 데이터셋에서 더 효과적이다.