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
CLIP Github
https://github.com/openai/CLIP
GitHub - openai/CLIP: CLIP (Contrastive Language-Image Pretraining), Predict the most relevant text snippet given an image
CLIP (Contrastive Language-Image Pretraining), Predict the most relevant text snippet given an image - openai/CLIP
github.com
Abstract
이번에 새로 시작하게 된 딥러닝 논문 스터디 모임을 통해 프리뷰 했던 내용입니다. 생각보다 논문 페이지도 많은 편이고..(48 Page) 이번 논문에 쟁점이었던 Zero-Shot 과 일반 학습 간의 로지컬적인 차이를 이해하는데 있어 고생 좀 했던 기억이 있습니다..;;
그렇기에 기본적으로 정리할 섹션을 딥하게 정리하겠지만 필요 이상의 내용들은 과감하게 넘기겠습니다.
“State-of-the-art"
통칭 SOTA라고도 하며, 인공지능(AI) 및 기계 학습(ML) 분야에서 특정 작업에 대해 현재 사용 가능한 최고의 모델 또는 알고리듬을 의미한다. 이 용어는 연구자들이 특정 도메인에서 달성한 최고 수준의 성능을 나타내며, 연구 및 개발의 지표로 활용된다. SOTA를 달성하기 위한 노력은 새로운 알고리즘, 모델, 기술의 개발을 촉진하며, 이는 다양한 산업 분야와 사회적 도전 과제에 대한 효율적이고 정확한 해결책을 제한다.
현재 가장 좋은 성능을 내는(SOTA) 컴퓨터 비전 모델은 특정 카테고리 내에서 [이미지, 라벨] 같이 고정된 형태의 데이터를 이용해 학습 된다고 설명합니다 (논문 자체는 ResNet, EfficientNet이 주류로 해당 모델들로 이미지에 대한 클래스를 예측하고 있어 고정적으로 학습이 된 부분만 확실한 성능이 나오고, 새로운 문제를 던졌을 때는 성능이 제대로 나오지 못하는 문제가 나옴 "Zero - Shot")
고정된 형태의 데이터를 이용해 컴퓨터 비전 모델을 학습시키는 것은 모델의 일반화 성능(generality)과 다른 태스크에서의 사용 가능성(usability) 제한한다.
- 여기서 말하는 고정된 형태의 데이터는 "input" - "Label"이 들어간 Supervised 형식의 특정 단어와 이미지가 매핑되는 방식
"이미지 - "텍스트" 매칭 학습
✔ CLIP은 “이미지-텍스트” 쌍을 활용하여 학습하는 새로운 방식 제안
✔ 기존처럼 “고정된 클래스 분류”를 학습하는 것이 아니라, 텍스트를 통해 개념을 일반화할 수 있도록 학습!
학습 방식: 4억 개의 이미지-텍스트 쌍을 활용한 Contrastive Learning
✔ CLIP은 "이 이미지에 맞는 캡션(텍스트)이 무엇인가?”를 맞추는 방식으로 학습
✔ Contrastive Learning 방식 사용 → 올바른 이미지-텍스트 조합의 유사도를 높이고, 잘못된 조합의 유사도를 낮춤
✔ 웹에서 자동으로 수집한 4억 개의 이미지-텍스트 쌍을 사용하여 학습
✔ 즉, 일반적인 데이터셋보다 훨씬 다양한 개념을 포함 → 새로운 개념에도 Zero-Shot으로 적용 가능!
결론적으로, CLIP은 고정된 클래스를 학습하지 않고, 텍스트를 활용한 유연한 개념 학습이 가능
CLIP의 성능을 평가하기 위해 30개 이상의 기존 컴퓨터 비전 데이터셋에서 실험을 진행.
✔ 테스트한 태스크(Task) 종류:
- OCR(문자 인식)
- 비디오 내 행동 인식(Action Recognition in Videos)
- 지리적 위치 인식(Geo-localization)
- 세밀한 객체 분류(Fine-Grained Object Classification) 등
✔ 즉, CLIP은 다양한 데이터셋에서 일반화 능력을 평가받음.
1. Introduction and Motivating Work
연구 동기에 대한 내용을 전반적으로 스토리텔링한 것으로 보임.
논문의 도입부에서는, 최근 몇년간 자연어처리 분야에서 발전한 사전 학습(Pre-training) 방법이 컴퓨터 비전에서도 유사한 성과를 낼 수 있는 지에 대한 탐구를 시작
주요 안건
🔹 기존 NLP 모델들은 웹에서 수집한 텍스트 데이터를 활용한 사전 학습을 통해 강력한 성능을 발휘해 왔음.
🔹 그러나 컴퓨터 비전에서는 여전히 ImageNet과 같은 사람이 라벨링한 데이터셋을 활용하는 것이 일반적임.
🔹 “웹에서 수집한 대규모 이미지-텍스트 데이터로 컴퓨터 비전 모델을 학습할 수 있을까?” 라는 질문을 제기하며, CLIP이 이를 해결하는 방법을 제시함.
1) Task-Agnostic Objectives (태스크 독립적인 목표 설정)
- NLP에서는 특정 태스크(Task)에 의존하지 않는 사전 학습 방법(Task-Agnostic Pre-training)이 주요 연구 흐름이 됨.
대표적인 방법:
- Autoregressive Language Modeling (GPT 계열 모델) → 앞 단어를 기반으로 다음 단어를 예측
- Masked Language Modeling (BERT 계열 모델) → 문장에서 일부 단어를 가려두고 해당 단어를 예측
2) Text-to-Text 방식과 Zero-Shot Transfer
- NLP에서는 모든 태스크를 “텍스트 입력 → 텍스트 출력” 형태로 통합하는 “Text-to-Text” 접근법이 등장
- 이를 통해, 사전 학습된 모델을 새로운 태스크에 바로 적용(Zero-Shot Transfer)할 수 있게 됨.
- 예: GPT-3는 별도 Fine-Tuning 없이도 번역, 질의응답, 문장 요약 등의 태스크를 수행할 수 있음.
3) GPT-3와 범용 모델 (General-Purpose Models)
✔ GPT-3 같은 모델은 특정 데이터셋 없이도 다양한 태스크에서 기존 맞춤형(Specialized) 모델과 경쟁할 수 있음.
✔ 이는 웹에서 수집한 방대한 자연어 데이터를 활용한 사전 학습 덕분에 가능.
✔ 즉, 웹 기반 데이터에서 직접 학습하는 것이 모델의 일반화를 돕는 핵심 요소라는 점을 강조함.
기존 컴퓨터 비전 모델의 한계
✔ 반면, 컴퓨터 비전에서는 여전히 사람이 라벨링한 데이터(ImageNet 등)를 사용한 지도 학습이 표준적 접근법
✔ 즉, 웹에서 수집한 비전 데이터를 활용하는 연구는 많지 않음.
기존 연구 사례 (Prior Works in Image-Text Learning)
그렇지만, CLIP 이전에도 이미지-텍스트 데이터에서 학습하려는 연구가 존재했다고 합니다.
초기 연구 (1999~2017년)
| 연구 및 연도 | 연구 내용 |
| Mori et al. (1999) | 이미지와 텍스트 문서의 명사/형용사를 예측하여 이미지 검색 성능 향상 시도 |
| Quattoni et al. (2007) | 이미지 캡션을 예측하는 분류기를 학습하여 이미지 표현을 향상 |
| Srivastava & Salakhutdinov (2012) | 딥 볼츠만 머신(Deep Boltzmann Machine) 기반 다중 모달 학습 |
| Joulin et al. (2016) | CNN을 활용하여 이미지 캡션의 단어를 예측하는 방식으로 이미지 표현 학습 |
| Li et al. (2017) | 이미지의 텍스트 표현을 학습하여 Zero-Shot Transfer 가능성을 연구 |
최근 연구(2018 - 2020년)
| 연구 및 연도. | 연구 내용 |
| VirTex (Desai & Johnson, 2020) | Transformer 기반 이미지-텍스트 학습 |
| ICMLM (Bulent Sariyildiz et al., 2020) | 마스킹된 언어 모델을 활용하여 이미지 표현 학습 |
| ConVIRT (Zhang et al., 2020) | 대조 학습(Contrastive Learning) 기반 이미지-텍스트 학습 |
✔ CLIP은 이러한 연구의 연장선에서 더욱 확장된 접근법을 제안함.
기존 접근 방식의 한계 (Limitations of Previous Works)
- 자연어를 활용한 이미지 학습 방법은 아직 널리 사용되지 않음.
- 예를 들어, Li et al. (2017)의 연구는 ImageNet Zero-Shot 설정에서 11.5% 정확도에 그쳤음.
- 이는 최신 모델(Xie et al., 2020)의 88.4% 정확도보다 훨씬 낮음.
✔ Mahajan et al. (2018)은 소셜 미디어(Instagram)에서 수집한 데이터로 학습하여 성능을 향상시킴.
✔ 그러나 데이터가 특정 태스크에 맞춰져 있어 범용성이 떨어짐.
논문에서는 weak supervision라는 개념을 언급하는데요 완전히 정제된 라벨이 아닌, 비교적 부정확하거나 노이즈가 포함된 데이터를 사용 하여 모델을 학습하는 방법 이라고 합니다
논문에서도 CLIP의 학습 방식 자체를 웹에서 크롤링한 이미지와 텍스트 데이터를 그대로 사용 했기 때문에 완벽한 라벨이 없는 말 그대로 "약한 지도학습" 방식으로 학습 된다고 보시면 됩니다.
결국 기존 정통 방식의 지도학습은 고정된 클래스로 인한 제로 샷에 대한 대응이 떨어지는 부분, 과적합 가능성 때문에, Weak Supervision을 활용한 대규모 데이터 학습의 필요성을 느끼게 된 것이고
이에 따라서 약 4억개의 인터넷 데이터(이미지-텍스트 쌍)를 수집하고 이를 ConVIRT의 간단한 버전을 이용해 학습했는데, 이를 Contrastive Language-Image Pre-training, 줄여서 CLIP이라 부르기로 했다고 합니다.
2. Approach
2.1 Natural Language Supervision
(자연어 기반 지도학습)의 핵심 개념 분석
✔ CLIP이 “자연어를 활용하여 이미지 학습하는 방식” 자체는 새로운 개념이 아님
✔ 그러나, 연구자마다 이 방법을 부르는 용어가 다르며, 접근 방식도 다양함
(unsupervised, self-supervised, weakly supervised, supervised ... 등등 있답니다)
즉, 같은 “이미지-텍스트 학습” 방식이라도 연구자마다 다르게 표현될 수 있음 → CLIP에서는 “Natural Language Supervision”이라는 개념을 명확하게 정의함
Natural Language Supervision의 핵심 개념
✔ 핵심은 특정 학습 방법이 아니라, “자연어(텍스트)를 학습 신호로 활용하는 것”!
✔ 즉, 텍스트(문장)를 통해 모델이 시각적 개념을 학습할 수 있도록 한다는 점이 중요
즉, CLIP은 특정한 라벨 없이도 “텍스트를 통한 학습”이 가능하도록 설계됨!
기존 Natural Language Supervision 연구의 한계
✔ 초기 연구에서는 토픽 모델링(Topic Modeling)이나 n-gram 방식으로 텍스트를 분석
✔ 하지만, 이 방법은 문맥을 고려하지 않기 때문에 한계가 있었음
즉, 기존 연구들은 “텍스트를 어떻게 활용할 것인가?“에 대한 어려움을 가졌지만, CLIP은 이를 해결할 방법을 제시함!
🔑 여기서 n-gram 이란?
자연어처리에서 과거에 사용되던 기법으로 N개의 단어(토큰) 단위로 분리하는 방법입니다.
보통 Uni, Bi, Tri로 나뉘게 되는데
(1) Uni-gram (1-gram, 단어 하나씩 분리)
✔ "I love machine learning" → ["I", "love", "machine", "learning"]
✔ 단어를 개별적으로 다룸 → 문맥(Context) 정보가 부족 ❌
(2) Bi-gram (2-gram, 두 단어씩 묶음)
✔ "I love machine learning" → ["I love", "love machine", "machine learning"]
✔ 단어 간 관계를 조금 더 고려할 수 있음
3) Tri-gram (3-gram, 세 단어씩 묶음)
✔ "I love machine learning" → ["I love machine", "love machine learning"]
✔ 더 긴 문맥을 고려할 수 있지만, 데이터가 부족할 가능성이 높음
기존 연구들은 이러한 방식으로 텍스트를 다루었으나, OOV 문제가 깊어 최근엔 사용되지 않고 BPE, Sentence Piece 사용합니다
결국 최근에는 Transformer를 사용해서 텍스트 핸들링을 다루었단 얘기 같아요
CLIP에서 Natural Language Supervision이 중요한 이유
✔ 기존 지도학습(Supervised Learning)보다 더 확장성이 뛰어남
✔ 비지도 학습(Unsupervised Learning)보다 더 직관적인 개념 학습 가능
✔ Zero-Shot Transfer가 가능 → 새로운 개념도 자연어로 쉽게 설명 가능
즉, CLIP은 Natural Language Supervision을 활용하여 기존 학습 방식보다 더 강력한 확장성을 가짐!
Natural Language Supervision의 가장 큰 장점: Zero-Shot Learning 가능
✔ 기존 모델들은 이미 학습한 개념만 예측 가능 → Zero-Shot Learning 불가능 ❌
✔ 하지만 CLIP은 자연어를 통해 학습하기 때문에 새로운 개념도 쉽게 연결 가능 ✅
즉, CLIP은 단순히 이미지 특징을 학습하는 것이 아니라, 텍스트와의 관계를 학습하여 Zero-Shot Learning이 가능해짐!
(후반부에 Zero-Shot 관련한 내용을 자세하게 후술하겠습니다)
2.2 Creating a Sufficiently Large Dataset
이때까지의 연구들은 주로 세 가지 데이터셋을 사용했답니다
- MS-COCO
- Visual Genome
- YFCC100M
특징들을 분류하자면
| 데이터셋 | 특징 | 한계 |
| MS-COCO 🖼️ | 고품질 라벨링(이미지 캡션 포함) | 크기가 작음 (~10만 개 이미지) ❌ |
| Visual Genome 🏞️ | 상세한 이미지 주석 포함 | 크기가 작음 (~10만 개 이미지) ❌ |
| YFCC100M 🌍 | 1억 개 이상의 Flickr 이미지 포함 | 메타데이터가 부족하고 품질이 일정하지 않음 ❌ |
결론은, 기존 데이터셋은 크기가 작거나(10만 개 수준), 데이터 품질이 균일하지 않다는 한계가 있음
기존 데이터셋의 한계를 극복하기 위한 WIT(WebImageText) 구축
✔ CLIP은 기존 데이터셋이 인터넷에서 얻을 수 있는 방대한 이미지-텍스트 데이터를 반영하지 못한다고 판단
✔ 따라서, 웹에서 크롤링한 4억 개의 이미지-텍스트 쌍을 포함하는 WIT(WebImageText) 데이터셋을 새롭게 구축함
WIT(WebImageText) 데이터셋 구축 과정
✔ 웹에서 공개된 이미지와 관련 텍스트(캡션, 설명 등)를 크롤링하여 데이터셋 구축
✔ 총 4억 개의 (이미지, 텍스트) 쌍 수집 → 기존 데이터셋보다 훨씬 방대한 규모!
사실 논문에서는 대강 크롤링해서 이미지-데이터 이 조합으로 데이터셋을 구축했다는데, 더 나아가서 단어가 아닌 "문장" 기반으로 이미지와 매핑을 했다네요, 저는 궁금한건 과연 어떤 방식의 쌍 조합으로 나눌지가 가장 궁금했는데, OpenAI 깃허브를 뒤져봐도 데이터셋 페어링은 어떻게 구성했는지는 나오지 않아서.. 그게 아쉽긴 합니다.
다양한 개념을 포함하도록 50만 개의 검색어(Query) 활용
✔ CLIP은 다양한 시각적 개념을 포함하기 위해 50만 개의 검색어(Query)를 활용하여 이미지-텍스트 데이터를 필터링
✔ 즉, 단순히 랜덤한 이미지-텍스트를 가져오는 것이 아니라, 특정 키워드를 포함하는 데이터를 선택함!
데이터 균형(Balance) 유지
✔ 데이터 불균형 문제를 해결하기 위해, 각 검색어(Query)당 최대 2만 개의 이미지-텍스트 쌍만 포함
✔ 즉, 특정 키워드(예: “dog”)에 치우치지 않고, 다양한 개념을 학습할 수 있도록 설계됨!
2.3 Selecting an Efficient Pre-Training Method
CLIP의 학습 방식 및 Contrastive Learning을 활용한 최적화 과정 분석
이 부분에서는 CLIP이 어떻게 기존 모델보다 효율적으로 학습을 진행했는지, 그리고 Contrastive Learning을 활용하여 Zero-Shot 성능을 향상시킨 방법을 설명합니다.
기존 SOTA(SOTA: State-Of-The-Art) 모델의 학습 비용 문제
✔ 기존 최첨단(SoTA) 비전 모델들은 매우 많은 계산 비용을 필요로 함
예를 들어
• ResNeXt101-32x48d: 학습에 19년치 GPU 연산 필요
• Noisy Student EfficientNet-L2: 학습에 33년치 TPU 연산 필요
✔ 그런데, 이 모델들은 오직 1000개 ImageNet 클래스만 예측 가능
즉, CLIP은 기존 모델보다 더 큰 개념을 학습해야 하지만, 효율적으로 학습할 수 있어야 함
기존 접근 방식(이미지-Caption 예측)의 한계
✔ 초기에는 이미지 CNN + 텍스트 Transformer를 함께 학습하여 이미지 설명을 예측하는 방식(VirTex 방식) 시도
✔ 하지만 계산량이 너무 많고(ResNet-50보다 2배 더 많은 연산 필요), 학습 속도가 3배 느림
원인
- 각 이미지의 캡션을 정확하게 예측해야 하는 어려움
- 같은 이미지를 보고도 사람들이 다양한 방식으로 설명 가능 → 일관된 라벨링이 어려움
결론 : 이미지 설명을 정확하게 맞추는 방식은 계산량이 많고 학습이 비효율적
CLIP의 새로운 접근 방식: Contrastive Learning 활용
학습 방식에 대한 자세한 설명을 하자면

