[CVPR 2019] Learning a Unified Classifier Incrementally via Rebalancing (LUCIR) 핵심 리뷰

This entry is part 15 of 22 in the series Incremental Learning

내용 요약

기존의 distillation + exemplar방식에 Bias Correction layer를 추가한 incremental learning 방법론을 제안합니다. Cosine normalization, less-forget constraint, inter-class separation 방법을 적용합니다.

1. 들어가며

이번 글에서는 CVPR 2019에서 발표된 Learning a Unified Classifier Incrementally via Rebalancing (LUCIR) 논문을 리뷰합니다. 이 논문은 LUCIR이라 불리며, 이번 글에서도 LUCIR이라고 지칭하겠습니다.

전체-흐름-속에서-보기
그림1. Incremental Learning 전체 흐름

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별로 사용할 파라미터 또는 네트워크 등을 정해줌

LUCIR은 Distillation + Memory + Bias correction에 해당하는 방법 중 하나입니다.

2. 제안 방법

바로 제안하는 방법을 살펴보겠습니다.

2-1. 제안 방법 요약

우선 큰 그림을 먼저 잡고 시작하겠습니다.
저자들이 생각하는 기존 방식의 문제점들과 이를 위한 해결방안을 살펴보겠습니다.

제안-방법
그림2. LUCIR 제안 방법

저자들이 지적하는 기존 방식의 첫 번째 문제점은 new class의 feature norm의 크기가 old class의 feature norm 크기보다 크다는 것입니다. 이는 new class에 대한 편향을 야기합니다. 이는 BiC에서 제기한 문제와 결을 같이 하는데요. BiC에서 제안한 해결 방법과는 달리 LUCIR에서는 feature에 cosine normalization을 적용합니다.

기존 방식의 두 번째 문제점은 distillation loss가 적용되어도 embedding과 feature의 cosine similarity만 유지되면 되기 때문에 그림과 같이 전체적으로 shift 되는 현상을 일으킨다는 것입니다. 이를 해결하기 위해 저자들은 Less-Forget Constraint 항을 적용합니다.

기존 방식의 세 번째 문제점은 새롭게 학습한 new class embedding들과 기존의 old class embedding들이 공간상에 겹치게 존재한다는 점입니다. 이를 해결하기 위해 저자들은 Inter-Class Separation 항을 추가합니다.

2-2. 하나씩 자세히

이제 하나씩 자세히 살펴보겠습니다.

image 7
그림3. LUCIR 전체 구조

2-2-1. Cosine Normalization

먼저 cosine normalization입니다.

cosine-normalization
그림4. cosine normalization

위의 그림은 old/new class들에 대해 각각 l2 norm과 bias값을 측정한 그래프입니다. L2 norm과 bias 모두 new class 값들이 확연하게 큰 모습을 확인할 수 있습니다. 이는 new class에 대한 편향을 야기하므로 이를 해결하기 위해 feature에 cosine normalization을 적용합니다.

after-cosine-normalization
그림5. after cosine normalization
  • f : feature extractor
  • 𝜃 : FC Layer weight
  • b : FC layer bias
  • f : L2 Normalized Vector

왼쪽 기존 수식을 보면 Feature Extractor로부터 추출한 Feature에 Weight를 곱한 뒤 Bias를 더하는 연산을 볼 수 있습니다. 이렇게 기존 방법대로 연산하면 New Class에 대해 편중된 Weight와 Bias로 인해 New Class에 대한 Prediction으로 치우치게 되겠죠. 따라서 오른쪽 수식과 같이 FC 연산을 Cosine Similarity 연산으로 변경합니다. 이렇게 되면 Weight와 Bias의 큰 값에 영향을 받지 않고 오직 방향만 고려하여 연산하게 되어 문제를 해결할 수 있습니다.

2-2-2. Less-forget constraint

cosine normalization을 한 뒤 기존의 distillation loss를 적용하면 아래와 같습니다.

기존-distillation-loss
그림6. 기존 distillation loss

저자들은 이 방식에는 문제가 있다고 지적합니다.

기존-distillation-loss-한계
그림7. 기존 distillation loss 한계

위의 그림처럼 단순히 embedding과 feature의 각도를 유지하는 방향으로 학습하면 전체적으로 shift 될 수 있다는 것입니다. 따라서 저자들은 feature를 기존 모델의 feature에 가까워지도록 학습하는 loss를 제안합니다.

new_distillation-loss
그림8. new distillation loss

