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

<1. Introduction and motivating work>

raw text로부터 직접적으로 학습하는 사전학습 방법들은 지난 몇년동안 NLP 분야에서 진화되어왔습니다. standardized input-output inference으로 “text-to-text”가 발전하면서 작업에 구애받지 않는 다운스트림 데이터셋으로의 zero-shot transfer가 가능해졌습니다. GPT-3와 같은 flagship systems은 이제 다른 모델들과 견줄정도로 성장하였습니다.

이러한 결과는 web-scale colections of text을 통해서 최신 사전학습 방법에 대해서 가능케한 aggregate supervision이 high-quality crowed labelded dataset을 능가한다는 것을 말해줍니다. 하지만, computer vision과 같은 다른 필드에서는 여전히 ImageNet과 같은 crowd-labeled에서 사전학습된 모델을 사용합니다. 웹 텍스트로부터 직접 학습하는 확장 가능한 사전학습 방법이 computer vision에서도 비슷한 혁신을 가져올 수 있을까요? 논문에서는 이렇게 의의를 제기합니다. 결과는 이미 알고 있지만 계속 읽어봅시다.

이 이후에는 사전학습 모델과 관련한 이전 연구에 대해서 나열하고 있습니다. 여기서 하고 싶은 말은 이미지와 자연어 모델이 발달함에 따라 멀티모달 분야도 동시에 발전하고 있음을 말하고 있습니다.

그런데 위의 사전 연구들에도 불구하고 Big Transfer와 weakly supervised ResNeXt와 같은 모델들은 SOTA에 비해서 좋지 못한 성능들을 냅니다. 왜 그런걸까요? 중요한 차이점은 바로 scale입니다. Mahajan et al과 Kolesnikov et al은 accelerator years동안 million에서 billion의 이미지를 학습한 반면에, VirTex, ICMLM, 그리고 ConVIRT는 one에서 two hundred thousand image로 accelerator days동안 학습하였습니다. 논문의 저자들은 이러한 gap을 줄이고 싶었고 large scale에서 natural language supervision으로부터 학습된 image model을 연구하고자 했습니다. 그리하여서 CLIP이라는 모델을 사용하였는데 CLIP은 ConVIRT를 scratch부터 학습한 간단한 버전이고 Constrastive Language-Image Pre-training의 약자 입니다. CLIP을 통해서 natural language supervision으로부터 학습하는 것이 효과적임을 논문에서는 증명하고자 합니다.

<2. Approach>

이 논문의 핵심은 image와 pair한 natural language에 포함된 supervision으로부터 perception을 학습한다는 것 입니다. 좀더 구체적인 것은 아래에서 말해보도록 하겠습니다.

<2.1 Creating a Sufficiently Large Dataset>

기존의 연구들은 주로 이 3개의 데이터셋을 사용한다고 합니다. MS-COCO, Visual Genome, YFCC100M 입니다. 그런데 MS-COCO와 Visual Genome는 높은 퀄리티의 crowd-labeld datasets이지만 거의 100,000의 학습 photo를 가지는 작은 데이터셋인 반면에, YFCC100M은 100 million phtos를 가지고 있는 대용량 데이터셋이지만 각 이미지의 metadata가 sparse하고 퀄리티도 다양하다는 단점이 있습니다.

그리하여서 이 논문에서는 대용량 데이터셋을 수집하기 위해서 인터넷으로부터 데이터를 수집하였습니다. 400 million (image, text) pairs의 새로운 데이터셋을 인터넷으로부터 수집하였습니다.

<2.2 Selecting an Efficient Pre-Training Method>

논문의 저자들은 초기에 VirTex와 유사하게 접근하였습니다. 이미지의 캡션을 예측하기 위해서 scratch부터 image CNN와 text transformer를 학습하였습니다. 하지만 이 방법은 효율적으로 scaling하는 것에 어려움이 있었는데요. Figure 2를 한번 보면서 설명하겠습니다. 논문의 저자들은 이미 ResNet50 image encoder의 두 배에 달하는 computing을 하는 63 million parameter transformer language model이 동일한 text의 bag-of-words encoding을 예측하는 Joulin et al과 유사한 접근 방식보다 3배 느리게 ImageNet classes를 학습하는 것을 확인하였습니다.

contrastive representation learning에서 최근 연구는 contrastive objectives가 동일한 predictive objective보다 좋은 성능을 내는 것을 확인하였습니다.

그리하여서 논문은 해당 텍스트의 정확한 단어가 아닌 전체 텍스트가 어떤 이미지와 짝을 이루는지만 예측하는 잠재적으로 더 쉬운 프록시 작업을 해결하기 위해서 system을 훈련하는 방법을 모색하였는데요. 동일한 bag-of-words encoding을 baseline으로 시작하여서, predictive objective를 contrastive objective로 바꾼 결과 ImageNet에서 zero-shot transfer 비율이 4배더 향상되는 것을 확인할 수 있었습니다.