- 기본적으로 배치 단위로 학습이 이뤄짐, 1개의 Batch는 \(N\) 개의 (image, text) 쌍으로 구성된다
-
- 개의 쌍을 모든 \(i,j\) 에 대해서 비교하면 \(N\)개의 positive pair와 \(N^2-N\)개의 negative pair를 얻을 수 있다.
여기서 총 \(N*N = N^2\) 개의 값이 나오는데 \(N\) 개는 실제 (image, text) 페어에서 나온 값이고 \(N^2-N\) 개는 다른 (image, text)페어에서 나온 값이다.
내용을 총 정리하자면
- image(임베딩)와 text(임베딩)를 하나의 공통된 space로 보낸 다음
- positive pair에서의 유사도(cosine similarity)는 최대화하고
- negative pair에서의 유사도는 최소화하도록
- CE loss를 사용하여 학습한다

쉽게 얘기해서 유사도를 통해 구하고자 하는 것은 특정 클래스 (아마도 이미지를 설명할 수 있는 문장 클래스 같아요)에 따라 유사도가 높을 수록 당겨주고 멀수록 밀어주면서 학습시키는 전략을 위해 문장과 이미지의 유사도 값을 구하는 것 같아요
Contrastive Learning을 활용한 학습 효율 향상
✔ CLIP이 기존 방식(VirTex)에서 Contrastive Learning 방식으로 변경하자 학습 효율이 4배 증가!
✔ Zero-Shot Transfer 성능도 더욱 향상

