본 논문 리뷰는 유투버 '동빈나'의 꼼꼼한 논문 설명 영상과 아래의 아카이브 논문을 기반으로 정리했습니다.
논문 링크 : https://arxiv.org/abs/1611.07725
해당 논문은 CVPR 2017 논문으로 Continual Learning milestone 논문 중하나이며, class inremental learning에서 baseline으로 사용되고 있는 method이다. 해당 논문에서는 이전 continual method인 Learning without forgetting(LWF)과 비교하며, 리허설 메모리를 사용하여 LWF의 성능을 개선했다.
-Introduction
해당 논문에서 제시하는 iCaRL은 다음과 같은 특징이 있다.
1. classifier와 data representation을 동시에 학습한다.
2. 해당 method는 class-incremental learning 상황을 가정한다.
ㆍClass incremental learning
Class-incremental learning은 새로운 class가 점진적으로 추가되는 상황을 말하며, 해당 시나리오는 다음과 같은 3가지 조건을 요구한다.
1. 각각의 시점에서 발생하는 서로다른 class를 가지는 example을 가지는 data stream을 학습할 수 있어야 한다.
2. 현재 시점까지 관찰한 class들의 competitive classifier를 제공해야 한다.
3. 이전 시점의 데이터를 저장하는 memory 공간의 경계를 유지하거나, 현재 시점까지 본 class 수에 대해서 memory공 간이 매우 느리게 증가해야한다.
해당 논문은 위의 3번 특징을 이용한다는 것이 핵심이며, continual 상황에서 현 시점에서는 이전에 추가된 class의 학습데이터 전체를 알지 못하지만, bounded된 메모리가 있다고 가정하여 이전시점 일부의 학습데이터에 접근할 수 있다고 가정한다.
이러한 Continual learning에서의 class-incremental learning 상황에서는 다음과 같은 두가지 문제점을 해결해야한다.
1. Catastrophic forgetting: 새로운 task(여기서는 새로운 class가 포함된 새로운 dataset)를 학습할 때, 이전에 배웠던 knowledge를 쉽게 잊게 되는 현상
2. 한정적인 computing resource, 즉 무한정하게 memory를 증가시킬 수 없음.
ㆍiCaRL의 구성요소
1. Nearest-mean-of-exemplars : feature 정보가 가장 가까운 class를 찾는 방식으로 분류를 수행 (일반적인 classifier X)
2. Prioritized exempler selection : 각 class마다 우선순위에 맞게 중요한 이미지부터 순서대로 저장
3. Representation Learning : knowledge distillation과 prototype (대표 feature) rehearsal을 이용
-Nearest Mean of Exemplars Classification
위 Algorithm1은 iCaRL 분류 알고리즘이다. 해당 알고리즘에 대한 과정을 설명하면, input x인 test image를 분류하기 위해서 2,3번째 줄의 exemplar set과 feature map이 필요하다. for문 안의 mean-of-exemplar는 각 클래스마다 저장된 exemplar들의 feature에 대한 평균값(mean, prototype)을 계산한다. 그 다음 input x 한장의 이미지가 주어졌을때, feature extractor를 통과시킨 feature를 계산하여, 가장가까운 prototype의 class를 return한다.
-iCaRL Incremental Train
Algorithm 1을 사용하여 inference하기 위해서는 Feature extractor를 학습시켜야하며, 각 class를 대표할 수 있는 exemplar set을 K(memory size)에 저장해놔야한다. 이러한 학습과정은 다음 Algorithm 2를 통해 진행된다.
학습 모델은 CNN 기반으로 feature extractor를 학습한다. 해당 논문에서는 특정 시점까지의 총 class개수와 동일한 sigmod output nodes를 포함한 classifier의 형태로 아키텍처를 만든다. 이때, CNN은 representation learning 목적으로 사용하는 것이므로, sigmoid를 사용해도 분류 기능에 어려움이 없으며 총 class 개수를 몰라도 상관이 없다.
Algorithm 2의 학습과정을 살펴보면, UPDATEREPRESENTATION을 통해 새로운 데이터 set과 기존에 저장한 K개의 데이터로 현재 모델을 학습한다. 그리고 m <- K/t를 통해서 class당 저장할 수 있는 이미지의 크기를 구하고, REDUCEEXEMPLARSET을 통해 exemplar set의 class당 이미지 갯수를 m개로 줄여준다. 그리고 나서 CONSTRUCTEXEMPLARSET을 통해서 새로운 exemplar set인 P를 만들어준다.
-iCaRL Update Representation
Algorithm 3는 Algorithm 2에서 추상화했던 Representation 학습과정을 자세하게 나타낸다. //from combined training set은 새로운 학습데이터와 저장된 exemplars를 합치는 부분을 나타내며, 첫번째 for문에서는 모든 데이터를 모델에 통과시키는데, 이때 새로운 class를 제외하고 이전까지의 class에 대한 결과를 계산한다. 이는 distillation에 이용하기 위함이다. (knowledge distillation을 통해서 기존의 network와 유사하게 동작하도록 함.)
결과적으로 두가지 loss term을 이용하여 학습하는데, 첫번째 term은 Classification Loss, 두번째 term은 Distillation Loss를 나타내며, 첫번째 term을 통해 새로운 class에 대해서 학습하고, 두번째 term을 통해서 이전 클래스에 대해한 기능을 유지한다.
이 때 각 클래스는 개별적으로 binary classification하도록 학습한다. (Yes or No)
-Exemplar Management
Algorithm 4, 5는 Algorith 2에서 추상화된 두 함수를 자세하게 표현해주는데, Algorithm 4는 중요한 데이터를 메모리에 남겨두는 과정이다. class y의 모든 데이터를 feature extractor에 통과시킨 값들을 //current class mean과 같이 평균시키면, mean vector를 얻을 수 있을 것이다. 그다음 m만큼을 iteration하여 중요한 순서대로 m개의 data를 얻는데, 뒤의 시그마 텀은 지금까지 뽑힌 데이터를 고려하여 평균하기 위해서 추가된 것이다. 결과적으로 지금까지 뽑힌 p를 고려하여 mean과 가장 가까운 순서대로 데이터가 뽑힐 것이다.
Algorithm 5는 class당 데이터를 줄이는 과정이다. p는 이미 Algorithm 4에 의해서 중요한 순서대로 정렬되어 뽑혀있기 대문에 앞에서 순서대로 m개를 선택하면 된다.
-Experiment Result
iCaRL은 class-incremental learning 상황에서 기존의 방법과 비교하여 보다 더 우수한 성능을 보여준다.
iCaRL은 class-incremental learning 상황에서 골고루 좋은 성능을 보이는 반면, (b) LWF는 최근 batch에서는 성능이 잘 나오지만 이전 batch에 대해서는 성능이 저하되는 것을 확인할 수 있었다. (c)는 앞에서 학습했던 class에 대해서는 우수한 성능을 보여주지만 새로운 task에 대해서는 성능이 좋지 못한 것을 확인할 수 있다. (d)는 이전의 학습했던 것에 대한 forgetting이 심하여 최근 학습한 데이터에 대해서만 성능이 좋은 것을 확인할 수 있었다.
그 밖의 실험들은 해당 논문을 참고하길 바란다.
참고자료 링크 : [동빈나, 꼼꼼한 논문 설명]
https://www.youtube.com/watch?v=3QQioDQCbuA