Contrastive Learning based Hybrid Networks for Long-Tailed Image Classification

2021. 12. 21. 12:16Papers/Contrastive Learning

Contrastive Learning based Hybrid Networks for Long-Tailed Image Classification

Wang, P., Han, K., Wei, X. S., Zhang, L., & Wang, L. (2021). Contrastive Learning based Hybrid Networks for Long-Tailed Image Classification. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 943-952).


Data-imbalanced Problem

  • 데이터 불균형 즉, 본 논문의 제목에 있는 "Long-tailed" 환경을 위 그림을 통해 알 수 있다.
  • 불균형은 쉽게 말하여, 데이터셋의 클래스 분포의 불균형으로 인해 발생하는 문제로 "Long-tailed"는 Major(가장 많은 수의 sample을 가지는 클래스)와 Minor(가장 적은 수의 sample을 가지는 클래스)와의 차이가 큰 문제를 말한다.
  • 일반적으로 "Long-tailed" data imbalanced problem을 수행할 떄, Cifar10 & 100 데이터셋에 대해서 불균형지수를 반영하여 강제적으로 Long-tailed dataset으로 학습 데이터를 변환한 후, 균형적인 test dataset에 대해서 성능 평가를 수행한다.

  • 본 논문에서 가장 주요하게 다루는 것이 "Contrastive Learning"이다. Contrastive Learning에서 가장 주요한 것은 Positive sample과 negative sample의 개념과 similarity loss이다.
  • Positive sample과 negatvie sample이란 unsupervised contrastive learning에서는 unsupervised 즉, 비지도 학습이기 때문에 본인을 제외한 나머지 sample에 대한 정보를 가지고 있지 않다.
  • upservised라 하더라도, 자신의 이미지에 다른 data augmentation을 활용하여 새로운 시각 데이터를 만들었을때, 다른 data augmentation 기법으로 만들어진 sample들간은 동일한 이미지로부터 파생된 이미지이기 때문에 positive sample로 취급하고 나머지 sample은 모두 negative sample로 판단한다.
  • 위의 그림을 보면 이해하기 쉽게, 같은 강아지라하더라도 빨간색 네모칸에 있는 강아지는 Anchor 이미지를 기준으로 다른 이미지이기 때문에 negative sample이고, positive의 경우에는 anchor를 기반으로 crop과 같은 data augmentation으로 생성된 이미지이기 때문에 같은 이미지로 만들어 졌기 때문에, positive sample로 판단한다.

Contrastive Learning Loss function