이를 통해 효과적으로 학습이 되었다는 것을 알 수 있다.
대표적인 수식
CLIP은 주어진 이미지\((I)\)와 텍스트\((T)\)를 각각 이미지 인코더 \((f_I)\) 텍스트 인코더\((f_T)\)를 통해 임베딩 벡터로 변환
\(z_I = f_{I}(I) \quad\text{(이미지 인코더를 통해 이미지 임베딩 생성)}\)
\(z_T = f_{T}(T) \quad\text{(텍스트 인코더를 통해 이미지 임베딩 생성)}\)
이미지-텍스트 유사도 계산 (Cosine Similarity)
이미지와 텍스트의 관계를 측정하기 위해 코사인 유사도(Cosine Similarity)를 사용합니다.
즉, 이미지 임베딩 \(z_I\)와 텍스트 임베딩 \(z_T\) 간의 내적(Dot Product)을 계산하고, 각각을 L2 정규화하여 유사도를 구합니다.
\(S(I, T) = \frac{z_I \cdot z_T}{\|z_I\| \|z_T\|}\)
대칭적인 소프트맥스 확률 계산 (Symmetric Softmax)
CLIP은 이미지 → 텍스트, 텍스트 → 이미지 방향으로 각각 대칭적인 확률을 계산합니다.
✔ 즉, 이미지가 주어졌을 때 올바른 텍스트 예측 \((P_{T|I})\)
✔ 텍스트가 주어졌을 때 올바른 이미지 예측 \((P_{I|T})\)
\(P(T_j | I_i) = \frac{\exp(S(I_i, T_j) / \tau)}{\sum_{k=1}^{N} \exp(S(I_i, T_k) / \tau)}\)
\(P(I_i | T_j) = \frac{\exp(S(I_i, T_j) / \tau)}{\sum_{k=1}^{N} \exp(S(I_k, T_j) / \tau)}\)
✔ \(\tau\)는 온도(Temperature) 매개변수로, 분포의 스케일을 조정하는 역할을 함.
✔ \(P(T_j | I_i)\)는 이미지 \(I_i\)가 주어졌을 때, 텍스트 \(T_j\)가 정답일 확률
✔ \(P(I_i | T_j)\)는 텍스트 \(T_j\)가 주어졌을 때, 이미지 \(I_i\)가 정답일 확률
대칭적인 교차 엔트로피 손실(Symmetric Cross Entropy Loss)
CLIP은 이미지-텍스트, 텍스트-이미지 방향에서 각각 교차 엔트로피 손실을 적용합니다.
\(L_{\text{image}} = -\frac{1}{N} \sum_{i=1}^{N} \log P(T_i | I_i)\)
\(L_{\text{text}} = -\frac{1}{N} \sum_{i=1}^{N} \log P(I_i | T_i)\)
✔ \(L_{\text{image}}:\) 이미지에서 올바른 텍스트를 예측하는 손실
✔ \(L_{\text{text}}:\) 텍스트에서 올바른 이미지를 예측하는 손실
최종 손실 함수는 두 개의 손실을 합산한 값으로 정의됨
\(L = L_{\text{image}} + L_{\text{text}}\)

