AI
iCaRL: Incremental Classifier and Representation Learning
아인샴
2024. 4. 17. 14:07
iCaRL
iCaRL: Incremental Classifier and Representation Learning (CVPR 2017)
https://github.com/srebuffi/iCaRL
선정이유 : 언급을 자주하더라. ProCA랑 PLDCA에서 둘 다 언급한 논문이다.
Abstract
- AI Main 이슈 : data stream으로 부터 시간이 지날 수록 더 많은 개념을 학습 하는 learning system.
- 여기서 제안하는 iCaRL : 적은 클래스에 대한 학습데이터만 있으면 되고 새로운 데이터는 점차 추가될 수 있다.
- iCaRL이 강한 classifier와 data reprenstation 을 동시에 학습하며, 이는 fixed data만 쓰며 DL architecture와 호환되지 않던 이전의 작업과 대조된다.
- 실험은 CIFAR-100/IMAGENET ILSVRC 2012 데이터셋을 써서 다른 전략이 빠르게 실패하는 것을 우리는 오랜기간 점진적으로 많은 클래스를 학습하는 것을 보였다.
1. Introduction
- 이전의 지식을 잊지 않고 배우는 사람과 달리 AI는 모든 클래스를 미리알고 training data에 동시에 임의로 접근할 수 있는 형태로만 학습할 수 있다.
- large-scale과 현실의 dynamic한 분류화에 대한 속성을 처리기 위해 보다 유연한 전략이 필요하다.
- 최소한 visual object 분류시스템은 새로운 학습데이터가 나타났을 때, 새로운 클래스를 점진적으로 학습할 수 있어야 한다. (그래서 우리는) 다음 클래스 증분자격을 위한 세가지 속성을 필요로 했다.
- ⅰ)다양한 시간에 발생하는 다양한 클래스의 examples로부터 data stream을 통한 학습이 가능해야 한다.
- ⅱ)여태 관찰된 multi-클래스들은 anytime이든 competitive한 classifier를 제공해야 한다.
- ⅲ) 여태 발견된 클래스 수에 비해서 연산량이나 메모리 사용량은 고정되어있거나 비교적 천천히 증가해야 한다.
- 앞서ⅰ / ⅱ 가 class증분학습의 주된 표현 이고 ⅲ 은 기존 다중클래스 분류기를 retraining하는 사태를 방지하기 위해 새로운 데이터가 들어오면 모든 strong trainig example을 저장한다.
- 대부분의 기존 multi class 기술의 한계 : fixted class수만 처리할 수 있었고 모든 training data가 동시에 available해야 했음. => 따라서 ⅰ / ⅱ 는 자주 위배됨
- 나이브하게 SGD & class incremental data stream으로 classifier 학습을 해볼 수도 있었다. 그러면 분류정확도를 빠르게 떨어뜨리는 원인이 되고 이를 catastrophic forgetting이나 catastophic interference라고 한다.
- ⅰ / ⅱ 를 지키는 몇 안되는 existing techniques은 주로 fixed data representation 의 제한적인상황만 고려했다. 그래서 classifier와 feature representation을 동시에 배우는 deep architectures에 확장(적용) 될 수가 없기에 경쟁력이 없었다. 관련 tasks는 section 10에서 말한다.
- iCaRL : 위에 제시된 모든 기준을 충족할 수 있도록 얘가 결합한 세 가지 주 구성요소를 소개한다.
- nearest-mean-of exemplars 규칙에 관한 분류
- herding을 기반으로 한 prioritized exemplar seletion
- knowledge distillation 이나 prototype rehearsal을 사용한 representation learning.
2. Method
- 이 절에서는 iCaRL의 주요 구성 요소를 설명하고 이들의 조합이 진정한 class incremental learning을 가능케 하는 방법을 설명한다. 섹션 2.1은 기본 아키텍처를 설명하고 training and classification steps의 개요를 제공한다. 섹션 2.2에서 2.4는 알고리즘 세부 사항을 제공하고 design choices에 대해 설명한다.
2.1 Class-Incremental Classifier Learning
- iCaRL은 class-incremental 형태의 데이터 스트림에서 classifier와 feature representation 동시에 학습한다,
- 예를 들어 클래스 $y \in \mathbb{N}$ 의 집합은 $X^y =\left\{x_1^y,...,x_{n_y}^y\right\}$ 이고 이것의 sample집합은 $\left\{X^1, X^2, ...\right\}$ 이다.
Classification
- 분류를 위해 iCaRL은 데이터 스트림에서 dynamic하게 선택한 exemplar images인 $P_1,...P_t$를 사용했다. 지금까지 관측된 각 클래스에 대해 이런 exemplar이 하나 있으며 iCaRL은 exemplar image의 총 이미지 수가 fixed parameter K를 넘지 않도록 보장한다. Algorithm.1은 이미지를 지금까지 발견된 class 집합으로 분류하는데 사용되는 mean-of-exemplars classifier를 설명한다. 자세한 설명은 Section 2.2를 보아라.
Training
- iCaRL은 증분=학습 전략으로 class의 batches를 한 번에 사용한다. 새로운 class data가 등장했다하면 iCaRL이 update 루틴을 호출하는 거다. (이 루틴을 Algorithm.2+Sedc 2.3,2.4에 나와있다.) 루틴은 current training data에서 새로운 관측을 하여 추가된 정보를 바탕으로 iCaRL의 internal knowledge(네트워크 파라미터 와 exemplars) 를 조정한다. 이것은 iCaRL이 새로운 클래스 존재를 학습하는 방식이다.
Architecture
- 실제로 안에서 어떻게 동작하냐면, iCaRL은 CNN을 사용한다.우리는 네트워크를 trainable한 feature extractor이자 $\varphi :X\rightarrow \mathbb{R}^d$라고 정의한다. 그 다음에는 지금까지 관찰된 클래스 만큼의 sigmoid nodes output을 가진 단일 classification layer가 뒤따른다. 모든 feature vector는 L2-norm되며 feature vector의 어떤 연산이든 적용된다. 이 부분은 표기가 복잡해지니 굳이 계속해서 재명시 하지는 않겠다.
$\Theta $ | 네트워크 파라미터 ; feature 추출에 대한 fixed number와 weight 벡터에 대한 변수로 분할된다. | ||
$w_1,...,w_t\in \mathbb{R}^{d}$ | 가중치 벡터로 보인다. | t | 여태 발견된 클래스 수 |
- 클래스 $y\in \left\{ 1,...,t\right\}$ 에서의 네트워크 아웃풋은 아래와 같다.
- 이러한 출력을 확률로 해석할 수 있음에도 불구하고 iCaRL은 실제 분류 단계가 아닌 Representation learning만을 위해 네트워크를 사용한다는 점에 유의한다.
Resource usage
- 증분특성으로 인해 iCaRL은 어떤 class가 몇개 발생할 것인지에 대한 priori information 이 필요하진 않은채 이론상으로 무제한 학습이 가능하다. 런타임 동안 매순간의 메모리 요구 사항은 feature extraction 매개 변수의 크기, K exemplar 이미지의 저장 및 관찰된 클래스의 수만큼의 weight vectors이다.
- 이 knowledge을 사용하면 응용 시나리오에 따라 리소스를 할당할 수 있다. 클래스 수에 대한 상한이 알려진 경우, 필요한 만큼의 가중치 벡터 공간을 미리 allocate하고 남은 사용 가능한 메모리를 모두 사용하여 exemplars를 저장할 수 있다. 상한이 없다면 가중치 벡터 수를 늘리고 그에 따라 exemplar 집합의 수를 줄일 수 있다.
- 각 클래스가 학습되기 위해선 적어도 하나의 exemplar이미지와 weight vector가 필요하므로 런타임동안 더 많은 리소스 추가가능성이 없다면, 궁극적으로는 유한한 수의 클래스만 학습 시킬 수 있다.
- iCaRL이 retraining없이 곧바로 리소스 증가를 처리할 수 없다는 점을 주목하자. : memory limitation 이 강제되지 않는이상 어떤 exemplar도 버려지진 않을 것이다. (?)
-
더보기재교육 없는 적응성:
필자는 iCaRL이 모델을 재교육할 필요 없이 증가된 자원에 동적으로 (즉시적으로) 적응할 수 있다는 점을 강조하고자 한다. 이는 많은 실제 응용 분야에서 상당한 이점인 자원 가용성의 변화를 처리하는 iCaRL의 유연성과 효율성을 보여준다.
효율적인 메모리 사용:
이 문장은 또한 iCaRL이 가능한 한 많은 예시(이전 클래스의 예시)를 유지하도록 설계되었음을 지적한다. 이는 메모리 제한으로 인해 반드시 필요한 경우에만 예시를 폐기할 것이다. 이는 성능을 유지하면서 가용 메모리 사용을 극대화하는 모델의 능력을 보여준다.
2.2 Nearest-Mean-of-Exemplars classification
- new image x에 대한 레이블 y*를 예측하기 위해 지금까지 관찰된 각 클래스에 대한 프로토타입벡터($\mu_1,...,\mu_t$를 연산한다.
$\mu_y = \frac{1}{\left| P_y \right|}\sum_{p\in P_y}\varphi (p)$ | 클래스 y에 대한 모든 exemplars의 특징벡터 평균 |
- 그리고 분류할 이미지 특징벡터를 계산한 뒤에는 가장 유사한 prototype의 라벨을 할당시킨다.
Background.
- 2.2의 Nearest-mean-of-exemplars classification 법칙이 증분학습의 다른 multi-class분류와 다르게 두가지 주요문제를 극복했다. 보통의 NN classification 은 $y^* = argmax_{y=1,...t}g_y(x)$와 같은 꼴이다. ($g_y(x)$는 (1)에서 정의된 네트워크 아웃풋이거나 대체적으로 softmax output layer로도 쓰인다.
$\varphi $ | feature map |
$w_1,...,w_t$ | weight vectors |
$\textrm{argmax}_{y} g_y(x)=\textrm{argmax}_{y}w_y^{\top}\varphi (x)$ | |
network prediction rule은 위 수식을 이유로 비선형 특징맵 $varphi$와 weight vector 를 갖는 선형 분류기 사용과 동일하다(?) |
- class-incremental setting에서 weight vector $w_y$가 feature extraction routine $\varphi$와 decoupled된 것은 문제가 있다. : $\varphi$가 변화하면 $w_1,...,w_t$도 반드시 업데이트 된다. 그렇지 않으면 network output이 uncontrollably하게 변화하고 이는 catatrohpic forgetting으로 이어진다.
- 그에 반해 Nearest-mean-of-exemplars 는 decoupled weight들을 갖지 않는다. class-prototype들은 feature representation이 변경될 때마다 자동으로 변화하여 특변 표현의 변화로부터 classifier를 튼튼하게 만든다.
- rototype의 평균벡터로 결정은 class-incremental 학습에서 fixed representation 을 사용하는 nearest-class mean classifier[24]로부터 영감을 받았다.
- representation change후 truee class의 mean을 사용할 수 없는 이유는 모든 training data가 표현 변화이후로 이런 약을 재연산하기 위해 저장할 수 없기 때문이다.(?)
- 따라서 우리는 classification normalized feature vector을 평균치와 함게 방정식 (2)와 동일하게 볼 수 있다.
- $$y^* = {argmax_y \mu_y^{\top}\{\varphi (x)}$$
- 따라서 우리는 classification step을 classification with weight vector로도 해석할 수도 있지만 data representation 에서 decoupled 된 것이 아니라 일관되게 변경하는 weight vector으로 볼 수 있다.
2.3. Representation Learning
- iCaRL은 데이터를 얻을 때마다 새로운 클레스에 대한 $X_s,...,X_t$에 대한 특징 추출 루딘과 exemplar 집합을 업데이트 한다. Algorithm 3. 은 특징 표현을 incrementally improving 하기 위한 step을 보여준다. (검정색은 논문, 녹색은 분석)
- 먼저 iCaRL은 stroed exemplars와 함께 currently available training exeamples로 구성된 augmented training set을 구성한다. (training dat(s,t)와 이전 prototypes, 모델 파라미터를 모은다.
- 현재클래스와 이전 클래스 이미지 exemplar set을 포함하는 training set D를 구성한다.
- 다음으로, 각 example에 대해 current network를 평가하고 모든 previous class에 대한 network output을 결과로 저장한다. 모든 Data D에 대해 네트워크 출력을 저장하고, 이전파라미터를 사용해 각 클래스에 대한 네트워크 prediction $q_i^y$를 계산한다.
- 마지막으로, 각 new image를 받아들이는 네트워크가 new class에 대해 correct class indicator역할을 하도록 네트워크 파라미터를 업데이트한다(분류손실), 오래된 클래스에 대해서는 이전 단계에 저장된 점수를 재현토록 한다. (증류손실). 손실함수 $l( \Theta )$를 사용하여 Network training을 수행한다. 이 손실함수는 classification 과 distillation 목적을 포함한다. (앞이 classification이고 뒤가 distillation)
- [cls] 타겟이미지에 대해서 같은 클래스와 다른 클래스에 대한 분류 손실을 구한다.
- [dtl] 기존에 학습된 이미지를(1~s-1) 다시 입력해 기존 소스도메인에 대한 knowledge를 보존하도록 한다
Background
- Representation 학습 단계는 기존 network finetuning과 유사하다. 그래서 표준 개선사항인 dropout, adaptive stepsize selection 또는 batch normalization 같은 사항도 미래에 적용될 수 있다.
- Catastrohpic forgetting을 방지/완화하는 plain finetuning에는 두가지 수정사항이 있다.
- Training set is augmented, stored exemplars에도 적용된다. 이렇게 함으로써 training process에 진입한 모든 previous class들의 data distribution 의 정보를 보장할 수 있다. 이로 인해 image로 저장된 exemplars가 시간이 지나면 구식이 될 feature representation 보다 중요하다는 것을 알 수 있다.
- Loss 함수도 augmented, 새로발견된 클래스를 분류하도록 feature representation을 향상시키는 표준분류 loss함수 말고도 Distillation loss가 있다. distillation loss를 이용해 새로운 learning step에서도 이전에 배웠던 discriminative information을 잃지 않을 것이다.
2.4. Exemplar Management
- iCaRL은 새로운 클래스를 마주할 때마다 exemplar 집합을 조정하는데 여기서 모든 클래스는 동등하게 취급된다. 예를 들어 지금까지 t개의 클래스가 관측되었고 K개가 저장될 toall exemplars의 수일 때, 각 클래스에 대해 m=K/t(반올림) 을 사용하는 것이다. 이를 통해 K 개의 exemplars의 가용 메모리 budget이 항상 최대로 사용되나 초과되지 않도록 한다.
- Exemplar Management 에 관한 두가지 루틴이 있다.
- 새로운 클래스에 대한 exemplars를 선정하는 것이다. Algorithm4에서 그 과정을 보여준다.
- iteration step에서 새로운 example이 들어오면 모든 training example중에서 average feature vector에 가장 근사하는 exemplars set에 추가된다. 따라서 exemplar 집합은 정말로 우선순위 리스트라 exemplars element의 순서가 중요하다.리스트 초기에는 더 중요하다.
- removing exemplars는 Algorithm5.에 묘사된다. m'에서 m으로 제거한다. $p_{m+1},...,p_{m'}$까지의 exemplars가 제거되고 $p_1,...,p_m$개의 표본만 남는다.
Background
더보기
- Removing exemplars is challenging : the 실제 클래스 mean vector 은 removal procedure 이 호출될 때 not available to the algorithm anymore.
- 그래서 데이터 독립적인 removal strategy를 채택했다.제거절차가 호출된 뒤에도 끝에서부터 고정된 순서로 요소를 제거하며 desired approximation 이 충족되는지 exemplar set 구성루틴에서 확인하는 것이다.
- The prioritized construction is the logical consequence of this condition : 이는 첫 번째 exemplars에서 시작하여, 임의의 subset average feature vector에 대한 mean vector이 mean vector의 양호한 근사치임을 보장한다.
- 같은 prioritized 구축은 herding에서 쓰는 것으로 distribution에서 representative set을 생성하기위해 사용한다.
- iterative seletion이 더 더 높은 근사 quaility를 얻기 위해서 더 적은 sample을 요구한다는 걸 보여줬다. random subsampling에서도 그랬다.
- 이와 대조적으로 다른 exemplar 선택법에 대해서는 얼만큼 prototype을 뽑든지간에 좋은 approximation quality를 보장할 수 없었다.
- 결국 iCaRL의 exemplar section and reduction 이 incremental learning에서 최적의 방법이다. (결론)
- selection 단계는 처음 관찰되고 해당 training data가 사용가능할 때 각 클래스에 대해 한 번씩의 selection이 필요하다. 그 후에는 오직 reduction step만 호출될 뿐이다. (reduction step은 이전의 training data에 접근할 필요없음)
3. Related work
- 이 절에서는 가장 중요한 것들을 설명하면서, 한편으로는 fixed data representations을 사용한 learning techniques를, 다른 한편으로는 고전 connectionist era와 recent deep learning approaches 모두에서 data representation을 학습하는 기술로 구조화할 것이다.
Learning with a fixed data representation.
- 데이터 표현 고정조건에서 증분학습이 메인 이슈는 새로운 클래스를 학습도중에 언제고 수용할 수 있는 아키텍처를 설계하는 것이었다. 여태까지의 모든 트레이닝 데이터의 접근 없이 말이다.
더보기
- Mensink et al : nearest class mean(NCM) 발견. NCM은 각 클래스를 여태발견한 모든 examples의 평균 특징벡터인 프로토타입 벡터로 표현한다. 이 벡터는 data stream으로부터 incrementally 연산되므로 모든 training example를 저장할 필요가 없다. 새로운 example은 example의 feature vector와 가장 유샇나 프로토타입으로 class labeing하는 방식으로 분류,할당된다. 이런 방식을 통해 증분학습에서 표준 parametric classifier보다 더 높은 성능과 강건함을 보여줬다.
- NCM의 단점 : 비선형 데이터 표현을 분류기와 함께 확장할 수 없다는 점이다. 그래서 이 점으로 하여금 incremental class mean vector연산이 방해를 받는다. 그래서 icaRL은 NCM방식에 prototype-based 분류를 적용했다. 다만 우리가 사용하는 것은 모든 example의 feature vector 평균이 아니라, 선정된 subset에 관해서만 제한되었고 이를 통해 적은 메모리공간 유지와 지속적인 계산으로 필요한 모든 업데이트를 수행할 수 있었다.
- Kuzborskij et al : Alternative approches 부분적으로, 증분클래스 당시의 약간의 accuracy 감소를 피하는 방법이 모든 클래스에 해당하는 소량의 데이터를 재학습함으로써 가능하다는 것을 보였다.
- Chen et al & Divvala et al : 웹 리소스에서 이미지를 자율적으로 검색하고 그들 간의 관계를 식별하는 시스템을 도입했지만, 점진적으로 object classifiers을 학습하지는 않는다
- Pentina et al : learning multiple tasks sequentially이 유익할 수 있지만 순서를 선택하려면 모든 작업에 대한 데이터를 동시에 사용할 수 있어야 함을 보여줬다.
- Li and Wechsler [20], Scheirer et al, Bendale and Boult : 기존 학습 예제와 다른 클래스에서 온 테스트 예제가 포함될 수 있는 Open Set Recognition이라는 관련이 있지만 구별되는( related but distinct )문제를 목표로 했다.
- Polikar et al: 증가하는 classes을 처리할 수 있지만, 모든 classes이 계속해서(repeatedly) 발생하기 위해서는 훈련 데이터가 필요한 ensemble based approach을 소개했다.
- Lampert et al : 제안한 Zero-shot learning은 previously unseen classes의 examples 를 분류할 수 있지만, 그것들을 위한 훈련 단계는 포함하지 않는다.
Representation learning.
- 1980년대 McCloskey et al.이 catastrophic foreggfint 문제를 묘사했다. 그러나 이런 이슈는 context of connectioninst memory network에서나 일어났지 classifier에서 일어난 문제는 아니었다. 요즘 기준으로 그 시절 네트워크는 작고 얇았다. 이제 현존하는 알고리즘과 아키텍쳐 변화가 catatrophic foreggint 예방을 막았다. Moe-Helgesen eal(et al)이나 Goodfellow eal의 현대적인 아키텍처 말이다. (Kirkpatrick eaal같은 specific setting 은 예외)
- 초기 connectionist 업적에는 catatrophic forgetting에 대한 두가지 메인전략이 있었다.
- 학습능력을 유지하도록 네트워크를 확장하는 동시에 parts of the network weights 동결하기
- 리허설을 통해 최신데이터 뿐 만아니라 earlier data로도 네트워크를 continously 자극하기.
- NN의 증분 학습에 대한 최근 연구는 주로 동결/성장 전략을 따랐지만, 이는 시간이 지남에 따라 점점 더 많은 리소스를 네트워크에 할당해야 하므로 클래스 증분 학습에 대한 원칙 iii)을 위반했다.
- Xiao et al : 더 많은 클래스가 관찰됨에 따라 incrementally 성장하는 트리구조화 모델을 학습했다.
- Rusu et al : multi-task reinforment 학습에 관련해서는 모든 계층을 수평으로 확장해 network를 성장하는 것을 제안하기도 했다.
- iCaRL의 경우에는 rehersal 전략을 채택 : representation 학습을 위해 모델 파라미터를 업데이트 하는데, earlier class의 trainig data를 쓸 뿐만 아니라 currently available class도 사용했다.
- 또한 iCaRL은 시간이 지남에 따라 network의 정보가 너무 많이 저하되는 것을 방지하기 위해 distillation을 사용한다.
- Hinton et al : 원래 서로 다른 network 사이에 정보를 전달하기 위해 distillation를 제안했지만, iCaRL에서는 single network between different time points에서 사용한다
- Li and Hoiem : 같은 원리를 Learning without Forgetting(LwF)로써 single network for learning multiple taskes 로 제안했었다.
- class-incremental multi-class situation에 대한 주요 차이점은 prediton step에 있다: multi-class learner는 observed classes 중 어떤 발견된 클래스든지간에 정확하게 예측하는 하나의 classifier를 선택해야 한다. multi-task(multi-dataset) learner은 multiple classifiers를 이용할 수 있으며, 각각은 자신의 고유한 dataset으로만 평가 될 것이다.
<실험은 개인적으로 볼 예정>
<끝>