N개의 (image, text) pairs의 batch가 주어진다면, CLIP은 N\times{N}개의 가능한 (image, text) 쌍을 예측하도록 학습됩니다. 이를 위해서 CLIP은 N개의 real paira의 image와 text embedding의 cosine similarity를 최대화하고 N^2-N개의 잘못된 pair의 consine similarity는 최소화하도록 image encoder와 text encoder를 학습함으로서 multi-modal embedding space를 학습합니다.

CILP은 이러한 similarity score를 symmetric cross entropy loss를 이용하여 optimize 합니다. Figure3의 peudocode의 logits부분이 이러한 score를 기반으로 cross-entropy를 계산하는 부분입니다.

이후에는 Zhang et al 방법론과 비교하여서 어떻게 CLIP을 간단히 만들었냐를 소개하는데 랜덤값으로 초가화한다든지, non-linear projection을 사용하지 않았다던지 등 부분이 있는데 구체적인 부분은 패스하도록 하겠습니다.

<2.3 Choosing and Scaling a Model>

논문의 저자는 두개의 다른 image encoder를 사용하였습니다. 첫번째로 ResNet50을 사용하였는데, 이는 widespred adoption과 proven performance 때문입니다. 또한 오리지날 ResNet이 아닌 수정된 버전인 ResNetD 버전과 rect-3 blur pooling을 사용했다고 합니다. 또한, global average pooling layer를 attention pooling mechanism으로 대체했다고 합니다. 여기서 attention pooling은 하나의 “transforemr-style”의 multi-head QKV attention의 하나의 층으로 실행되는데 여기서 Q는 global average-pooled image representation에서 조건화됩니다. 두번째로는 ViT입니다. 하나의 추가적인 layer normalization을 추가하는 것 외에 거의 기존의 모델을 수정하지 않고 사용하였습니다.

text encoder로는 정말 basic한 2017년에 나온 transfomer 아키텍쳐를 사용했습니다. 계산 효율성 측면 때문에 max sequence length는 76으로 제한했고, 텍스트 시퀀스는 [sos]와 [eos] 토큰과 함께 묶였으며, [eos] 토큰 위치는 highest layers의 activations는 text의 representation으로 다뤄진다고 합니다. 기존 transformer의 masked self-attention은 사용하지 않았다고 합니다.

<2.4 Pre-training>

논문의 저자는 5개의 ResNet과 3개의 Vision Transformer를 학습했습니다. ResNet으로는 ResNet-50, ResNet-101 그리고 EfficientNet 스타일의 모델 4개를 더 학습했고 대략적으로 4배, 16배, 64배의 계산을 사용하게 되었습니다. ViT로는 ViT-B/32, ViT-B/16, ViT-L/14를 학습했고 모두 32 epoch 만큼 학습했습니다.

<3. Analysis>

<3.1 Initial Comparision to Vision N-Grams>

Visual N-Grams은 처음으로 기존의 image classification에서 zero-shot transfer에 대해서 연구하였습니다. 또한 task agnostic 사전학습 모델을 사용하여 image classification dataset에 대해서 zero-shot transfer를 연구한 최초의 논문이기도 합니다. Table 1에서 Visual N-Gram과 CLIP을 비교하는데요. 확실히 성능 차이가 발생하는 것을 알 수 있습니다. (2017년 모델과 2021년 모델과의 비교이니 이렇게 성능 차이가 발생하는 것도 당연할 수 있겠네요;;) 물론 이 비교는 CLIP과 Visual N-Gram의 많은 차이점에 대해서 통제하기 않았기 때문에 직접적인 비교는 아닙니다. 좀더 면밀히 비교하기 위해서 실험을 진행하였는데요. Visual N-Gram이 학습된 것과 동일한 YFCC100M 데이터셋에서 CLIP ResNet50을 학습한 결과, V100 GPU에서 하루만에 보고된 ImagNet 성능과 일치하는 것으로 나타났습니다.

<3.2 Zero-shot Performance>

computer vision에서 zero-shot이란 이전에 한번도 보지 못한 물체에 대한 분류를 예측하는 방식을 말해왔지만, 이 논문에서는 좀 더 넓은 범위로 한번도 보지 못한 데이터셋에 대한 것으로 정의를 내렸습니다. unsupervised learning 연구 분야에 있는 많은 연구자들이 representation learning capabilities에 초점을 맞추는 반면에 논문의 저자들은 zero-shot transfer를 task-learning capabilities를 측정하는 방법으로 영감을 받았습니다. 이러한 관점에서, 데이터셋은 특정 분포에서의 task에서 성능을 측정합니다. 하지만 많은 유명한 computer vision datasets은 주로 research commpunity에 맞춰서 만들어졌기에 특정 task에서의 성능을 측정하는데 초점이 맞춰져 있지 않습니다. Visual N-Grams이 처음으로 기존의 image classification dataset에서 zero-shot transfer를 처음으로 연구한 연구라고 볼 수 있습니다.

<4. Experiments>

자 그럼, 시각화 자료를 통해 실제로 CLIP이 얼마나 performance를 잘 수행하였는지 확인해봅시다!