코드로도 어떤식으로 구현이 되어 있는가를 보면 상기 설명되어 있는 식대로 계산하는 것을 볼 수 있습니다.
2.4 Choosing and Scaling a Model
CLIP의 학습 설정 및 모델 확장 (Training Setup & Model Scaling) 상세 설명
이 부분에서는 CLIP이 어떤 모델을 학습했는지, 학습 설정은 어떻게 했는지, 그리고 학습을 최적화하기 위해 어떤 기법을 적용했는지를 설명합니다.
즉, ResNet과 Vision Transformer(ViT) 기반의 모델을 다양한 크기로 확장하여 학습했으며, 이를 위한 최적의 하이퍼파라미터 및 메모리 최적화 기법을 적용했다는 내용입니다.
본 연구에서는 Image Encoder로 두 가지 다른 모델을 이용했다.
- ResNet-50
- Vision Transformer(ViT)
Text Encoder로는 Transformer를 이용했다.
ResNet-50
✔ EfficientNet 스타일 모델 확장 적용
- 단순히 모델을 깊게(Deep) 만드는 것이 아니라, EfficientNet처럼 너비(Width), 깊이(Depth), 해상도(Resolution)를 동시에 확장하는 방식 적용
| 모델명 | 연산량 |
| RN50x4 | ResNet-50의 4배 |
| RN50x16 | ResNet-50의 16배 |
| RN50x64 | ResNet-50의 64배 |
CLIP은 단순한 ResNet-50/101을 사용하는 것이 아니라, EfficientNet 스타일의 확장을 적용하여 더 강력한 모델을 실험했다
Vision Transformer (ViT) 기반 모델 (Transformer 기반)
✔ CLIP에서는 3가지 ViT(Vision Transformer) 모델을 학습
✔ ViT 모델의 명명법은 “B”는 Base 모델, “L”은 Large 모델, “/” 뒤 숫자는 패치 크기(Patch Size)를 의미
| 모델명 | 패치 크기 |
| ViT-B/32 | 32×32 |
| ViT-B/16 | 16×16 |
| ViT-L/14 | 14×14 |
✔ 패치 크기가 작을수록 더 세밀한 정보를 학습 가능하지만, 연산량도 증가함.
✔ ViT-B/32 < ViT-B/16 < ViT-L/14 순으로 성능이 향상됨
추가적인 고해상도 학습 (ViT-L/14@336px)
“For the ViT-L/14 we also pre-train at a higher 336 pixel resolution for one additional epoch to boost performance similar to FixRes (Touvron et al., 2019).”
✔ ViT-L/14 모델을 기본 해상도(224px)에서 학습한 후, 336px 고해상도로 추가 학습
✔ FixRes(Fixed Resolution) 기법을 적용하여 모델 성능을 향상
✔ 이 모델을 ViT-L/14@336px로 명명
2.5. Training
CLIP의 학습 설정 (Training Setup)
✔ 모든 모델은 32 에포크(Epoch) 동안 학습
✔ 대규모 데이터셋을 사용했기 때문에 긴 학습 기간이 필요하지 않음.
✔ 옵티마이저는 Adam (Kingma & Ba, 2014) 사용
✔ Weight Decay 정규화 적용 → 과적합 방지
✔ Cosine Learning Rate Decay 적용하여 학습 후반부에 부드럽게 학습 속도 감소
학습 안정성 & 메모리 최적화 기법
✔ CLIP은 대조 학습(Contrastive Learning)에서 “온도(Temperature)” 파라미터(τ)를 학습 가능하도록 설계
✔ τ는 초기값 0.07로 설정하고, 최대 100을 넘지 않도록 제한하여 학습 안정성 유지
대규모 배치 사이즈 적용
✔ 미니배치 크기(Batch Size) = 32,768 (32K)
✔ 대규모 Contrastive Learning을 위해 엄청난 배치 크기 사용
신기하긴 합니다... 우린 기껏 해봐야 1만개 텍스트 데이터에 배치사이즈 2? 4? 이정도가 최대인걸..
학습 속도 및 메모리 최적화
✔ Mixed-Precision 연산(FP16 사용) → 연산 속도 향상 및 메모리 절약
✔ Gradient Checkpointing → 메모리 사용량 감소
✔ Half-Precision Adam → Adam 옵티마이저의 통계를 FP16으로 저장하여 메모리 절약
✔ Half-Precision Text Encoder Weights → 텍스트 인코더 가중치를 FP16으로 저장하여 메모리 절약
3. Experiments
3.1.1. Motivation
CLIP의 Zero-Shot Learning 개념 및 기존 연구 비교 (Zero-Shot Transfer in CLIP)
이 부분에서는 CLIP이 기존의 Zero-Shot Learning 개념을 어떻게 확장했으며, 기존 연구와 어떻게 차별화되는지를 설명합니다.
즉, CLIP은 단순한 Zero-Shot 분류(Classification)가 아니라, Zero-Shot Transfer를 통한 다양한 데이터셋 일반화(Task Learning)를 목표로 한다는 내용입니다.
결론: CLIP의 Zero-Shot Transfer는 “새로운 태스크(Task) 학습 능력”을 평가하는 방법!
✔ 기존 Zero-Shot Learning은 새로운 객체(Category) 일반화를 연구했음.
✔ CLIP은 이를 확장하여 “새로운 데이터셋과 태스크(Task)로의 일반화 능력”을 평가하는 방향으로 발전시킴.
✔ 기존 데이터셋(CIFAR-10, ImageNet 등)에서 Zero-Shot Transfer를 평가하는 것은 “모델의 도메인 일반화 능력(Robustness & Distribution Shift Handling)“을 평가하는 것과 동일
✔ NLP에서 GPT-2가 Zero-Shot Transfer를 연구한 것처럼, CLIP도 “사전 학습(Pre-training)만으로 새로운 태스크를 수행할 수 있는가?”를 연구하는 것이 핵심!
모티베이션이 너무 긴데 결국 얘기하고자 하는 건 압축해야 할 필요가 있어서 결론만 정리합니다..
3.1.2. Using CLIP for zero-shot transfer
이 부분에서는 CLIP이 어떻게 사전 학습(Pre-training)된 모델을 활용하여 Zero-Shot Classification을 수행하는지를 설명합니다.
CLIP의 Zero-Shot Learning 개념
✔ CLIP은 사전 학습 단계에서 이미지와 텍스트가 서로 매칭되는지를 예측하는 Contrastive Learning을 수행
✔ 즉, 정확한 라벨 없이도 이미지-텍스트 관계를 학습하는 방식
✔ CLIP은 새로운 이미지에 대해 Zero-Shot Classification을 수행할 때, 이 학습된 능력을 재사용함
✔ 즉, 새로운 클래스를 학습하지 않고도 Zero-Shot으로 예측 가능
CLIP의 Zero-Shot Classification 과정
✔ 예를 들어, ImageNet 데이터셋을 Zero-Shot으로 예측하려면?
✔ ImageNet의 1000개 클래스명을 텍스트로 변환 (ex: “A photo of a dog.”)
✔ 즉, CLIP은 클래스 라벨을 자연어 문장으로 변환하여 활용
이미지 및 텍스트 임베딩 계산
✔ 이미지 인코더(Image Encoder) → 입력 이미지의 특징 벡터 생성
✔ 텍스트 인코더(Text Encoder) → 각 클래스 이름을 변환한 문장의 특징 벡터 생성
이미지와 각 텍스트의 유사도 계산
✔ 각 이미지와 모든 클래스명(텍스트) 간의 코사인 유사도(Cosine Similarity) 계산
\(S(I, T) = \frac{z_I \cdot z_T}{\|z_I\| \|z_T\|}\)
✔ 유사도 점수를 Temperature Scaling(τ) 적용 후, Softmax로 변환하여 확률값으로 정규화
\(P(T_j | I) = \frac{\exp(S(I, T_j) / \tau)}{\sum_{k=1}^{N} \exp(S(I, T_k) / \tau)}\)
✔ 즉, 이미지와 가장 유사한 클래스명을 가진 텍스트를 예측값으로 선택
CLIP의 Zero-Shot Classification을 확률적 모델로 해석 가능
✔ CLIP의 Zero-Shot 분류 과정은 멀티클래스 로지스틱 회귀(Multinomial Logistic Regression)와 유사한 방식으로 동작
✔ L2 정규화(L2-Normalization)된 입력과 가중치 사용
✔ 바이어스(Bias) 없이 Temperature Scaling 적용
즉, CLIP은 Zero-Shot Classification을 수행할 때, 자연스럽게 로지스틱 회귀 모델처럼 확률을 계산하는 방식으로 동작함
Zero-Shot Classifier의 캐싱(Caching)
✔ 한 번 계산된 Zero-Shot 분류기의 결과(텍스트 임베딩)를 저장(Caching)하여 재사용!
✔ 즉, 매번 텍스트를 인코딩하지 않아도 되므로, 추론 속도가 빨라짐!
💡 결론 : CLIP은 Zero-Shot Classification을 수행할 때, 최적화된 캐싱 기법을 활용하여 빠른 예측이 가능
3.1.3. Initial comparison to visual n-grams

