본문 바로가기
Deep Learning

[DL - 논문 리뷰] Few-Shot Image Classification: Just Use a Library of Pre-trained Feature Extractors and a Simple Classifier

by JJuOn 2022. 1. 21.

 이번 포스팅에서는 Arkabandu Chowdhury가 ICCV 2021에서 발표한 "Few-Shot Image Classification: Just Use a Library of Pre-trained Feature Extractors and a Simple Classifier"을 읽고 정리해 보도록 하겠습니다.


1. Introduction

 Few-shot classification의 few-shot learner는 먼저 학습 데이터셋에 대해 학습을 시키고, 적은 양(few)의 데이터만으로 few distribution의 데이터에 대해 잘 일반화하는 것이 학습 목적입니다. 이때, 어떤 few distribution을 사용해야 할 지 모르므로, 본 논문에서는 최대한 다양한 feature를 가진 데이터셋에서 학습된 모델이 유리할 것이라고 가정했습니다.

 

 이러한 데이터셋의 예시는 ImageNet의 subset인 ILSVRC2012(1.3M images, 1K classes)나 full ImageNet(over 20K classes)가 있습니다. 이 중에서 ILSVRC2012로 학습된 모델들은 모델 설계자로부터 아주 정교하게 학습되었습니다. 본 논문에서는 이러한 모델들을 library-based learner라고 불렀습니다. 

 

 만약 이런 library-based learner가 few-shot classification에서 성능이 우수하다면, 이런 모델들을 함께 사용하는 방법도 좋은 성능을 기대할 수 있을 것 입니다. 본 논문에서는 library-based learner를 함께 사용하여 full learner를 구성했습니다.


2. High Accuracy of Library-Bases Learners

2.1 Designing a Library-Based Learner

 Library-based learner를 few-shot classification task에 사용하기 위해 본 논문에서는 기존 모델의 classifier를 제거하고 하나의 hidden layer를 가진 MLP(Multi-Layered Perceptron)을 붙이고 L2 regularization으로 학습시켰습니다. 그리고 기존 모델의 feature extractor는 freeze하여 더이상 weight가 업데이트 되지 않도록 하였습니다.

2.2 Evaluation

 본 논문에서는 library-based learner로 ResNet18, ResNet34, ResNet50, ResNet101, ResNet152와 DenseNet121, DenseNet161, DenseNet169, DenseNet201로 총 9개의 모델을 사용했습니다. 이러한 모델은 모두 ILSVRC2012에서 pre-train되었습니다.

 

 본 논문에서는 hyperparameter search를 위해 CUB 데이터셋을 사용했으며, 테스트 데이터셋으로 FGVC-Aircraft, FC100, Ominglot, Traffic Sign, FGCVx Fungi, Quick Draw, VGG Flower를 사용했습니다.

 

그리고 few-shot N-way K-shot task에서 N은 {5,20,40} 중에서, K는 {1,5} 중에서 선택하여 사용했습니다. 각각의 library-based learner를 각각의 dataset에 5way1shot, 20way1shot, 40way1shot task에서 실험한 결과는 아래와 같습니다.

Accuracys obtained using library deep CNNs for few-shot learning

 그리고 이를 기존의 state-of-the art 방법들과 비교한 결과는 아래와 같습니다. 아래는 5-way, 5-shot task입니다.

Comparing competitive methods with the simple library-based learners, on the 5-way, 5-shot problem

Ominglot 데이터셋을 제외하곤 모든 best library-based learner가 기존의 방법보다 좋은 성능을 보이는 것을 확인할 수 있습니다. 그 다음으로 아래는 20-way, 5-shot task에서의 실험결과입니다.

Comparing competitive methods with the simple library-based learners, on the 20-way, 5-shot problem

20-way, 5-shot task로 오니 기존 방법과의 격차가 더욱 심해졌고 심지어는 worst library-based learner도 Ominglot을 제외한 기존의 방법보다 좋은 성능이 나오는 것을 확인할 수 있습니다.


3. A Simple Full Library Classifier

3.1 Extreme Variation in Few-Shot Quality

Complete results for library-based few-shot learners on the 5-way, 5-shot problem

 위 표는 5-way, 5-shot task에서 각각의 library-based learner가 각각의 데이터셋에 대해 보이는 성능을 나타낸 것입니다. 어떤 모델이 대체로 우수하다 라는 일관성은 나타나지 않았습니다.

