[ICML 2021] CLIP: Learning Transferable Visual Models From Natural Language Supervision

롬롬·2023년 7월 18일
0

지난 달에 열린 cvpr 2023에 다녀왔는데, accept된 논문들 중 VL 모델의 대부분 CLIP과 성능을 비교하는 것을 보았다. CLIP에 대해 간단하게 리뷰해 보고자 한다. CLIP은 OpenAI에서 제안한 모델로, 논문은 다음 링크에서 확인 가능하고, 아래 리뷰의 summary를 github에 정리해두었다.


Abstract

  • 컴퓨터비전의 최신기술 시스템은 정해진 카테고리의 고정된 셋을 예측하도록 학습시킴 → 이는 추가적으로 레이블된 데이터에는 적용하기 힘든 한계점 발생
  • 핵심 Idea: 어떤 캡션이 어떤 이미지와 함께 가는지에 대한 간단한 사전학습을 통하여, SOTA 이미지 표현을 효율적이고 확장가능하도록 학습함.
  • 사전학습 이후, 자연어는 학습된 시각적 개념을 참조하는데 사용되어, downstream task에 zero-shot을 적용할 수 있도록 함

1. Introduction and Motivating Work

  • NLP 분야에서는 raw text 데이터를 활용해 사전학습하는 방식으로 지난 몇년간 혁신을 보여줌
  • 또한, text-to-text의 발달로 인해 특수한 데이터 학습 없이도 zero-shot transfer가 가능하게 됨
  • 자연어 supervision으로 image representation learning은 좋지 않은 성능을 보이는데, zero-shot learning에서도 현저히 낮은 정확도를 보임.
    • weakly supervised model은 어느 정도 개선은 있었지만, 모델의 유연성을 단축시키고 zero-shot 능력을 제한함
  • 본 논문은 CLIP(Contrastive Language-Image Pre-training)이라는 모델을 제안
  • weakly supervised model과 text를 통한 image representation의 학습에서 가장 중요한 차이는 데이터 규모로 보았으며, 이 차이를 줄이기 위해 400M개 쌍의 (이미지, 텍스트) 데이터를 수집함
  • 대규모의 text 데이터를 학습하고 이를 image와 연결해주어, 다양한 vision task에서 좋은 결과를 보여줌

2. Approach

2.1. Natural Language Supervision

  • 자연어로부터 학습하는 것은 다른 학습 방식을 넘어서 잠재적으로 여러 강점을 가짐
  • 이미지분류에서 기존 crowd-sourced labeling과 비교했을 때, 자연어 supervision은 ‘ML compatible format’을 따르지 않기 때문에 확장하기 더욱 쉬움
  • 자연어로부터 학습하는 것은 representation을 ‘그냥’ 학습하지 않고, 언어에 대한 representation까지도 연결하기 때문에, zero-shot transfer를 가능하게 함

2.2. Creating a Sufficiently Large Dataset

  • 기존의 연구는 주로 MS-COCO, Visual Genome, YFCC100M 등의 데이터를 사용
  • 본 논문은 인터넷에 공개된 방대한 데이터셋을 수집하여 400M개의 이미지와 텍스트 쌍으로 구성된 데이터를 사용함

2.3. Selecting an Efficient Pre-Training Method

  • selected approach: bag-of-words contrastive 방식
  • Contrastive Learning은 두 개의 input에 대해 각각 encoder 통과 후 나온 두 embedding 간의 유사도를 계산하는 방식
  • CLIP의 Method는 다음과 같음
    • batch마다 N개의 (image, text) 쌍이 존재할 때, 각각 encoder를 통과해 나온 N개의 embedding 결과의 유사도 계산
    • positive pair(diagonal)에서의 코사인 유사도는 최대화하고, negative pair(off-diagonal)에서의 유사도는 최소화하도록 loss 설정하여 학습
  • 따라서 임의의 이미지가 입력되었을 때, image와 text embedding의 유사도를 비교하여, 가장 높은 항목을 text label로 선정됨 → 학습에 사용되지 않은 데이터도 prediction 가능 (zero-shot learning)

2.4. Choosing and Scaling a Model

  • image encoder: 2개의 architecture 고려 (ReNet-50과 ViT)
  • text encoder: Transformer 사용

2.5. Training

  • 5개의 ResNet과 3개의 ViT로 실험
  • ResNet: ResNet-50, ResNet-101, EfficientNet-style의 ResNet-50(RN50x4, RN50x16, RN50x64)
  • Vision Transformer: ViT-B/32, ViT-B/16, ViT-L/14
  • epochs: 32 // optimizer: Adam // lr: cosine-schedule
profile
🤗🤗🤗

2개의 댓글

comment-user-thumbnail
2023년 7월 18일

덕분에 좋은 정보 얻어갑니다, 감사합니다.

1개의 답글