이미지 분류 문제에서 Visual N-grams 방식보다 실험한 3개의 데이터셋 모두에서 zero-shot 성능이 훨씬 뛰어나다.
🎯여기서 Visual n-gram이란?
Visual N-Gram은 이미지 내에서 시각적 요소들을 단어(텍스트)처럼 분할하고, 이를 조합하여 이미지의 의미를 학습하는 방법입니다.
✔ 기존의 N-Gram이 텍스트를 여러 개의 연속된 단어(1-gram, 2-gram, 3-gram 등)로 나누어 학습하는 방식을 시각적 요소(이미지)에 적용한 개념.
✔ 즉, 이미지를 작은 시각적 단위(Visual Features)로 나누고, 이를 조합하여 객체를 학습하는 방식!
결론
✔ 기존 NLP에서 N-Gram은 단어(Word)를 연속된 조합으로 분석
✔ Visual N-Gram에서는 이미지를 작은 시각적 패치(Patch)로 분해하여 학습
더 모를 것 같아서 예제
🔹 텍스트에서 N-Gram 예제
• "I love machine learning" → Bi-gram(2-gram): ["I love", "love machine", "machine learning"]
🔹 이미지에서 Visual N-Gram 예제
• 🐶 강아지 사진 → Bi-gram(2-gram): ["귀+눈", "눈+코", "코+입"]
• 🏎️ 자동차 사진 → Bi-gram(2-gram): ["타이어+도어", "도어+창문", "창문+지붕"]
결론 : 모든 데이터셋에 대해 CLIP 모델을 통해 성능이 향상된 것을 알 수 있다.
3.1.4. Prompt engineering and ensembling
Prompt Engineering(프롬프트 엔지니어링) Ensembling(앙상블 기법) CLIP의 Zero-Shot Learning 성능을 향상시키는 핵심 요소입니다.
✔ CLIP은 Zero-Shot Classification을 수행할 때, 클래스명을 “자연어 문장”으로 변환하여 사용
✔ 하지만, 단순한 클래스명보다 더 풍부한 문장을 사용하면 성능이 향상될 수 있음!
| 입력 텍스트 | CLIP의 예측 가능성 |
| "dog" | 예측 성능 낮음 ❌ |
| "A photo of a dog." | 예측 성능 향상 ✅ |
즉, 프롬프트를 더 자연스럽게 만들면 CLIP의 성능이 향상됨
다양한 프롬프트 실험
✔ 특정 데이터셋이나 태스크에 맞게 프롬프트를 최적화할 경우, 성능이 더욱 향상될 수 있음
✔ 데이터셋 유형에 따라 다른 프롬프트 사용 가능