이때의 distillation loss값은 새로운 클래스의 개수에 따라 크기가 달라집니다. 따라서 이를 보정해주기 위한 상수를 아래와 같이 계산합니다.

보정-상수
그림9. 보정 상수

새로운 클래스의 개수가 커짐에 따라 보정 상수값은 작아지는 모습을 볼 수 있습니다.

2-2-3. Inter-class separation

마지막으로 남은 문제는 기존 class embedding과 new class embedding이 같은 공간에 뭉친다는 것입니다. 이를 위한 margin ranking loss를 제안합니다.

margin-ranking-loss
그림10. margin ranking loss
  • x : anchor of original class

Anchor가 되는 original class에 대해 같은 클래스의 feature는 당기고, 다른 클래스의 feature는 밀어내는, triplet loss의 형태를 취하고 있습니다. 결과적으로는 모든 Feature가 겹치기 않게 분포할 수 있게 됩니다.

4. Total loss

위의 세 가지 loss를 종합한 최종 loss는 다음과 같습니다.

total-loss
그림11. total loss
  • N : training batch
  • No : old samples

3. 실험 결과

다음은 이렇게 제안한 방법의 실험 결과를 살펴보겠습니다.

3-1. CIFAR100 테스트

먼저 CIFAR100 테스트입니다.

CIFAR100-test
그림12. CIFAR100 test

테스트 방법은 다음과 같습니다.
먼저 절반의 클래스에 해당하는 50개 클래스를 학습시킵니다. 그 다음 각각의 phase 개수만큼 나눠 incremental learning 방식으로 학습한 뒤 최종 성능을 측정합니다.

비교하는 방법들은 다음과 같습니다.

  • iCaRL-CNN : iCaRL 방법 + 일반적인 classifier
  • iCaRL-NME : iCaRL 방법 + Nearest Mean of Exemplars
  • Ours-CNN : 제안하는 방법 + 일반적인 classifier
  • Ours-NME : 제안하는 방법 + Nearest Mean of Exemplars
  • Joint-CNN : 모든 데이터로 학습하는 upper bound

결과를 보면 제안하는 방법이 iCaRL보다 성능이 높은 모습을 볼 수 있습니다. 또 재밌는 점은 iCaRL은 CNN보다 NME 방식의 성능이 더 좋지만, 제안하는 방법은 반대로 CNN이 NME보다 성능이 좋은 모습을 보입니다.

3-2. ImageNet 테스트

다음은 ImageNet 테스트입니다.

ImageNet-test
그림13. ImageNet test

CIFAR100과 동일한 결과를 보입니다.

4. Ablations

다음은 ablations를 살펴보겠습니다.

4-1. The effect of each component / number of reserved samples

먼저 각 component의 효과와 reserved sample의 개수에 따른 효과를 살펴보겠습니다.

the-effect-of-each-component-number-of-reserved-samples
그림14. effect of each component number of reserved samples

비교 대상은 다음과 같습니다.

  • CN : Cosine Normalization
  • LC : Less Forget Constraint
  • IS : Inter class Separation

모든 component가 다 사용되었을 때 가장 성능이 좋으며 cosine normalization만 사용해도 iCaRL보다 높은 성능을 보입니다. 또한 b실험을 보면 reserved sample의 개수가 증가함에 따라 성능이 좋아지는 모습을 볼 수 있습니다.

4-2. The effect of adaptive loss weight

다음은 Less-Fotget Constraint에서 소개한 보정 상수 (adaptive loss weight)에 대한 실험입니다.

보정-상수
그림15. 보정 상수

실험 결과는 다음과 같습니다.

the-effect-of-adaptive-loss-weight
그림16. the effect of adaptive loss weight

Adaptive loss weigth를 적용했을 때 더 성능이 높은 모습을 볼 수 있습니다.

4-3. The comparison of confusion matrix

다음은 confusion matrix를 확인해보겠습니다.

the-comparison-of-confusion-matrix
그림17. the comparison of confusion matrix

비교 방법은 iCaRL입니다. iCaRL에 비해 확실히 new class에 치우지지 않은 모습을 확인할 수 있습니다.

Series Navigation<< [ICMR 2019] Increasingly packing multiple facial-informatics modules in a unified deep-learning model via lifelong learning (PAE) 핵심 리뷰[CVPR 2019] Learning without Memorizing (LwM) 핵심 리뷰 >>
0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
Scroll to Top