[논문 리뷰 스터디] Learning Transferable Visual Models from Natural Language Supervision (CLIP)
작성자: 17기 황민아
CLIP은 OpenAI에서 발표한 모델로, 이미지와 텍스트를 같은 공간으로 보내 Multi-modal Representation Learning을 수행하는 모델이다. 자연어를 통해 기존의 이미지 분류 모델의 한계를 넘어섰다는 의의를 갖는다.
Abstract
기존의 SOTA 컴퓨터 비전 시스템은 미리 결정되어있는 고정된 집합의 object category를 예측하기 위해 학습된다. 기존에 없는 visual concept에 대한 예측을 수행하기 위해서는 추가적인 labeled 데이터가 필요하기에 일반성과 사용성 측면에서 제한적인 방식이다.
한계 1. 물체에 대한 labeling이 필요
한계 2. label이 지니는 정보의 부족
그렇다면 텍스트를 통해 이미지에 대해 직접적으로 학습하는 것이 확장성을 위해 더 좋은 대안일 것이다. 따라서 본 논문에서는 인터넷에서 수집한 (image, text) pair를 활용하여 캡션과 이미지를 매칭하는 방식으로 pre-training을 진행한다. 이후 자연어를 학습된 visual concept를 설명하는데 사용하여 downstream task에 대한 zero-shot transfer가 가능하게 한다.
30개 이상의 데이터셋에 대해 테스트 해 본 결과, OCR, action recognition, geo-localization 등의 task로 확장이 가능하였다. 대부분의 task에 대해 transfer가 잘 이루어졌으며, 때때로 기존 모델보다 나은 성능을 보이기도 했다.
*Downstream task: 실제 수행하고자 하는 task (fine-tuning하는 목적에 해당)
Approach
2.1. Natural Language Supervision
CLIP의 가장 핵심적인 아이디어는 natural language supervision learning -자연어를 통해 supervision 학습을 한다는 점이다. 이전에도 용어만 다를 뿐, 이러한 시도는 계속되어 왔다.
다만 초기의 연구에서는 topic model이나 n-gram representation 등의 방법을 통해 자연어를 처리하는 과정이 까다로웠으나, 최근에는 deep contextual representation learning 방식을 통해 자연어를 통한 supervision을 효율적으로 수행할 수 있다.
자연어를 통한 학습은 다른 학습 방법에 비해 다음과 같은 측면에서 강점을 보인다.
- 이미지 라벨링을 할 필요 없이 인터넷의 text 자료를 활용하기에 데이터를 scale하기 쉽다. (데이터 사이즈를 늘리기 쉽다.)
- Representation를 자연어와 연결지어가며 학습하므로 다른 종류의 task로 zero-shot transfer가 용이하다.
*representation learning = feature learning
2.2. Creating a Sufficiently Large Dataset
기존에 computer vision task에서는 MS-COCO, Visual Genome, YFCC100M 데이터셋이 주로 활용되었지만 본 연구에서 활용하기에는 문제가 있다.
- MS-COCO, Visual Genome은 데이터의 품질은 좋지만 10만개 정도로 사이즈가 작다.
- YFCC100M은 1억개 정도로 사이즈는 크지만, 각 이미지에 대한 메타데이터가 부족하며, 데이터의 품질이 들쭉날쭉하다. 뿐더러 이미지의 파일명, 설명 등을 영문에 맞게 필터링 한 후 데이터셋은 1500만개로 감소하였다.
인터넷의 자료를 활용할 수 있다는 Natural Language Supervision의 이점을 살리기 위해 **WIT(WebImageText)**라는 데이터셋을 새롭게 구축하였다. 다양한 인터넷 소스로부터 수집한 4억개의 (이미지, 텍스트) 쌍으로 구성된다.
2.3. Selecting an Efficient Pre-Training Method
Pre-training을 위해 Contrastive pre-training 방법을 사용하며, 두 개의 encoder - text encoder, image encoder를 사용한다.
* Contrastive Learning: Representation learning을 수행하기 위한 방법 중 하나로, 입력 sample 간의 비교를 통해 representation을 학습한다.
비슷한 데이터는 가깝게, 다른 데이터는 멀게 존재하도록 표현 공간을 학습한다.
Representation learning에 있어 간단하고 효과적인 방법이다.
N개의 (image, text) 쌍으로 구성된 batch가 주어졌을 때, N개의 이미지와 N개의 text를 각각 image encoder와 text encoder에 입력하여 나온 이미지, 텍스트 특징 벡터 사이의 관계(multi-modal embedding space)를 학습한다.
N개의 real pair의 코사인 유사도를 최대화하고, 나머지 $N^2 - N$개의 incorrect pairing의 코사인 유사도는 최소화하는 방식으로 학습한다.
2.4. Choosing and Scaling a Model
Image Encoder에는 두 가지 architecture를 고려하였다.
- ResNet-50에서 약간 수정된 ResNet-D를 base architecture로 사용하였다. Global average pooling layer를 attention pooling으로 대체하였다.
- ViT에 Layer normalization을 추가하여 사용하였다.
Text Encoder로는 Transformer를 사용하였다. 연산 효율성을 위해 maximum sequence length를 76으로 제한하였다.
2.5. Training
총 5 개의 ResNet과 3개의 Vision Transformer를 학습시켰다.
- ResNet-50, ResNet-101과 RN50x4, RN50x16, RN50x64 (EfficientNet-style 모델)
- ViT-B/32, ViT-B/16, ViT-L/14
Experiments
3.1. Zero-Shot Transfer
3.1.2. Using CLIP for Zero-Shot Transfer
CLIP은 어떤 이미지와 텍스트 정보가 짝지어지는지를 예측하기 위해 사전학습된다. 이를 zero-shot classification에 적용할 수 있다.
Classification을 위해 주어진 데이터셋의 모든 class를 potential text pairing으로 사용하며, 다음과 같은 과정을 따른다.
- Image와 potential text를 각각 image, text encoder에 입력하여 feature embedding을 계산한다.
- Embedding 사이의 코사인 유사도를 계산한 후, scaling 과정과 softmax 함수를 거쳐 확률 분포 값으로 normalize한다.
이 중 값이 가장 높은, 즉 유사도가 가장 높은 텍스트가 이미지의 label로 선택된다.
3.1.4. Prompt Engineering and Ensembling
Prompt Engineering
- Polysemy(다의어) 문제: Class 이름만을 text encoder에 넣어주면, 여러 의미 중 어떤 단어를 의미하는지 알 수 없다.
- ex) ImageNet의 crane - construction crane / animal crane 모두 데이터에 포함된 label
- ex) Oxford-IIIT Pet의 boxer - 견종을 의미하나, text encoder는 이를 운동선수의 한 종류로 인식할 가능성이 있다.
- Pre-training 과정에서 사용된 text 데이터는 주로 한 단어가 아닌 완전한 문장으로 구성되었다. Class 이름만을 text encoder에 넣어주면 기존에 학습된 텍스트와의 괴리가 생긴다.
Class label만 사용하기 보다는 완전한 문장과 데이터셋의 종류/카테고리에 대한 정보를 제공하는 방식으로 이러한 문제를 해결하고, 인식률을 높일 수 있었다.
Emsembling
서로 다른 콘텍스트의 문장을 사용하여 embedding space에서 앙상블하는 방식을 활용하여 성능을 높였다.
Results
3.2. Representation Learning