| 데이터 셋 유형 | 기본 프롬프트 | 최적화된 프롬프트 |
| 일반 객체 인식 | "A photo of a {label}." | ✅ "A clear photo of a {label} in high resolution." |
| 애완동물 인식 | "A photo of a {label}." | ✅ "A photo of a {label}, a type of pet." |
| 음식 인식 | "A photo of a {label}." | ✅ "A delicious dish of {label}." |
| 위성 이미지 | "A photo of a {label}." | ✅ "A satellite image of a {label}." |
데이터셋의 특징에 맞는 맞춤형 프롬프트를 사용하면 CLIP의 성능이 개선됨
Ensembling (앙상블 기법)
✔ CLIP은 여러 개의 프롬프트를 조합하여 앙상블(Ensembling) 기법을 적용 가능
✔ 단일 프롬프트보다 여러 프롬프트를 활용하면 성능이 더 좋아질 수 있음
📌 예제: 앙상블 적용 방식
1️⃣ "A photo of a {label}."
2️⃣ "A realistic drawing of a {label}."
3️⃣ "A high-quality image of a {label}."
4️⃣ 모든 프롬프트 결과를 결합하여 최종 예측 생성
즉, 여러 프롬프트를 조합하여 CLIP의 성능을 극대화할 수 있음

