[Paper Review] Variational Feature Disentangling for Fine-Grained Few-Shot Classification

Abstract

데이터 증강은 few-shot 분류의 문제를 해결하는 직관적인 단계이지만, 증강된 샘플에서 변별력과 다양성을 모두 보장하는 것은 어려운 일이다. 

-> 이 문제를 해결하기 위해 무작위로 샘플링된 클래스 내 변형으로 feature를 증강하는 동시에, 클래스 discriminative feature를 보존할 수 있는 feature disentanglement(분리) framework를 제안한다. 

 

-> 구체적으로, feature representation을 두가지 구성요소 (하나는 클래스 내 분산을 represent하고, 다른 하나는 클래스 구분 정보를 인코딩하는 것) 으로 분리한다. 

-> 포즈, 배경, 조명 조건의 변화로 인해 유발되는 클래스 내 변이은 모든 클래스들에서 공유되며, 공통 분포를 통해 모델링 할 수 있다고 가정한다.

-> 그리고 학습된 클래스 내 변동성 분포에서 feature들을 반복적으로 샘플링하고, 이를 클래스의 discriminative feature에 추가하여 증강된 feature를 얻는다. 

** 클래스 내 변이 특징을 공통 분포(distribution)에서 샘플링하여 추가함으로써, 증강된 특징이 클래스 판별 특징을 유지하면서도 다양성을 증가시키도록 하는 것!

-> 이렇게 하면, 증강된 feature가 중요한 클래스 discriminative feature를 상속하는 동시에, 클래스 내 분산을 크게 나타낼 수 있게 한다.

 

cf) 나의 궁금증..

Q. 클래스 내 분산이 커지면 같은 클래스 내의 데이터 포인트들이 유사하지 않다는 건데, 그럼 모델이 이 클래스를 제대로 분류하지 못하는 것 아닌가? 왜 클래스 내 분산을 증가시키지?

A. Few-shot 학습에서는 소수의 데이터만을 가지고 새로운 클래스를 학습해야함. 이 때, 적은 수의 데이터만으로는 다양한 변형을 학습하기 어렵기 때문에 모델이 새로운 데이터에 대해 일반화하는 데 어려움을 겪을 수 있음. 이를 위해 데이터 증강을 통해 다양성을 인위적으로 증가시키는 것임. ( 이 논문에서는 클래스 판별 특징(class-discriminative features)과 클래스 내 변이 특징(intra-class variance features)을 분리하여 데이터 증강을 수행, 클래스 판별 특징은 해당 클래스의 본질적인 특성을 유지하면서, 클래스 내 변이 특징은 포즈, 배경, 조명 등의 변화로 인한 다양성을 추가해서 모델이 더 넓은 범위의 변형에 대해 일반화할 수 있게 하는 것.)

 

1. Introduction

few-shot learning에서, 특히 fine-grained 이미지 분류에서 데이터가 부족한 문제를 강조한다.

기존의 데이터 증강 방법들이 충분한 다양성과 판별력을 갖추지 못하는 한계를 지적하며, 변이 특징 분리(Variational Feature Disentangling) 프레임워크를 제안한다.

-> 클래스 판별 특징을 유지하면서, 무작위로 샘플링한 클래스 내 변이를 추가하여 특징을 증강한다. 

-> 여러 fine-grained few-shot 이미지 분류 벤치마크에서 SOTA 달성

 

2. Related Work

  • Metric Learning based methods

이미지 간 유사성을 활용하여 임베딩 공간을 정규화하는 방법들이다.

ex) Matching Networks, Prototypicla Networks

  • Optimization baed methods

새로운 작업에 효율적으로 일반화할 수 있는 모델을 설계하는 방법들이다.

ex) MAML(meta-learner를 사용하여 작은 훈련 데이터를 사용하여 몇번의 gradient update만으로 새로운 카테고리에 적용할 수 있는 initialization 찾는다) , Meta-SGD (initialization 뿐만 아니라, update direction, learning rate도 찾는다)

  • Data augmentaion based methods

추가 학습 예제를 생성하여 데이터 부족 문제를 완화하는 방법들이다.

ex) DAGAN, ∆- encoder ( 같은 클래스의 이미지 쌍에서 전송가능한 클래스 내 변형을 추출하여 새로운 클래스의 샘플을 증강하는 데 사용한다)

cf) 우리는 이미지를 쌍으로 연결하지 않고, 클래스 내 변동성의 공통 distribution을 학습한다!

 

3. Few-shot Learning Preliminaries

base class의 풍부한 레이블 이미지와 새로운 class의 소수 레이블 이미지를 사용하여, 새로운 클래스 이미지를 정확히 분류할 수 있는 분류기를 훈련하는 것이 목표다. 