$$\mathcal{L} = -log(\frac{exp(q \cdot k_{+} / \tau }{\sum_{i=0}^{K} exp(q \cdot k_{i} / \tau)})$$

  • 위의 식에서 Anchor = $q$, positive sample = $k_+$, negative sample = $k_i,i \neq +$ 이다. 내적의 값은 유사할수록 크고, 다를수록 작은 것을 알 수 있기 때문에 내적을 통하여 유사도를 측정하고 log안의 값을 1로 수렴하게 하여 최종 $\mathcal{L}$의 값을 0으로 수렴하도록 학습하는 것이 가장 이상적인 학습 결과이다.
  • 따라서, $q \cdot k_+$의 값은 maximize하고, $q \cdot k_i(negative)$의 값은 minimize하는 것이 해당 loss의 key idea 이다.

Related Works

  • 본 논문을 이해하기 위해서 이전 Unsupervised Contrastive Learning과 Supervised Contrastive Learning에 대해서 알아야 도움이 되기 때문에, 추후 새로운 글을 통하여 자세한 내용을 다룰 수 있도록 준비하도록 하겠습니다.(MoCo, SimCLR, Supervised Contrastive Learning, Prototypical Contrastive Learning)

  • 본 논문에서의 활용되는 Contrastive Learning은 Supervised Contrastive Learning으로 기존 Unsupervised Contrastive Learning처럼 자신의 Anchor에 대해서 생성된 Sample에 대해서만 Positive sample로 취급하는 것이 아닌, Label 정보를 활용하여 같은 클래스의 경우에는 Positive 다른 클래스의 경우에는 Negative sample로 판단하여 학습하는 방법입니다.

  • 본 방법의 가장 큰 이점은 Positive sample의 수가 증가함에 있습니다. 기존의 방식에서는 Negative sample은 많지만 positive sample은 한개로 적은 수였기 때문에 이를 보완하기 위하여 나타난 방법입니다.

  • 이해를 돕기 위해 아래의 그림을 첨부합니다.


Contribution

  1. Long-tail image classification을 위한 Hybrid network를 제안함으로써, 해당 방식은 feature learning을 위한 "contrastive learning"과 classifier learning을 위한 "cross entropy loss"로 구성되어 있다. 해당 방법에 curriculum을 추가함으로써 좋은 features을 만들어내는 것을 학습함으로써 classifier learning의 성능을 높일 수 있다.
  2. 효과적인 "Supervised Contrastive(SC) Learning"전략을 활용하여 "Long-tailed"분류 성능을 향상시켰으며, 추가적으로 "Prototypical Supervised Contrastive(PSC) Learning"을 활용하여 메모리 문제를 해결하면서 높은 성능을 얻었다.
  3. Hybrid Network 방법을 활용하여 이전 방식보다 더 나은 features를 학습함으로써, cross-entropy 기반의 방식보다 대체적으로 높은 성능을 얻었다.

  • 위 그림은 일반적인 superivsed learning과 contrastive learning에 따른 feature map의 형태를 시각화해준 그림이다. 일반적으로 contrastive learning을 활용하여 학습을 수행했을 경우 instance간의 distance에 대해 push와 pull을 통하여 구별하기 쉽게 학습이 수행됨으로 좌측 하단의 보습과 같이 같은 sample끼리는 뭉치고, 다른 sample끼리는 멀어지게 되는 현상을 확인할 수 있다.

  • 이를 보여주기 위해 시각화 기법으로 PCA 또는 t-sne 방식을 활용하여 보여주는 논문들이 많이 존재한다.

  • 본 논문은 단순히 classifier learning과 feature learning을 따로 수행하는 것이 아닌 동시에 수행하는 방법을 제안한다.

  • 위의 그림을 보면 알 수 있듯이 좌측의 그림이 전체적은 framework이며, feature learning과 classifier learning을 동시에 수행함을 알 수 있다. 이러한 영향력을 결정하는 hyperparameter가 바로 $\alpha$이며, $\alpha \approx 1$이면 feature learning loss를 주로 활용하여 모델을 학습을 진행함을 의미하며, $\alpha \approx 0$이면 classifier learning loss를 주로 활용하여 모델을 학습함을 의미한다.

  • 이를 통하여 학습 과정을 two-stage로 나눠서 학습하는 것이 아니라(pre-training(contrastive learning) + fine-tuning(classifier learning)) feature learning과 classifier learning을 동시에 수행함으로써 보다 높은 성능을 얻는 것을 실험을 통해 증명한다.


Results

  • 위의 결과를 보면 알 수 있듯이 기존의 imbalanced problem을 해결하기 위한 loss function, re-weights, oversampling 방법론들보다 제시한 방법론이 높은 성능을 얻은 결과이다.

Discussion

  • 본 논문에서 말하는 Discussion은 다음과 같다.

    1. PSC loss의 data sampling에 대한 민감도
    2. PSC loss가 feature learning에 있어서 cross-entropy보다 더 나은가?
    3. Two-stage learning v.s. curriculum기반의 공동 학습의 차이

    PSC loss의 data sampling에 대한 민감도

    PSC loss가 feature learning에 있어서 cross-entropy보다 더 나은가?

    Two-stage learning v.s. curriculum기반의 공동 학습의 차이