앙상블 기법과 다양한 프롬프팅 기법을 적용 시킨 결과를 잘 설명해줌
3.1.5. Analysis of zero-shot CLIP performance
다양한 image classification 데이터셋에 대한 CLIP의 zero-shot 성능을 비교

CLIP의 성능을 확인하기 위해, Linear Probe 방식을 통해 fine tuning을 시킨 ResNet-50 모델과 여러가지 데이터셋에 대해 성능을 비교했는데 그 결과는 상기 차트와 같습니다
- Linear Probe 방식은 모델의 파라미터는 그대로 두고, 모델의 맨 마지막 출력 부분에 Classification을 위한 Linear layer만 추가해 그 부분만 학습시키는 방법이랍니다.
CLIP이 더 약한 성능을 보인 데이터셋을 살펴보면 더 복잡하거나 추상적인 태스크를 가진 데이터셋이었습니다
가령 예를 들어, 성능 차이가 심한 EuroSAT은 인공위성 이미지를 분류하는 태스크라고 합니다.
Supervised learning을 한 모델(ResNet-50)과 그렇지 않은 모델(CLIP)을 비교한 것이기에 CLIP에서 성능이 좋지 않다고 나온 태스크를 CLIP이 정말 못 한다고 단정지을 수는 없다고 판단됩니다.
그래서 추가로 zero-shot CLIP 모델을 few-shot 모델들과 비교했는데, 그 결과는 다음과 같습니다.