보통 training stage와 fine-tuning stage로 나뉘는데, 

training stage에서는 base class의 이미지를 이용해서 feature extractor와 classifier를 훈련시킨다.

그리고 fine-tuning stage에서 pre-trained feature extractor를 freeze 해두고, novel class의 몇개만 라벨된 예시들을 사용하여 새로운 classifier head를 학습시킨다.

이후, test stage에서 본 적없는 novel class 이미지의 레이블을 예측하는 것!

 

여기서!

fine-tuning stage에서 데이터가 부족하므로 증강을 하는 것이다.

 

4. Method

feature를 class-specific feature와 intra-class variance feature로 분리하여 일반화된 특징을 학습하도록 돕는다.

변이 오토 인코더를 사용하여 클래스 내 변이를 모델링하고, 이를 통해 데이터 증강을 수행한다.

4.1. Variational Inference for Intra-class Variance

1) Feature Map Extractor

  • 입력 이미지 x(i)를 feature extractor fθ를 사용하여 feature map X(i)로 변환
  • X(i)=fθ(x(i))

2) Class-specific feature 추출

  • 로부터 Class-specific feature 를 추출한다.
  • 일반적으로 평균 풀링(Average Pooling) 또는 최대 풀링(Max Pooling)을 통해 추출한다.
  • zI(i)=Pooling(X(i))

 

3) Intra-Class Variance Feature Modeling

  • feature map X(i) Class-specific feature zI(i)Intra-Class Variance Feature zV(i)로 분해된다.
  • zV(i)는 변이 오토인코더(VAE)로 모델링되며, 이는 다변량 정규 분포를 따른다.
  • zV(i)는 평균 μ와 분산 σ를 가지는 분포에서 샘플링된다.
  • zV(i)∼N(μ(i),σ(i))

 

4) 변이 오토 인코더 (VAE)

  • VAE를 사용하여 클래스 내 변이를 모델링한다.
  • 인코더는 X(i)를 입력으로 받아 zV(i)의 평균 μ(i)와 분산 σ(i)를 출력한다.
  • 디코더는 zV(i)zI(i)를 결합하여 원래의 특징 맵 X(i)를 재구성한다.

 

5) Augmentaion Feature 생성

  • 학습 과정에서 여러 개의 zV를 샘플링하여Class-specific feature zI에 추가함으로써 증강 특징을 생성한다.
  • 이 증강된 특징들은 원래의 특징들과 함께 사용되어 더 강력한 분류기를 학습한다.
  • zaug(i)=zI(i)+zV(i)

 

 

4.2. Objective Function

1. Classification Loss

  • Class-specific feature zI(i) 를 사용하여 클래스 레이블 y를 예측하는 손실
  • 교차 엔트로피 손실을 사용한다.
  • Lcls(X(i))=Cross-Entropy(W(zI(i)),y(i))

 

2. Reconstruction Loss

  • 디코더가 원래의 feature map X(i)를 얼마나 잘 재구성하는지를 평가하는 손실
  • L2 거리(유클리드 거리)를 사용합니다.
  • Lrecon(X(i))=∥X(i)−X^(i)∥2

 

3. KL Divergence

  • 가 정규 분포를 따르도록 강제하는 손실
  • KL(q(zV(i)∣X(i))∥p(zV))
  • 여기서 q는 인코더가 추정한 분포이고, p는 사전 분포(prior distribution)

이 3가지 손실 함수를 결합하여 최종 손실함수를 구성한다.

 

 

 

5. Experiments

Caltech UCSD Birds (CUB), North America Birds (NAB), 그리고 Stanford Dogs 데이터셋을 사용하여 실험을 수행하였다.

Feature Extractor에서 두가지 다른 backbone network 사용한 실험 결과

 

  • ResNet12 backbone 네트워크를 사용하여 CUB, NAB, Stanford Dogs 데이터셋에서 5-way 분류를 수행
    • CUB: 200종의 조류 이미지를 포함한 11,788개의 이미지.
    • NAB: 555종의 북미 조류 이미지를 포함한 48,527개의 이미지.
    • Stanford Dogs: 120종의 개 품종을 포함한 20,580개의 이미지.

 

  • Conv4 backbone network를 사용하여 CUB와 Stanford Dogs 데이터셋에서 5-way 분류를 수행

 

7. Conclusion

변이 특징 분리 방법(Variational Feature Disentangling)이 few-shot fine-grained 분류에서 데이터 부족 문제를 효과적으로 해결함을 강조한다. 생성된 feature가 클래스 판별 특징을 유지하면서, 클래스 내 변이를 확장하여 성능을 향상시켰다. 

향후 데이터가 부족하거나 레이블이 부족한 다른 과제에 이 방법을 적용하는 것을 제안한다.