위의 그림은 supervised model과 CLIP을 비교한 것입니다. 총 27개의 데이터셋에 대해서 비교를 수행했고, 초록색이 CLIP이 더 좋았던것, 파란색이 ResNet50이 더 좋았던 것을 의미합니다. 27개의 데이터셋 중에서 16개에서 좋은 성능을 보였고, STL10 같은 경우 새로운 SOTA를 달성하였다고 합니다. 성능이 좋지 않은 데이터셋의 같은 경우 공통점이 있는데 specialized, complex 또는 abstract한 task의 경우 성능이 좋지 않았다고 합니다.

Figure 5는 zero-shot과 few-shot을 비교한 것입니다. few-shot은 각각의 클래스에 속하는 sample을 일부만 보여주고 추론한 것입니다. x축은 각 클래스에 속하는 training example의 숫자를 의미하고, y는 성능을 의미합니다. 당연히 CLIP이 좋은 성능을 보인 것을 확인할 수 있습니다. 재밌는 점은 zero-shot CLIP 보다 one-shot CLIP의 성능이 낮아진 것을 확인할 수 있습니다. 의문이 들 수 있는데, 이는 zero-shot의 경우 바로 embedding space에서 dot product를 수행하여 유사도를 구하는데 few-shot의 경우, linear layer를 하나를 덧붙여서 training example을 이용하여 학습을 하는데, zero-shot에서 충분히 알고 있었던 내용으로 분류를 할 수 있는데, 그것을 버리고 새로운 linear layer를 scratch부터 학습시키는 것이기 때문에 one-shot 에서 좋지 않은 성능을 냈다는 것을 알 수 있습니다.

Figure 7은 CLIP이 natural distribution shift에 강인하다는 것을 증명하기 위해서 시각화 한 것입니다. 오른쪽에 제일 첫번째 줄이 ImageNet을 의미하고 그 아래는 natural distribution shift를 준 variant들입니다. 약간의 설명을 드리자면 ImageNet이 워낙 오래된 유명한 데이터셋이기 때문에 test set이 오염되었다를 가정하여 새롭게 비슷하지만 다른 test set을 만든것이 ImageNetV2라고 합니다. 그래서 새로운 데이터셋인 ImageNetV2로 실험했을 때 ResNet101의 경우 성능이 훅 떨어지는것에 비해서 CLIP은 성능이 ResNet101에 비해서 높은 것을 확인할 수 있습니다.


자 이렇게 해서 CLIP에 대해서 리뷰 해봤는데요. 생각보다 많이 어려운 논문이었던 것 같습니다. 한줄 한줄 읽을 때마다 reference가 달려있어 읽기도 어려웠는데 그래도 어찌저찌 리뷰를 마쳤습니다. 저도 최대한 노력했지만 정확히 이해하지 못한 만큼 질문도 그만큼 많을 것이라 예상됩니다^^; 그래도 읽어주셔서 감사합니다.

Author: 김 주연

2 thoughts on “[ICML 2021] Learning Transferable Visual Models From Natural Language Supervision

  1. 근본 of 근본 논문을 읽으셨네요. 저도 조만간 리뷰를 할 예정이었는데 먼저 리뷰해주셔서 감사합니다.

    요즘 DALL-E 와 같이 diffusion 기반의 생성 모델이 사람들의 주목을 받는 이유는 모두 다 CLIP으로 부터 기인된 cross representation 덕분이라고 생각 합니다.

    궁금한 것은 저는 CLIP이 완전히 Self-Supervised 기반으로 학습이 되는 줄 알았는데 Image-Text Pair는 사람이 직접 annotation을 한 것인가요? Pair를 어떻게 구성한 것인지 관련된 detail을 조금 더 설명해주면 좋을 것 같습니다.

    또한 ConVIRT, VirTex 라는 처음 보는 용어가 등장하는데 간단하게 설명 가능할까요?

    1. 댓글 감사합니다. 저도 비슷하게 생각하는 것이 CLIP이 성공적으로 cross representation을 잘 해주었기 때문에 후속 논문이 많이 나올 수 있었던 것 같습니다.

      1) 이미지-텍스트 데이터셋을 이미 확보한 뒤에 그것에 대해서 학습한 것으로 보고 있습니다. 사람이 직접 annotation을 했다기 보다는 이미지-텍스트 페어 데이터셋을 인터넷에서 확보했다고 생각해주시면 될 듯 합니다. (이게 annotataion 했다면 그렇게 볼 수도 있을거 같네요)

      2) ConVIRT는 CLIP의 복잡한 버전이라고 생각하시면 됩니다. 논문에서는 그렇게까지 깊게는 언급하지는 않고, ConVIRT에서 이런 이런 부분을 제거해서 사용했다 정도로만 나옵니다. VirTex는 CLIP 논문에서 처음 접근했을 때 사용한 모델인데 이미지 캡션을 예측하기 위해 Image CNN과 Text Transformer에서 학습하는 식으로 사용했다고 합니다. 이 이상의 설명은 나와있지 않고 이런 이런 모델이 있구나 정도로만 생각해주시면 감사하겠습니다.

      감사합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다