SimCLR와 비교하면 16-shot SimCLR가 Zero-shot CLIP과 성능이 비슷한 것을 알 수 있습니다.
결론 : 모든 크기에서 CLIP모델이 다른 모델보다 좋은 성능을 냈다. (특히 제로샷을 기반으로한)
3.3 Robustness to Natural Distribution Shift
이미지의 특성을 최대한 잘 설명하는 어떤 feature(representation)을 잘 뽑아 이를 다른 다운스트림 태스크에 활용하겠다는 것인데, CLIP은 이런 image representation을 상당히 잘 뽑는 것 같음.
모델의 representation learning 성능은 뽑아진 representation을 선형모델에 넣은 성능으로 평가하며, CLIP 논문에서도 이와 같은 방법을 사용하였습니다.

작은 모델은 기존의 SOTA보다 조금 낮은 성능을 보이지만 가장 큰 모델인 ResNetx64, ViT 기반 모델의 경우 다른 모델에 전부 앞선다.
EfficientNet과 비교해 봐도 성능이 좋다.

3.3 Robustness to Natural Distribution Shift
기계학습 모델의 경우 근본적으로 과적합 위험 및 일반화 실패(혹은 낮은 일반화 성능)의 가능성이 항상 있는데, 이는 training set과 test set의 distribution이 동일할 것이라는 가정에 기초해 있기 때문이기도 합니다. 이러한 차이를 distribution shift라고 합니다.
먼저 아래는 task shift에 관한 것입니다. 다른 task로 transfer를 수행했을 때 CLIP의 representation이 얼마나 더 나은지 보여주는 그림입니다.

ImageNet류의 데이터셋이 여러 개 있는데, 바나나를 예로 들면
- ImageNet V1은 통상적인 바나나 상품 사진이라면,
- ImageNet V2는 좀 더 다양한 모양의 바나나 사진을,
- ImageNet-R은 실제 바나나 사진뿐만 아니라 그림이나 여러 변형이 일어난 사진
- ObjectNet은 다양한 배경이나 상황의 바나나 사진
- ImageNet Sketch는 바나나 스케치 사진
- ImageNet-A는 굉장히 다양한 구도의 바나나 사진
이런 데이터를 갖고 있는 데이터셋들인데, 각각 data distribution이 다를 것임을 쉽게 알 수 있습니다.
ResNet101과 비교하여, CLIP은 zero-shot 성능을 위 데이터셋에서 비교했을 때 훨씬 더 성능이 높음을 알 수 있다. 즉, distribution shift에 상당히 강건하다는 표현을 사용합니다(Robust)

4. Comparison to Human Performance

인간의 성능을 측정하기 위해, 본 연구에서는 5명을 대상으로 Oxford IIT Pets dataset에서 3669개의 이미지를 보고 37개의 class로 classification을 하도록 시켰는데
흥미로운 것은, 인간의 성능을 보게 되면 Zero-shot에서 One-shot으로 갈 때는 유의미한 성능 향상이 있지만 One-shot에서 Two-shot으로 갈 때는 성능 변화가 미미하다는 것
사람이 더 멍청하게 고른다는 사실...
이것이 의미하는 것은 인간은 자기가 무엇을 알고 무엇을 모르는지 알고 있다는 것이랍니다.
Zero shot에서 몰랐던 내용 중 예시 하나만 주어져도(One-shot) 알게 되는 내용이 생기지만, 예시를 추가한다고 해서 더 알게 되지는 않은 것으로 보아 이렇게 추측한 것으로 이해함
CLIP은 이와 다른게 shot을 늘려갈수록 성능이 계속 증가한 것으로 보아, 알고리즘적으로 개선할 여지가 있다고 판단
5. Limitations
- 특정 태스크에서는 CLIP이 여전히 좋지 않은 성능을 보인다는 것 (모델 분류, 꽃의 종 분류 등 태스크가 복잡한 것들)
- 인터넷 상에서 가져온 (image, text) 페어를 통해 학습되었는데, 필터링이 되지 않았다는 문제가 있다. (이에 따라 social biases를 그대로 학습할 가능성 있음)
- 더하여 앞선 human performance와 비교 실험에서 살펴보았듯이, CLIP에서 zero-shot 성능을 더욱 상승시킬 수 있는 few-shot 방법에 대해 후속 연구가 필요함
정리하며..
멀티모달의 시초가 될 수 있는 CLIP을 정리해보았는데, 생각보다 논문 양이 방대하다..(약 48페이지)
논문 내용 자체가 여러 태스크들과 다른 모델들을 비교하면서 실험을 하다보니 내용이 비대해지면서 가독성이 떨어지는 부분이 생김, 스터디 하면서도 스터디원들도 굉장히 고역이었다는... 장장 5시간을 이해하는데에 힘을 쏟음
원래 같았으면 정리하는 글 잘 쓰질 않는데 어떠한 방식으로 논문을 바라봐야 하는지에 대해서 정리할 수 있는 시간이 되었고
2편에서는 그에 따른 실제 코드도 구현해볼 생각
참조
https://greeksharifa.github.io/computer%20vision/2021/12/19/CLIP/#311-motivation
Python, Machine & Deep Learning
Python, Machine Learning & Deep Learning
greeksharifa.github.io
https://taeyuplab.tistory.com/16
[논문 리뷰] CLIP: Learning Transferable Visual Models From Natural Lanugage Supervision
이 글에서는 2021년 1월 5일 발표된 논문인 Learning Transferable Visual Models From Natural Language Supervision에 대해 살펴볼 예정이다. 본 논문은 ChatGPT를 비롯한 GPT 모델 시리즈를 발표한 OpenAI로부터 발표되었
taeyuplab.tistory.com