3.2 Combining Library-Based Learners

 그래서 본 논문에서는 위 9개의 모델을 함께 사용하고자 했습니다. 여러가지 모델을 함께 사용하고자 했을 때 떠올릴수 있는 방법은 ensemble입니다. 본 논문에서는 hard와 soft 둘 로 ensembled network를 구성했습니다. 또 떠올릴 수 있는 다른 방법은 9개의 feature extractor에서 나온 output을 모두 합쳐 하나의 classifier에 입력우로 주는 것 입니다. 본 논문에서는 이를 full library learner라고 명명했고, full library learner의 classifier는 13984개의 feature를 입력으로 받습니다. 

Full Library Learner

 그리고 hard ensemble, soft ensemble, full library와 single library-based learner를 여러 task에서 비교했습니다. 실험 결과는 다음과 같습니다.

Accuracy obtained using all nine library CNNs as the basis for a few-shot learner

 어떤 single library-based learner도 여러 learner를 사용한 것 보다 성능이 우수하게 나오지 않았습니다. 


4. Data vs. Diversity: Who Wins?

 이번에는 보다 더 큰 데이터셋에서 pre-train된 하나의 모델(data)이 우수할지 아니면 상대적으로 작은 데이터셋에서 pre-train된 여러 모델(diversity)이 우수할지 실험을 진행했습니다. 상대적으로 큰 데이터셋은 full ImageNet을 사용했는데, 해당 데이터셋에서 pre-train된 모델로 구글의 Big-Transfer(BiT) 종류의 모델을 사용했습니다. 사용된 모델은 BiT-ResNet-101-3, BiT-ResNet-152-4, BiT-ResNet-50-1을 사용했고 세 모델 모두 각 논문 저자의 pre-train된 모델을 그대로 가져다 썼습니다. 이 세 모델과 본 논문의 full library learner를 여러 task에서 비교한 결과는 아래와 같습니다.

Comparing a few-shot learner utilizing the full library of nine ILSVRC2012-trained deep CNNs with the larget CNNs trained on the full ImageNet

5-way, 5-shot task에서는 비슷한 결과가 나왔으나 way의 수가 증가할 수록 본 논문의 방법과 BiT 종류의 모델의 격차가 벌어지는 것을 알 수 있었습니다.


5. Why Does This Work?

5.1 Few-Shot Fine-Tuning Is Surprisingly Easy

 본 논문에서는 왜 여러 pre-trained feature extractor를 사용하는 것이 기존의 방법보다 효과적으로 나타는 지 알아보고자 하였습니다. 그래서 본 40-way, 1-shot task와 40-way이지만 전체 데이터를 사용하는 task에서 weight들의 correspondence를 측정하고자 했습니다.

 

 이때, 학습에는 single-layered perceptron을 classifier로 사용하는 full library를 regularization없이 사용했습니다. 그 다음에 각 모델의 output에 L1 norm을 적용시키고 Pearson Correlation을 계산한 결과, 아래와 같은 결과가 얻어졌습니다. 

Correlation between weight learned using one example per class, and the full data.

 Traffic signs 데이터셋을 제외하곤 correlation이 높게 나오는 것으로 보아 두 task에서 shot의 개수는 큰 차이가 없었고, 그렇기 때문에 본 full library가 효과적이라고 합니다. 

5.2 Different Problems Utilize Different Features

 이번에는 데이터셋 간의 유사도를 측정했습니다. 이전과 유사하게 single-layered perceptron을 classifier로 사용하는 full library를 regularization 없이 40-way, full-shot task에서 학습시켰습니다. 그리고, 모델의 output으로 부터 L1 norm이 상위 20%인 것 들만 사용했는데, 중요한 feature들만 고르기 위해서 입니다. 그리고 데이터셋간의 Jaccard Similarity를 측정하는데 완전히 무작위로 추출하면 0.111을 얻을 수 있을것입니다. 결과는 아래와 같습니다.

Jaccard sim. of sets of most important features for the various dataset pairs

 그 결과 데이터셋 간의 similarity가 다 작게나오는 것으로 보아, 각각의 데이터셋들이 상이하고 그로인해 여러 feature extractor로부터 feature를 다양하게 추출하는 것이 효과적이라고 합니다.

Percent of each deep CNN's features that appear in the top 20% features, on each dataset.

 위 그림은 실제로 각각의 모델에서 상위 20% L1 norm으로 선택된 feature들을 표시한 것인데, 각각의 모델마다 같은 데이터셋일지라도 다른 비율로 선택된 것을 확인할 수 있습니다.


6. Conclusion

 본 논문에서는 여러 deep CNN 모델을 고품질의 few-shot learner의 토대로 삼는 시험을 진행했습니다. 그 결과, 하나의 deep CNN일지라도 뛰어난 성능을 보였고, 여러 CNN을 사용했을 때는 성능이 더 우수하게 나왔습니다. 


References

[1] https://arxiv.org/abs/2101.00562v3

댓글