-
CLIP: Contrastive Language-Image Pre-training 논문 핵심 요약Computer Vision 2024. 3. 4. 17:10
https://arxiv.org/abs/2103.00020
Learning Transferable Visual Models From Natural Language Supervision
State-of-the-art computer vision systems are trained to predict a fixed set of predetermined object categories. This restricted form of supervision limits their generality and usability since additional labeled data is needed to specify any other visual co
arxiv.org
Idea
- 자연어처리 분야에서 raw-text를 사용한 pre-training method는 성능을 향상시키는데 크게 기여함
- 이는 고품질의 crowed-labeled NLP 데이터셋을 사용하여 학습하는 것보다 웹 규모에서의 pre-training이 낫다는 것을 시사함
- 이를 컴퓨터 비전 분야에 적용하면 어떨까?
- 이 논문에서는 대규모의 NLP supervision을 통해 학습된 image classifier의 성능을 연구함
Approach
- 인터넷에서 4억개의 image-text pair 데이터셋을 구축하여 CLIP이라는 이름의 모델을 pre-train 시킴
- 이때, 이미지와 그에 대한 text의 단어들을 정확하게 맞추게 하는 방법은 학습에 있어서 효율이 떨어짐.
- Bag-of-words를 사용해서 문장의 순서는 고려하지 않고 단어들을 맞추게 하는 방법은 이보다는 낫지만 여전히 느림.
- 대신에, 이 논문에서는 텍스트 전체를 하나로 묶어 이를 맞추도록 하며 정해진 종류의 텍스트들 중에서 해당 이미지가 어떤 텍스트와 매치되는지를 학습시킴.
- 아래의 그래프를 보면 알 수 있듯이 이 논문에서 사용한 방법은 기존의 두 가지 방법보다 훨씬 효율적임 (초록색 그래프)
- 학습 방법은 다음과 같음. 하나의 배치에서 N개의 image-text pair가 있을 때, N*N개의 가능한 조합 중에서 실제 조합이 어떤 것인지를 맞추는 것을 학습함.
- 이를 위해 N개의 진짜 조합 (image-text)에 대해서는 cosine similarity를 maximize 하도록 하며, 반대의 조합 N^2-N 개의 조합에 대해서는 minimize 하도록 이미지 인코더와 텍스트 인코더를 학습시킴. 이를 통해 CLIP이 Multi-modal embedding space를 학습할 수 있도록 함
- 이를 Peusodo-code로 나타내면 다음과 같음.
- 우선, 이미지 인코더와 텍스트 인코더에서 feature를 추출함. 그 다음, 이 값에 대해서 L2-Normalization을 수행함. 그 다음, 각각의 이미지-텍스트 쌍에 대해 Cosine similarity를 계산한 후, 가로열과 세로열에 대해서 cross entropy loss를 계산함. 최종 loss는 두 개의 loss에 대해 평균 값을 계산한 값이 됨.
Experiments
- CLIP를 통해 Zero-Shot Prediction (구체적인 데이터셋을 학습시키지 않고 대량의 데이터셋에 대해서만 pre-train 시킴)을 수행하기 위해, 해당 데이터셋에 대해 모든 Class의 이름을 Potential Text-pairing으로 설정한 후, 각각의 이미지에 대해 가장 그럴싸한 (probable) 텍스트를 예측하도록 함.
- 여기서 쓰인 Trick이 하나 있음. CLIP은 문장에 대해 학습된 모델이기 때문에, 단순히 하나의 단어로 구성되어 있는 Label을 맞추는 것보다, "a photo of a {label}"이라고 된 문장에 대해 더 높은 정확도를 보였음.
- 또한, 몇몇 데이터셋에 대해서는 다음과 같이, "a photo of a {label}. A kind of a pet", 카테고리를 구체적으로 적어주는 것이 성능 향상에 도움이 되었음.
- 마지막으로, 서로 다른 prompt를 (예를 들어 "a photo of small {label}"과 "a photo of large {label}") embedding space에서 앙상블 하는 것이 성능 향상에 좋은 결과를 가져옴.
- 아래의 표는 Zero-Shot CLIP 과 Linear Prob on ResNet50(ImageNet에 대해서 사전학습을 수행한 후, 최종 결과를 도출하는 레이어만 linear layer로 변환하여 transfer learning을 수행한 모델)을 비교한 그래프임.
- 놀랍게도, 몇 개의 데이터셋에 대해서는 Zero-Shot CLIP이 더 좋은 성능을 보임. 심지어 ImageNet 데이터셋에 대해서도 Zero-Shot CLIP이 더 좋은 성능을 보임.
- 반면에, 복잡하고, 구체적이고, 추상적인 task에 대해서는 비교적 안좋은 성능을 보이는 것을 확인할 수 있음.
'Computer Vision' 카테고리의 다른 글
An Image Is Worth 16x16 Words (ViT) (2) 2024.03.13 CoCa: Contrastive Captioner 논문 읽기 (0) 2024.03.08 R-CNN 논문 읽기 (0) 2023.03.14 OHEM 논문 읽기 (0) 2023.03.08 Yolov7 커스텀 데이터셋에 학습시키기 (2) 2023.03.07