VLA 선행 연구 - 전체 목차4편

논문해석 - Learning Transferable Visual Models From Natural Language Supervision

들어가며

3편 ViT는 이미지를 패치 토큰열로 바꿔 Transformer로 분류했습니다. 다만 학습 방식은 기존 이미지 분류와 같았습니다. ImageNet이나 JFT-300M처럼 사람이 정해 둔 클래스 목록이 있고, 모델은 그 목록 중 하나를 고르도록 학습합니다. 목록에 없는 개념을 인식하게 하려면 라벨을 새로 붙인 데이터를 모아 다시 학습해야 합니다.

2편 GPT-3은 자연어 처리에서 반대 방향의 결과를 보였습니다. 인터넷 텍스트를 그대로 학습한 언어 모델은 작업별 데이터 없이도 프롬프트만으로 여러 작업을 수행했습니다.

CLIP(Contrastive Language-Image Pre-training) 은 이 방식을 이미지에 적용합니다. 인터넷에서 이미지와 그 이미지에 붙은 텍스트 4억 쌍을 모으고, 이미지 부호기와 텍스트 부호기가 "어떤 이미지와 어떤 텍스트가 한 쌍인지"를 맞히도록 함께 학습합니다. 학습이 끝나면 분류하고 싶은 클래스 이름을 문장으로 적어 텍스트 부호기에 넣기만 하면 분류기가 만들어집니다. 저자들은 이 방식으로 ImageNet 학습 이미지 128만 장을 한 장도 쓰지 않고 원래 ResNet-50과 같은 정확도를 냈습니다.

📄 Learning Transferable Visual Models From Natural Language Supervision — Alec Radford, Jong Wook Kim (공동 1저자), Chris Hallacy, Aditya Ramesh, Gabriel Goh, Sandhini Agarwal, Girish Sastry, Amanda Askell, Pamela Mishkin, Jack Clark, Gretchen Krueger, Ilya Sutskever / OpenAI, ICML 2021

코드와 사전학습 가중치는 github.com/OpenAI/CLIP에 공개돼 있습니다. arxiv 식별자는 2103.00020이고, 이 글은 2021-02-26에 올라온 v1을 기준으로 합니다.

초록 요약

최신 컴퓨터 비전 시스템은 미리 정해 둔 고정된 물체 클래스만 예측하도록 학습합니다. 이런 지도 방식은 다른 시각 개념을 다루려면 라벨 데이터를 또 모아야 해서 범용성이 떨어집니다. 이미지에 딸린 텍스트에서 직접 배우면 훨씬 넓은 지도 신호를 쓸 수 있습니다. 저자들은 "어떤 캡션이 어떤 이미지와 짝인가"를 맞히는 단순한 사전학습 과제만으로, 인터넷에서 모은 (이미지, 텍스트) 4억 쌍에서 최고 수준의 이미지 표현을 처음부터 학습할 수 있다고 보입니다. 사전학습 뒤에는 자연어로 학습된 시각 개념을 가리키거나 새 개념을 설명해, 모델을 추가 학습 없이(zero-shot) 다른 작업에 옮겨 씁니다. 문자 인식(OCR), 영상 속 행동 인식, 촬영 위치 추정, 여러 세분류 작업을 포함한 30개가 넘는 데이터셋에서 평가했고, 대부분의 작업에서 데이터셋별 학습 없이 완전 지도 기준선과 견줄 만한 성능을 냈습니다.

그림 1 — CLIP 방법 요약

그림 1 — (1) 이미지·텍스트 부호기의 대조 사전학습, (2) 클래스 이름으로 분류기 만들기, (3) zero-shot 예측.

위 그림은 CLIP의 학습과 사용을 세 단계로 보여줍니다. (1)에서는 배치 안의 이미지 NN장과 텍스트 NN개를 각각 부호기에 넣어 벡터를 얻고, N×NN \times N 격자에서 대각선 위치(실제 짝)의 유사도는 높이고 나머지는 낮춥니다. (2)에서는 분류할 클래스 이름을 "A photo of a {object}." 문장에 넣어 텍스트 부호기로 벡터를 만듭니다. (3)에서는 새 이미지의 벡터와 가장 유사한 클래스 문장 벡터를 골라 예측합니다. 기존 이미지 모델이 이미지 특징 추출기와 선형 분류기를 함께 학습했다면, CLIP은 이미지 부호기와 텍스트 부호기를 함께 학습하고 선형 분류기의 가중치를 텍스트 부호기가 만들어 냅니다.


1. 문제 — 고정 라벨로 학습한 비전 모델의 한계

자연어 처리와 비전의 차이

자연어 처리에서는 원시 텍스트로 사전학습하는 방법이 몇 년 사이 표준이 됐습니다. 자기회귀 언어 모델링과 마스크 언어 모델링 같은 작업 무관 목표는 계산량·모델 크기·데이터를 늘릴수록 성능이 계속 올랐습니다. 입력과 출력을 모두 텍스트로 통일하자 작업별 출력 층 없이 zero-shot 전이가 가능해졌고, GPT-3은 작업 전용 모델과 견줄 만한 수준까지 왔습니다.

컴퓨터 비전에서는 여전히 ImageNet처럼 사람이 라벨을 붙인 데이터셋으로 사전학습하는 것이 표준이었습니다.

텍스트로 이미지 표현을 배우던 기존 연구

텍스트에서 이미지 표현을 배우려는 시도는 20년이 넘었지만 성능이 낮았습니다.

기존 연구방법한계
Mori et al. (1999)이미지에 딸린 문서의 명사·형용사를 예측해 이미지 검색 개선초기 개념 검증
Joulin et al. (2016)YFCC100M 이미지의 제목·설명·해시태그를 단어 가방(bag-of-words) 다중 라벨 분류로 학습ImageNet 사전학습과 비슷한 수준에 그침
Visual N-Grams (Li et al., 2017)구 단위 n-gram 사전으로 zero-shot 분류ImageNet zero-shot 정확도 11.5%
VirTex · ICMLM · ConVIRT (2020)Transformer 언어 모델링, 마스크 언어 모델링, 대조 목표로 텍스트에서 이미지 표현 학습이미지 10만~20만 장, 가속기 수일 규모
Mahajan et al. (2018)인스타그램 이미지의 ImageNet 관련 해시태그 예측클래스 1000개로 지도 신호를 좁힘
Kolesnikov et al. (2019) · Dosovitskiy et al. (2020)노이즈 섞인 JFT-300M 라벨 예측클래스 18291개로 제한, 고정 소프트맥스 분류기

Visual N-Grams의 11.5%는 당시 최고 성능 88.4%에 한참 못 미치고, 고전적인 컴퓨터 비전 방법의 50%보다도 낮습니다. 그래서 실제로는 해시태그나 JFT 라벨처럼 범위를 좁힌 약한 지도가 더 좋은 결과를 냈습니다.

저자들은 이 절충안에 두 가지 문제가 있다고 봅니다. 첫째, 지도 신호를 1000개 또는 18291개 클래스로 미리 제한합니다. 자연어는 훨씬 넓은 시각 개념을 표현할 수 있습니다. 둘째, 고정된 소프트맥스(softmax) 분류기로 예측하므로 새 클래스를 출력할 방법이 없고, zero-shot 능력이 크게 제한됩니다.

두 방향의 결정적인 차이는 규모였습니다. 해시태그·JFT 계열은 수백만수십억 장을 가속기 수년 동안 학습했지만, 자연어 지도 계열은 10만20만 장을 가속기 며칠 학습했습니다. CLIP은 이 규모 차이를 없애고 자연어 지도를 대규모로 학습했을 때의 결과를 확인합니다.


2. 데이터셋 — WIT 4억 쌍

기존 데이터셋의 규모

기존 연구는 주로 MS-COCO, Visual Genome, YFCC100M을 썼습니다.

데이터셋규모문제
MS-COCO학습 사진 약 10만 장사람이 라벨을 붙인 고품질 데이터지만 규모가 작음
Visual Genome학습 사진 약 10만 장같음
YFCC100M사진 1억 장메타데이터 품질이 낮음. 영어 제목·설명이 있는 이미지만 남기면 1500만 장으로 6분의 1이 되어 ImageNet과 비슷한 크기

YFCC100M의 제목에는 20160716_113957.JPG 같은 자동 생성 파일명이나 카메라 노출 설정이 들어 있는 경우가 많습니다. 다른 비전 시스템은 인스타그램 사진 35억 장까지 학습에 쓰고 있었으므로, 기존 데이터셋만으로는 자연어 지도의 가능성을 과소평가하게 됩니다.

WIT 구성 방법

저자들은 인터넷의 여러 공개 출처에서 (이미지, 텍스트) 4억 쌍을 새로 모았고, 이를 WIT(WebImageText) 라고 부릅니다.

  • 검색어 50만 개 — 텍스트에 이 검색어 중 하나가 들어간 쌍을 모아 시각 개념을 넓게 덮습니다.
  • 검색어 목록 — 영어 위키백과에 100번 이상 나온 단어 전체, 점별 상호정보량(pointwise mutual information)이 높은 두 단어 조합, 검색량이 일정 수준 이상인 위키백과 문서 제목, 목록에 없는 WordNet 동의어 집합을 합칩니다.
  • 클래스 균형 — 검색어 하나당 최대 2만 쌍까지만 넣어 대략 균형을 맞춥니다.

전체 단어 수는 GPT-2 학습에 쓴 WebText 데이터셋과 비슷합니다.


3. 사전학습 방법 — 효율을 기준으로 한 선택

계산 비용 문제

최신 비전 모델은 계산량이 매우 컸습니다. ResNeXt101-32x48d는 GPU 19년, Noisy Student EfficientNet-L2는 TPUv3 코어 33년이 들었습니다. 두 모델 모두 ImageNet 클래스 1000개만 예측합니다. 자연어로 열린 시각 개념 집합을 배우려면 이보다 훨씬 효율적인 방법이 필요했고, 저자들은 zero-shot 전이 성능이 오르는 속도를 기준으로 사전학습 방법을 골랐습니다.

그림 2 — 사전학습 목표별 효율

그림 2 — 같은 이미지 수를 학습했을 때 ImageNet zero-shot 정확도: 캡션 예측 < 단어 가방 예측 < 대조 학습.

세 가지 목표 비교

사전학습 목표예측 대상ImageNet zero-shot 학습 속도
Transformer 언어 모델 (VirTex와 비슷)캡션의 단어를 순서대로 정확히 생성기준
단어 가방 예측 (Joulin et al., 2016)캡션에 들어 있는 단어 집합언어 모델보다 3배 빠름
단어 가방 + 대조 목표배치 안에서 어떤 텍스트 전체가 이 이미지의 짝인지단어 가방 예측보다 다시 4배 빠름

처음 시도한 방식은 VirTex처럼 이미지 CNN과 텍스트 Transformer를 처음부터 함께 학습해 캡션을 생성하는 것이었습니다. 하지만 파라미터 6300만 개짜리 Transformer 언어 모델은 이미지 부호기인 ResNet-50보다 이미 계산량이 2배인데도, 같은 텍스트의 단어 가방을 예측하는 단순한 기준선보다 ImageNet 클래스를 3배 느리게 배웠습니다.

두 방식은 모두 이미지에 딸린 텍스트의 정확한 단어를 예측하려 합니다. 같은 이미지에도 설명·댓글·관련 텍스트가 매우 다양하게 붙기 때문에 어려운 과제입니다. 이미지 대조 표현 학습 연구에서는 대조 목표가 같은 조건의 예측 목표보다 표현을 더 잘 배우고, 생성 모델은 같은 성능에 10배 넘는 계산이 든다는 결과가 나와 있었습니다. 저자들은 단어를 맞히는 대신 텍스트 전체가 어떤 이미지와 짝인지만 맞히는 쉬운 대리 과제로 바꿨고, 효율이 4배 더 올랐습니다.


4. 대조 학습 목표

배치 단위 짝 예측

(이미지, 텍스트) NN쌍이 들어 있는 배치가 주어지면, CLIP은 N×NN \times N가지 가능한 조합 중 실제로 존재한 짝이 무엇인지 예측합니다.

두 부호기는 공통 다중 모달 임베딩 공간(multi-modal embedding space)을 함께 학습합니다. 실제 짝 NN개의 이미지 임베딩과 텍스트 임베딩 사이 코사인 유사도(cosine similarity)는 최대화하고, 잘못된 조합 N2NN^2 - N개의 코사인 유사도는 최소화합니다. 손실은 이 유사도 점수에 대한 대칭 교차 엔트로피(symmetric cross entropy)입니다.

ii번째 이미지 임베딩을 IiI_i, jj번째 텍스트 임베딩을 TjT_j(둘 다 L2 정규화), 온도(temperature)를 τ\tau라고 하면 식은 다음과 같습니다.

Limage=1Ni=1Nlogexp(IiTi/τ)j=1Nexp(IiTj/τ),Ltext=1Nj=1Nlogexp(IjTj/τ)i=1Nexp(IiTj/τ)\mathcal{L}_{\text{image}} = -\frac{1}{N}\sum_{i=1}^{N}\log\frac{\exp(I_i \cdot T_i / \tau)}{\sum_{j=1}^{N}\exp(I_i \cdot T_j / \tau)}, \qquad \mathcal{L}_{\text{text}} = -\frac{1}{N}\sum_{j=1}^{N}\log\frac{\exp(I_j \cdot T_j / \tau)}{\sum_{i=1}^{N}\exp(I_i \cdot T_j / \tau)} L=Limage+Ltext2\mathcal{L} = \frac{\mathcal{L}_{\text{image}} + \mathcal{L}_{\text{text}}}{2}

Limage\mathcal{L}_{\text{image}}는 이미지 하나를 기준으로 텍스트 NN개 중 짝을 고르는 분류 손실이고, Ltext\mathcal{L}_{\text{text}}는 텍스트 하나를 기준으로 이미지 NN개 중 짝을 고르는 분류 손실입니다. 이 식은 논문의 의사코드를 수식으로 옮긴 것입니다.

이 배치 구성과 목표는 거리 학습(deep metric learning)의 다중 클래스 N-pair 손실(Sohn, 2016)에서 처음 나왔고, 대조 표현 학습에서 InfoNCE 손실(Oord et al., 2018)로 널리 쓰였으며, 의료 영상 분야에서 ConVIRT(Zhang et al., 2020)가 (텍스트, 이미지) 표현 학습에 적용했습니다.

의사코드

그림 3 — CLIP 핵심 구현 의사코드

그림 3 — NumPy 형태로 쓴 CLIP 핵심 구현 의사코드입니다.

그림 속 코드를 그대로 옮기면 다음과 같습니다.

# image_encoder - ResNet or Vision Transformer
# text_encoder - CBOW or Text Transformer
# I[n, h, w, c] - minibatch of aligned images
# T[n, l]       - minibatch of aligned texts
# W_i[d_i, d_e] - learned proj of image to embed
# W_t[d_t, d_e] - learned proj of text to embed
# t             - learned temperature parameter

# extract feature representations of each modality
I_f = image_encoder(I) #[n, d_i]
T_f = text_encoder(T) #[n, d_t]

# joint multimodal embedding [n, d_e]
I_e = l2_normalize(np.dot(I_f, W_i), axis=1)
T_e = l2_normalize(np.dot(T_f, W_t), axis=1)

# scaled pairwise cosine similarities [n, n]
logits = np.dot(I_e, T_e.T) * np.exp(t)

# symmetric loss function
labels = np.arange(n)
loss_i = cross_entropy_loss(logits, labels, axis=0)
loss_t = cross_entropy_loss(logits, labels, axis=1)
loss   = (loss_i + loss_t)/2

labels = np.arange(n)ii번째 이미지의 정답이 ii번째 텍스트라는 뜻입니다. 로짓 행렬의 대각선이 정답입니다.

ConVIRT에서 단순화한 부분

사전학습 데이터가 매우 크기 때문에 과적합은 큰 걱정거리가 아니었고, 저자들은 ConVIRT 구현을 여러 곳에서 단순화했습니다.

항목CLIP의 선택
가중치 초기화이미지 부호기에 ImageNet 가중치, 텍스트 부호기에 사전학습 가중치를 쓰지 않고 처음부터 학습
임베딩 공간 투영비선형 투영 대신 선형 투영만 사용 (두 방식의 학습 효율 차이는 관찰되지 않음)
텍스트 변환 tut_u제거. 텍스트에서 문장 하나를 무작위로 뽑는 과정인데, WIT의 텍스트는 한 문장인 경우가 많음
이미지 변환 tvt_v크기를 조정한 이미지에서 무작위 정사각형 자르기만 사용
온도 τ\tau조절값으로 두지 않고 로그 형태의 곱셈 스칼라로 학습 중 직접 최적화

5. 모델 구조와 학습

이미지 부호기 두 종류

계열기본 구조CLIP에서 바꾼 부분
ResNetResNet-50ResNet-D 개선, antialiased rect-2 blur pooling 적용. 전역 평균 풀링을 주의 풀링(attention pooling) 으로 교체
Vision TransformerViT (3편)패치 임베딩과 위치 임베딩을 합친 뒤 Transformer에 넣기 전에 층 정규화를 하나 추가, 초기화 방식 소폭 변경

주의 풀링은 Transformer 방식의 다중 헤드 QKV 주의 한 층입니다. 질의(query)는 이미지 전체를 평균 풀링한 표현에서 만들고, 키와 값은 공간 위치별 특징에서 만듭니다. 1편의 주의 계산을 풀링 층으로 쓴 형태입니다.

텍스트 부호기

텍스트 부호기는 GPT-2(Radford et al., 2019)의 구조 변경을 적용한 Transformer입니다.

항목
기본 크기파라미터 6300만 개, 12층, 너비 512, 주의 헤드 8개
토큰화소문자로 바꾼 바이트 쌍 부호화(byte pair encoding, BPE)
최대 시퀀스 길이76
시퀀스 경계앞뒤에 [SOS], [EOS] 토큰
텍스트 표현최상위 층의 [EOS] 위치 활성값을 층 정규화한 뒤 임베딩 공간으로 선형 투영
주의 방식마스크 self-attention (사전학습 언어 모델로 초기화하거나 언어 모델링을 보조 목표로 추가할 여지를 남기기 위함)

어휘 크기는 본문 2.4절에 49,152로, 부록 표 18에 49,408로 적혀 있습니다. 공개 코드의 토크나이저 어휘 크기가 49,408이므로 이 글은 표 18의 값을 따릅니다.

규모 확장 방식

ResNet 이미지 부호기는 EfficientNet(Tan & Le, 2019)의 결론을 따라 너비·깊이·해상도에 계산을 나눠 늘립니다. EfficientNet은 세 방향의 비율을 조정했지만, CLIP은 세 방향에 계산을 똑같이 나누는 단순한 기준을 씁니다. 텍스트 부호기는 ResNet 너비가 늘어난 비율만큼 너비만 늘리고 깊이는 그대로 둡니다. CLIP 성능이 텍스트 부호기 용량에는 덜 민감했기 때문입니다.

학습한 모델 8개

ResNet 5개와 Vision Transformer 3개를 학습했습니다. RN50x4, RN50x16, RN50x64는 ResNet-50 대비 계산량이 대략 4배, 16배, 64배입니다.

모델학습률임베딩 차원입력 해상도ResNet 블록ResNet 너비텍스트 층텍스트 너비텍스트 헤드
RN505×1045 \times 10^{-4}1024224(3, 4, 6, 3)2048125128
RN1015×1045 \times 10^{-4}512224(3, 4, 23, 3)2048125128
RN50x45×1045 \times 10^{-4}640288(4, 6, 10, 6)25601264010
RN50x164×1044 \times 10^{-4}768384(6, 8, 18, 8)30721276812
RN50x643.6×1043.6 \times 10^{-4}1024448(3, 15, 36, 10)409612102416
모델학습률임베딩 차원입력 해상도ViT 층ViT 너비ViT 헤드텍스트 층텍스트 너비텍스트 헤드
ViT-B/325×1045 \times 10^{-4}5122241276812125128
ViT-B/165×1045 \times 10^{-4}5122241276812125128
ViT-L/144×1044 \times 10^{-4}768224241024161276812
ViT-L/14-336px2×1052 \times 10^{-5}768336241024161276812

표 19·20 — 모델별 조절값 (부록 F).

학습 설정

항목
에폭32
배치 크기32,768
최적화Adam + 분리된 가중치 감쇠(decoupled weight decay), 이득·편향 제외 전체 가중치에 적용
가중치 감쇠0.2
워밍업 반복2000
Adam β1\beta_1 / β2\beta_20.9 / 0.999 (ResNet), 0.98 (ViT)
Adam ϵ\epsilon10810^{-8} (ResNet), 10610^{-6} (ViT)
학습률 일정코사인 감쇠
온도 τ\tau 초기값0.07에 해당하는 값, 로짓 배율이 100을 넘지 않도록 잘라냄 (학습 불안정 방지)
메모리·속도혼합 정밀도, 경사 체크포인팅, 반정밀도 Adam 통계, 텍스트 부호기 가중치 반정밀도 확률적 반올림
유사도 계산 분산GPU마다 자기 배치 임베딩에 필요한 쌍 유사도만 계산

표 18 — CLIP 공통 조절값 (부록 F)과 2.5절 학습 설정.

가장 큰 ResNet인 RN50x64는 V100 GPU 592개로 18일, 가장 큰 Vision Transformer는 V100 GPU 256개로 12일이 걸렸습니다. ViT-L/14는 FixRes처럼 336 픽셀 해상도로 1에폭을 더 사전학습해 성능을 올렸고, 이 모델을 ViT-L/14@336px라고 부릅니다. 논문에서 따로 밝히지 않은 "CLIP" 결과는 모두 이 모델입니다.


6. zero-shot 분류 방법

zero-shot의 의미

컴퓨터 비전에서 zero-shot 학습은 보통 이미지 분류에서 본 적 없는 물체 클래스로 일반화하는 연구를 가리킵니다. 저자들은 이 말을 더 넓게 써서 본 적 없는 데이터셋으로의 일반화를 zero-shot 전이라고 부릅니다. 표현 학습 능력이 아니라 작업 학습 능력을 재는 방법으로 보는 것입니다.

데이터셋마다 재는 대상의 성격은 다릅니다. SVHN은 구글 스트리트 뷰 사진에서 번지수를 읽는 작업을 잽니다. CIFAR-10이 재는 실제 작업은 분명하지 않지만, 데이터를 뽑은 분포는 TinyImages로 분명합니다. 이런 데이터셋에서 zero-shot 전이는 작업 일반화보다 분포 이동에 대한 강건성을 재는 쪽에 가깝습니다.

텍스트 부호기 기반 분류기 생성

CLIP은 이미지와 텍스트 조각이 한 쌍인지 예측하도록 사전학습됐고, zero-shot 분류는 이 능력을 그대로 씁니다. 데이터셋의 모든 클래스 이름을 후보 텍스트로 두고, 이미지 임베딩과 각 후보 텍스트 임베딩의 코사인 유사도를 계산해 온도로 스케일한 뒤 소프트맥스로 확률을 만듭니다.

이 예측 층은 입력과 가중치가 모두 L2 정규화되고, 편향이 없으며, 온도 스케일을 쓰는 다항 로지스틱 회귀 분류기입니다. 이렇게 보면 이미지 부호기는 이미지 특징을 계산하는 컴퓨터 비전 백본(backbone)이고, 텍스트 부호기는 클래스를 설명하는 텍스트를 받아 선형 분류기의 가중치를 만들어 내는 하이퍼네트워크(hypernetwork)입니다.

같은 관점에서 CLIP 사전학습의 매 단계는 클래스당 예시 1개, 전체 클래스 32,768개를 자연어로 정의한 무작위 컴퓨터 비전 데이터셋을 푸는 것과 같습니다. 평가할 때는 텍스트 부호기가 만든 분류기를 한 번 계산해 저장하고 이후 모든 예측에 재사용하므로, 분류기를 만드는 비용은 데이터셋 전체 예측에 나뉩니다.

Visual N-Grams와의 비교

모델aYahooImageNetSUN
Visual N-Grams72.411.523.0
CLIP98.476.258.5

표 1 — 기존 zero-shot 이미지 분류 결과와의 비교 (정확도 %).

가장 좋은 CLIP 모델은 ImageNet zero-shot 정확도를 11.5%에서 76.2%로 올렸고, 이 데이터셋의 사람 라벨 학습 예시 128만 장을 하나도 쓰지 않고 원래 ResNet-50과 같은 성능을 냈습니다. top-5 정확도는 95%로 Inception-V4와 같습니다. aYahoo에서는 오류 수가 95% 줄었고, SUN에서는 정확도가 두 배 이상입니다.

저자들은 이 비교가 방법끼리의 직접 비교가 아니라고 강조합니다. CLIP은 10배 큰 데이터셋, 예측당 계산이 100배 가까이 많은 비전 모델, 1000배가 넘을 것으로 보이는 학습 계산을 썼고, Visual N-Grams 발표 당시에는 없던 Transformer를 씁니다. 더 가까운 비교로 Visual N-Grams와 같은 YFCC100M에서 CLIP ResNet-50을 학습하자 V100 GPU 하루 안에 그들이 보고한 ImageNet 성능에 도달했습니다. 이 기준선은 ImageNet 가중치로 초기화하지 않고 처음부터 학습했습니다.

이후 평가는 Visual N-Grams의 데이터셋 3개에서 30개가 넘는 데이터셋으로, 비교 대상은 기존 컴퓨터 비전 시스템 50개가 넘는 규모로 넓힙니다.

프롬프트 설계와 앙상블

그림 4 — 프롬프트 설계와 앙상블의 효과

그림 4 — 클래스 이름만 쓸 때보다 프롬프트 설계와 앙상블이 36개 데이터셋 평균 zero-shot 성능을 약 5포인트 올립니다.

대부분의 이미지 분류 데이터셋은 라벨을 숫자 id로 저장하고 영어 이름 매핑 파일을 따로 둡니다. 클래스 이름은 zero-shot 전이를 고려하지 않고 정해진 경우가 많고, Flowers102와 GTSRB는 공개판에 매핑 자체가 없어 zero-shot 전이가 불가능했습니다.

클래스 이름만 텍스트 부호기에 넣으면 생기는 문제는 두 가지입니다.

  • 다의어(polysemy) — 문맥이 없으면 어떤 뜻인지 구분하지 못합니다. ImageNet에는 건설용 크레인(crane)과 새 두루미(crane)가 서로 다른 클래스로 들어 있습니다. Oxford-IIIT Pet의 boxer는 개 품종이지만 텍스트 부호기 입장에서는 권투 선수일 수도 있습니다.
  • 학습 분포와의 차이 — WIT에서 이미지에 붙은 텍스트가 단어 하나인 경우는 드뭅니다. 보통은 이미지를 설명하는 완전한 문장입니다.

저자들은 기본 템플릿으로 "A photo of a {label}."을 씁니다. 이 프롬프트만으로 ImageNet 정확도가 1.3% 오릅니다. 작업에 맞춰 프롬프트를 바꾸면 더 오릅니다.

데이터셋 종류프롬프트 조정
Oxford-IIIT Pets"A photo of a {label}, a type of pet."
Food101, FGVC Aircraft음식 종류, 항공기 종류라고 명시
OCR 데이터셋인식할 텍스트나 숫자를 따옴표로 감쌈
위성 이미지 데이터셋"a satellite photo of a {label}." 변형

여러 zero-shot 분류기를 앙상블(ensemble)해도 성능이 오릅니다. "A photo of a big {label}", "A photo of a small {label}"처럼 문맥이 다른 프롬프트로 분류기를 여러 개 만들고, 확률이 아니라 임베딩 공간에서 평균을 냅니다. 평균 텍스트 임베딩 하나만 저장하면 되므로 예측 비용은 분류기 하나와 같습니다. ImageNet에서는 프롬프트 80개를 앙상블해 기본 프롬프트 하나보다 3.5% 더 올렸고, 프롬프트 설계와 앙상블을 합치면 ImageNet 정확도가 약 5% 오릅니다.

그림 4에서 이 향상은 기존 zero-shot 방식에서 계산량을 4배 늘린 것과 비슷한 크기입니다. 예측이 많아지면 추가 비용이 거의 없습니다.


7. zero-shot 성능 분석

완전 지도 선형 분류기와의 비교

그림 5 — zero-shot CLIP과 ResNet-50 선형 분류기 비교

그림 5 — 27개 데이터셋 중 16개에서 zero-shot CLIP이 ResNet-50 특징 위 완전 지도 로지스틱 회귀보다 높습니다.

비교 기준선은 표준 ResNet-50 특징 위에 완전 지도·정규화 로지스틱 회귀 분류기를 학습한 것입니다. zero-shot CLIP은 27개 데이터셋 중 ImageNet을 포함한 16개에서 이깁니다.

데이터셋 묶음결과
세분류 — Stanford Cars, Food101zero-shot CLIP이 20% 넘게 높음
세분류 — Flowers102, FGVCAircraftzero-shot CLIP이 10% 넘게 낮음
세분류 — OxfordPets, Birdsnap비슷함
일반 물체 — ImageNet, CIFAR10/100, STL10, PascalVOC2007비슷하며 모두 zero-shot CLIP이 조금 높음. STL10 99.3%는 학습 예시 없이 최고 기록으로 보임
영상 행동 인식 — Kinetics700ResNet-50보다 14.5% 높음
영상 행동 인식 — UCF101ResNet-50 특징보다 7.7% 높음
위성 이미지(EuroSAT, RESISC45), 림프절 종양(PatchCamelyon), 합성 장면 물체 세기(CLEVRCounts), 독일 교통 표지판(GTSRB), 가장 가까운 차까지 거리(KITTI Distance)약함

세분류 결과의 편차는 WIT와 ImageNet이 작업마다 담고 있는 지도 신호의 양이 다르기 때문이라고 저자들은 추정합니다. 행동 인식에서 강한 이유는 ImageNet이 명사 중심인 데 비해 자연어는 동사가 들어간 시각 개념까지 지도하기 때문이라고 봅니다. 물체 세기, 위성 이미지 분류, 교통 표지판 인식은 비전문가인 사람도 잘하는 작업이라 개선 여지가 큽니다. 다만 림프절 종양 분류처럼 학습자가 사전 경험이 전혀 없는 어려운 작업에서 few-shot이 아닌 zero-shot으로 재는 것이 의미 있는 평가인지는 분명하지 않다고 덧붙입니다.

few-shot 선형 탐사와의 비교

그림 6 — zero-shot CLIP과 few-shot 선형 탐사

그림 6 — zero-shot CLIP은 같은 특징 공간의 4-shot 선형 분류기 평균 성능과 같고, 공개 모델 중 최고 16-shot 결과에 거의 닿습니다.

zero-shot은 few-shot의 극한이므로 few-shot과의 비교가 더 직접적입니다. 여러 이미지 모델 특징 위에 클래스당 예시 몇 개로 로지스틱 회귀를 학습한 선형 탐사(linear probe)와 비교했습니다. 클래스당 예시가 16개 이상인 데이터셋 20개를 썼습니다.

직관적으로는 zero-shot이 one-shot보다 낮아야 하지만, zero-shot CLIP은 같은 특징 공간의 4-shot 로지스틱 회귀와 성능이 같습니다. 저자들은 원인을 두 방식의 차이에서 찾습니다. CLIP의 zero-shot 분류기는 자연어로 시각 개념을 직접 지정합니다. 반면 일반 지도 학습은 학습 예시에서 개념을 간접적으로 추론해야 하고, 예시 하나에는 여러 시각 개념이 함께 들어 있어 여러 가설이 모두 데이터와 맞을 수 있습니다. 특히 one-shot에서 그렇습니다.

zero-shot 분류기를 few-shot 분류기 가중치의 사전 분포로 쓰는 방법도 시도했습니다. 생성된 가중치 쪽으로 L2 벌점을 거는 구현이었는데, 조절값 최적화가 이 정규화 값을 너무 크게 골라 결국 zero-shot 분류기와 같은 분류기가 나왔습니다.

다른 모델과 비교하면 zero-shot CLIP은 평가 모음에서 가장 좋은 16-shot 분류기, 즉 ImageNet-21K로 학습한 BiT-M ResNet-152x2 특징 위의 분류기와 비슷합니다. JFT-300M으로 학습한 BiT-L은 더 좋겠지만 공개되지 않았습니다. 8장에서 보듯 완전 지도 설정에서는 Noisy Student EfficientNet-L2가 27개 데이터셋 평균으로 BiT-M보다 5% 가까이 높은데, 16-shot에서는 BiT-M ResNet-152x2가 가장 좋다는 점도 눈에 띄는 결과입니다.

zero-shot의 데이터 효율

그림 7 — 데이터셋별 zero-shot 데이터 효율

그림 7 — 같은 CLIP 특징 공간의 선형 분류기가 zero-shot 성능에 도달하려면 클래스당 라벨 예시가 몇 개 필요한지 추정한 값입니다.

zero-shot CLIP도 선형 분류기이므로, 같은 특징 공간 위 로지스틱 회귀가 zero-shot 성능에 도달하는 데 필요한 클래스당 라벨 수를 zero-shot의 실효 데이터 효율로 볼 수 있습니다. 선형 분류기 수천 개를 학습하지 않기 위해 1, 2, 4, 8, 16-shot(가능한 경우)과 완전 지도 결과를 로그-선형 보간해 추정했습니다.

항목
범위클래스당 1개 미만 ~ 184개
one-shot보다 낮은 데이터셋Flowers102, EuroSAT
중앙값5.4개 (데이터셋 절반이 5개 미만)
평균20.8개 (많은 라벨이 필요한 20% 데이터셋 때문)
ImageNet16-shot 선형 분류기와 같음

선형 탐사 성능과의 관계

그림 8 — zero-shot 성능과 선형 탐사 성능의 상관

그림 8 — 두 성능은 강하게 상관하지만 zero-shot이 대부분 10~25포인트 낮습니다.

평가 데이터셋이 충분히 크다면 완전 지도 선형 분류기 성능은 zero-shot 전이가 도달할 수 있는 대략적인 상한입니다. 점선 y=xy=x는 완전 지도 분류기와 같은 성능을 내는 이상적인 zero-shot 분류기입니다. 대부분의 데이터셋에서 zero-shot 분류기는 완전 지도 분류기보다 10%에서 25% 낮고, 3포인트 이내로 가까운 데이터셋은 5개뿐입니다.

zero-shot 성능과 완전 지도 성능 사이 상관계수는 0.82(p값 <106<10^{-6})입니다. CLIP이 기반 표현 학습과 작업 학습을 비교적 일관되게 연결한다는 뜻입니다. zero-shot 성능이 완전 지도 성능에 가까운 5개 데이터셋은 STL10, CIFAR10, Food101, OxfordPets, Caltech101로, 모두 두 성능이 90%를 넘습니다. 기반 표현의 품질이 높은 작업일수록 zero-shot 전이가 효과적일 수 있습니다. 선형 회귀로 보면 완전 지도 성능이 1% 오를 때 zero-shot 성능은 1.28% 오릅니다. 다만 95% 신뢰구간이 1 미만의 값(0.93~1.79)도 포함합니다.

계산량에 따른 zero-shot 성능

그림 9 — 모델 계산량과 zero-shot 오류율

그림 9 — 36개 데이터셋 39개 평가의 평균 zero-shot 오류율이 계산량 44배 범위에서 로그-로그 직선을 따릅니다.

딥러닝 성능은 학습 계산량과 데이터셋 크기의 함수로 예측할 수 있다는 연구가 있었고, GPT 계열은 학습 계산량 1000배 범위에서 zero-shot 성능이 꾸준히 올랐습니다. CLIP ResNet 모델 5개의 평균 오류율도 모델 계산량 44배 범위에서 비슷한 로그-로그 선형 경향을 보입니다. 전체 경향은 매끄럽지만 개별 평가는 훨씬 들쭉날쭉합니다. 저자들은 하위 작업별 학습 실행 사이의 큰 분산이 꾸준한 향상을 가리는 것인지, 일부 작업에서는 성능이 계산량에 따라 실제로 단조롭게 오르지 않는 것인지 알 수 없다고 적습니다.


8. 표현 학습 — 선형 탐사 평가

평가 방식의 선택

표현의 품질은 보통 모델에서 뽑은 특징 위에 선형 분류기를 학습하거나, 모델 전체를 미세조정(fine-tuning)해 잽니다. 대부분의 이미지 분류 데이터셋에서는 미세조정이 선형 분류보다 성능이 높습니다. 그래도 저자들은 선형 분류기 평가를 택했습니다.

  • 미세조정은 데이터셋마다 표현을 바꾸므로, 사전학습 단계에서 범용 표현을 배우지 못한 문제를 가릴 수 있습니다. 선형 분류기는 유연성이 낮아 이런 실패가 드러납니다.
  • CLIP의 zero-shot 분류기도 선형 분류기이므로 7장 분석과 직접 비교할 수 있습니다.
  • 모델 66개를 데이터셋 27개에서 비교하려면 평가 1782개를 조정해야 합니다. 미세조정은 설계·조절값 공간이 훨씬 커서 공정한 비교와 계산이 어렵습니다.

그림 10 — 선형 탐사 성능과 계산 효율

그림 10 — 왼쪽은 Kornblith et al.의 12개 데이터셋 평균, 오른쪽은 더 넓은 27개 데이터셋 평균입니다. 점선은 사전학습보다 높은 해상도로 미세조정·평가한 모델입니다.

12개 데이터셋 평가

선택 편향을 줄이기 위해 먼저 Kornblith et al. (2019)의 12개 데이터셋 평가 모음을 씁니다.

비교결과
작은 CLIP (ResNet-50, ResNet-101) vs ImageNet-1K ResNet (BiT-S, 원래 ResNet)CLIP이 높음
작은 CLIP vs ImageNet-21K ResNet (BiT-M)CLIP이 낮음
작은 CLIP vs 계산량이 비슷한 EfficientNetCLIP이 낮음
가장 큰 CLIP ResNet (ResNet-50x64) vs Noisy Student EfficientNet-L2전체 점수와 계산 효율 모두 CLIP이 조금 높음
CLIP ViT vs CLIP ResNetViT가 계산 효율 약 3배
최고 모델 ViT-L/14@336px vs 기존 최고 모델평균 2.6% 높음

CLIP ViT가 ResNet보다 계산 효율이 좋다는 결과는, 데이터셋이 충분히 크면 Vision Transformer가 합성곱 신경망보다 계산 효율이 좋다는 3편 ViT의 결론과 같습니다.

27개 데이터셋 평가

Kornblith et al.의 모음에는 촬영 위치 추정, OCR, 얼굴 감정 인식, 행동 인식처럼 CLIP이 학습한 작업이 들어 있지 않습니다. ImageNet과 겹치는 작업 쪽으로 치우친 선택 편향일 수 있어서, 이 작업들과 독일 교통 표지판 인식, VTAB에서 가져온 데이터셋을 포함한 27개 데이터셋 모음으로 다시 평가했습니다.

이 넓은 모음에서 CLIP의 이점이 더 분명해집니다. 크기와 상관없이 모든 CLIP 모델이 계산 효율에서 평가한 모든 시스템보다 높고, 최고 모델과 기존 시스템의 평균 점수 차이는 2.6%에서 5%로 커집니다. 자기 지도 시스템도 넓은 모음에서 더 좋은 결과를 냅니다. SimCLRv2는 12개 데이터셋 평균에서는 BiT-M보다 낮지만 27개 데이터셋에서는 BiT-M보다 높습니다.

그림 11 — 데이터셋별 CLIP과 EfficientNet-L2 차이

그림 11 — CLIP 특징 위 선형 분류기가 27개 데이터셋 중 21개에서 Noisy Student EfficientNet-L2보다 높습니다.

CLIP이 크게 앞선 작업데이터셋
OCRSST2, HatefulMemes
촬영 위치 추정·장면 인식Country211, SUN397
영상 행동 인식Kinetics700, UCF101
자동차·교통 표지판 세분류Stanford Cars, GTSRB

GTSRB에서 14.7% 앞선 결과는 ImageNet-1K의 문제를 보여줄 수 있습니다. ImageNet-1K는 모든 교통·도로 표지판에 라벨 하나만 두기 때문에, 지도 학습 표현이 클래스 안의 세부 차이를 뭉개도록 학습될 수 있습니다.

EfficientNet이 앞선 곳도 있습니다. 가장 크게 앞선 데이터셋은 EfficientNet이 학습한 ImageNet입니다. CIFAR10, CIFAR100 같은 저해상도 데이터셋에서도 조금 앞서는데, CLIP에 크기 기반 데이터 증강이 없기 때문일 수 있습니다. PatchCamelyon과 CLEVRCounts에서도 조금 앞서지만 두 방법 모두 성능이 낮은 데이터셋입니다.

그림 12 — 작업 이동에 대한 표현의 강건성

그림 12 — ImageNet 성능이 비슷한 모델끼리 비교하면 CLIP 표현 위 선형 탐사의 전이 점수가 더 높습니다.

ImageNet 성능이 같은 수준인 다른 모델보다 CLIP의 전이 점수가 높다는 것은, ImageNet으로 학습한 모델의 표현이 ImageNet 작업에 어느 정도 과적합돼 있다는 뜻으로 해석됩니다.


9. 자연 분포 이동에 대한 강건성

ImageNet 모델의 강건성 격차

2015년 딥러닝 모델이 ImageNet 시험 세트에서 사람 성능을 넘었다고 발표됐습니다. 하지만 이후 연구는 이 모델들이 여전히 단순한 실수를 많이 하고, 새 벤치마크에서는 ImageNet 정확도와 사람 정확도보다 훨씬 낮다는 것을 반복해서 보였습니다. 흔한 설명은 모델이 학습 데이터셋 안에서만 성립하는 상관관계와 패턴을 잘 찾아 분포 안 성능은 올리지만, 그 상관관계가 다른 분포에서는 성립하지 않는다는 것입니다.

저자들은 이 연구 대부분이 ImageNet으로 학습한 모델만 평가했다는 점을 지적합니다. 실패의 원인이 딥러닝인지, ImageNet인지, 둘의 조합인지는 아직 가려지지 않았습니다.

Taori et al. (2020)은 7개의 자연 분포 이동(natural distribution shift) 데이터셋으로 ImageNet 모델을 평가했습니다. ImageNetV2, ImageNet Sketch, Youtube-BB, ImageNet-Vid, ObjectNet, ImageNet Adversarial, ImageNet Rendition입니다. 모두 여러 출처에서 새로 모은 이미지로, 기존 이미지를 변형해 만든 ImageNet-C나 Stylized ImageNet 같은 합성 분포 이동과 구분합니다.

개념정의
실효 강건성(effective robustness)분포 안 정확도와 분포 밖 정확도 사이의 알려진 관계로 예측한 값보다 분포 이동 정확도가 더 오른 정도
상대 강건성(relative robustness)분포 밖 정확도의 모든 향상

ResNet-101은 이 자연 분포 이동 데이터셋에서 ImageNet 검증 세트보다 오류가 5배 많습니다. Taori et al.은 분포 이동 정확도가 ImageNet 정확도의 로짓 변환에 대한 선형 함수로 잘 예측된다는 것을 발견했습니다.

zero-shot CLIP의 강건성

zero-shot 모델은 특정 분포에서 학습하지 않았으므로 그 분포에서만 성립하는 상관관계를 이용할 수 없습니다. 따라서 실효 강건성이 훨씬 높을 것으로 기대할 수 있습니다. 다만 사전학습 분포와 평가 분포가 함께 가진 상관관계는 여전히 이용할 수 있다고 저자들은 주의를 줍니다.

그림 13(왼쪽) — zero-shot CLIP과 ImageNet 모델의 강건성 격차

그림 13(오른쪽) — 바나나 클래스로 본 분포 이동

그림 13 — 왼쪽: 점선은 모든 분포에서 성능이 같은 이상적인 강건 모델이며, zero-shot CLIP은 강건성 격차를 최대 75% 줄입니다. 오른쪽: ImageNet 검증 정확도가 같은 ViT-L/14@336px와 ResNet-101의 데이터셋별 바나나 분류 비교입니다.

모든 zero-shot CLIP 모델은 실효 강건성을 크게 높이고, ImageNet 정확도와 분포 이동 정확도 사이 격차를 최대 75% 줄입니다.

모델ININ-V2IN-AIN-RObjectNetIN-SketchIN-Vid PM0IN-Vid PM10YTBB PM0YTBB PM10
NS EfficientNet-L288.380.284.974.768.547.688.082.167.763.5
FixResNeXt101-32x48d V286.478.068.480.057.859.185.872.268.957.7
Linear Probe CLIP85.475.975.384.266.257.489.177.268.763.1
Zero-Shot CLIP76.270.177.288.972.360.295.389.295.288.5

표 16 — ImageNet 계열 분포 이동 데이터셋별 top-1 정확도 (%). IN은 ImageNet (부록 E.5).

zero-shot CLIP은 ImageNet 자체 정확도는 76.2%로 가장 낮지만, ImageNet Rendition·ObjectNet·ImageNet Sketch·ImageNet-Vid·Youtube-BB에서는 가장 높습니다.

ImageNet 적응의 효과

zero-shot 모델이 강건하다고 해서 ImageNet 지도 학습이 강건성 격차의 원인이라는 결론이 나오지는 않습니다. 큰 사전학습 데이터나 자연어 지도 같은 CLIP의 다른 요소가 강건성을 만들었을 수도 있습니다. 이를 가리기 위해 CLIP 특징 위에 ImageNet 학습 세트로 L2 정규화 로지스틱 회귀를 학습해 ImageNet 분포에 적응시켰습니다.

그림 14 — 강건성 개입 두 가지

그림 14 세부 — 데이터셋별 정확도 변화

그림 14 — ImageNet 지도 적응은 ImageNet 정확도를 9.2% 올리지만 평균 강건성은 조금 낮춥니다. 데이터셋별 zero-shot 분류기는 일부 데이터셋에서 크게 오릅니다.

ImageNet에 적응시키자 ImageNet 정확도는 9.2% 올라 85.4%가 됐고, 2018년 최고 기록(Mahajan et al.)과 같아졌습니다. 그런데 분포 이동 평균 정확도는 조금 떨어졌습니다. 최고 기록 약 3년치에 해당하는 9.2% 향상이 분포 이동 성능으로 전혀 이어지지 않은 것입니다.

데이터셋ImageNet 적응 후 변화
ImageNetV2크게 오름 (원래 ImageNet 구축 과정을 그대로 따라 만든 데이터셋)
ImageNet-R−4.7%
ObjectNet−3.8%
ImageNet Sketch−2.8%
ImageNet-A−1.9%
Youtube-BB, ImageNet Vid유의미한 변화 없음

지도 적응의 정확도 향상은 ImageNet 분포 근처에 몰려 있다는 뜻입니다. 이 향상이 주로 "허위 상관관계 이용"에서 오는지, 이 조합에만 해당하는지, 전체 미세조정에서도 같은지는 아직 확실한 답이 없다고 저자들은 적습니다.

다른 개입도 시험했습니다. 7개 전이 데이터셋의 클래스는 ImageNet 클래스와 딱 맞지 않습니다. Youtube-BB와 ImageNet-Vid는 ImageNet의 상위 클래스로 이루어져 있어, Taori et al.은 ImageNet 계층 구조에 따라 하위 클래스 예측을 최대 풀링했습니다. Youtube-BB의 person 클래스는 야구 선수, 신랑, 스쿠버 다이버 클래스를 풀링해 예측하는 식입니다. CLIP은 데이터셋의 클래스 이름으로 zero-shot 분류기를 바로 만들 수 있고, 이렇게 하면 평균 실효 강건성이 5% 오릅니다. 향상은 일부 데이터셋에 몰려 있습니다. ImageNet 클래스와 거의 겹치도록 설계된 ObjectNet도 제작자가 준 클래스 이름을 쓰자 정확도가 2.3% 올랐습니다.

zero-shot에서 완전 지도까지

그림 15 — few-shot CLIP의 강건성

그림 15 — few-shot CLIP도 기존 ImageNet 모델보다 실효 강건성이 높지만 zero-shot CLIP보다는 낮습니다.

최고 CLIP 모델 특징 위에 0-shot, 1-shot, 2-shot, 4-shot, …, 128-shot, 완전 지도 로지스틱 회귀를 학습해 강건성 변화를 봤습니다. few-shot 모델도 기존 모델보다 실효 강건성이 높지만, 학습 데이터가 늘어 분포 안 성능이 오를수록 이 이점이 줄어들고 완전 지도 모델에서는 대부분 사라집니다. 16-shot 로지스틱 회귀는 ImageNet에서 zero-shot CLIP과 성능이 같지만 덜 강건합니다.

실험 전체에서 높은 실효 강건성은 모델이 특정 분포의 학습 데이터를 적게 볼수록 나타났고, 그 대가로 데이터셋별 성능이 낮아졌습니다.


10. 사람과의 비교

Oxford IIT Pets 실험

사람 5명이 Oxford IIT Pets 시험 세트 이미지 3669장을 각각 보고, 고양이·개 품종 37개 중 가장 맞는 것을 고르거나 확신이 전혀 없으면 "모르겠음"을 골랐습니다. zero-shot 조건에서는 품종 예시 없이 인터넷 검색도 하지 않았고, one-shot은 품종마다 예시 이미지 1장, two-shot은 2장을 보여줬습니다.

조건정확도전체 데이터셋 다수결추측한 이미지만 정확도추측한 이미지만 다수결 정확도
Zero-shot 사람53.757.069.763.9
Zero-shot CLIP93.593.593.593.5
One-shot 사람75.780.378.581.2
Two-shot 사람75.785.079.286.1

표 2 — Oxford IIT Pets 클래스별 평균 분류 정확도 (%). "추측한 이미지"는 "모르겠음" 이외의 답을 고른 이미지이고, 다수결은 이미지마다 가장 많이 나온 답(동률 제외)입니다.

작업자가 zero-shot 과제에 성의 없이 임했을 가능성은 STL-10에서 사람 정확도 94%, 주의 확인용 이미지에서 97~100%가 나와 배제했습니다.

사람은 클래스당 예시 하나로 평균 54%에서 76%로 올랐고, 예시를 하나 더 보여줘도 추가 향상은 거의 없었습니다. zero-shot에서 one-shot으로 오른 정확도는 거의 전부 사람이 확신하지 못한 이미지에서 나왔습니다. 사람은 자기가 모르는 것을 알고, 예시 하나로 가장 불확실한 이미지에 대한 사전 지식을 갱신한다는 뜻입니다.

CLIP은 반대입니다. 13장 한계에서 다루듯 zero-shot에서 few-shot 선형 분류기로 넘어가면 성능이 오히려 떨어질 수 있습니다. CLIP의 few-shot 평가는 사전 지식을 효과적으로 쓰지 못하므로, 사전 지식을 few-shot 학습에 제대로 통합하는 방법이 CLIP 알고리즘 개선의 중요한 단계라고 저자들은 봅니다.

그림 16 — CLIP과 사람의 이미지 난이도 비교

그림 16 — 정답 라벨 확률로 잰 CLIP 기준 난이도 순서로 품종을 늘어놓으면, CLIP이 어려워한 품종은 사람도 어려워합니다.

오류가 일치하는 이유로 저자들은 두 가지를 가정합니다. 데이터셋의 노이즈(잘못 라벨된 이미지 포함)와, 사람과 모델 모두에게 어려운 분포 밖 이미지입니다.


11. 데이터 중복 분석

분석 방법

인터넷 규모 데이터로 사전학습하면 평가 데이터셋이 사전학습 데이터에 섞여 들어갈 수 있습니다. 최악의 경우 평가 데이터셋 전체가 들어가 일반화 평가가 무의미해집니다. 학습 전에 중복을 모두 제거하는 방법도 있지만, 평가할 데이터를 미리 전부 알아야 하고 새 평가를 추가할 때마다 다시 학습해야 합니다. 저자들은 대신 중복이 얼마나 있고 성능이 얼마나 달라지는지를 측정했습니다.

  1. 평가 데이터셋마다 중복 검출기를 돌리고, 찾은 최근접 이웃을 사람이 확인해 정밀도를 높게 유지하면서 재현율을 최대화하는 임계값을 데이터셋별로 정합니다. 임계값 이상은 Overlap, 미만은 Clean, 원래 전체는 All로 두고, Overlap 크기를 All 크기로 나눈 비율을 오염 정도로 기록합니다.
  2. CLIP RN50x64의 zero-shot 정확도를 세 부분집합에서 계산하고, All − Clean을 주 지표로 씁니다. 양수면 중복 데이터 과적합으로 부풀려진 정확도의 추정치입니다.
  3. 중복이 적은 경우가 많아, Clean 정확도를 귀무가설로 둔 단측 이항 유의성 검정과 99.5% Clopper-Pearson 신뢰구간도 계산합니다.

결과

그림 17 — 데이터 중복에 따른 정확도 변화

그림 17 — 왼쪽: Overlap과 Clean 사이 zero-shot 정확도 차이. 오른쪽: 중복 비율과 전체 정확도 변화.

항목
조사한 데이터셋35개
중복이 전혀 없는 데이터셋9개 (MNIST, CLEVR, GTSRB처럼 합성·특수 데이터, ObjectNet·Hateful Memes처럼 WIT 구축 이후 데이터)
중복 비율 중앙값 / 평균2.2% / 3.2%
전체 정확도가 0.1% 넘게 달라진 데이터셋7개, Bonferroni 보정 후 유의한 것은 2개
최대 정확도 향상Birdsnap 0.6% (중복 비율 12.1%, 두 번째로 높음)
최대 중복 비율Country211 21.5%, 정확도 향상은 0.2%
99.5% 신뢰구간이 차이 0%를 배제하는 데이터셋35개 중 5개, 그중 2개는 중복 데이터에서 오히려 낮음
단측 이항 검정으로 정확도 향상이 유의한 데이터셋6개

Country211은 YFCC100M으로 만들었고 WIT에는 YFCC100M을 거른 부분집합이 들어 있어 중복이 가장 많습니다. 그런데도 정확도는 0.2%만 올랐습니다. Country211은 촬영 위치 추정을 재는데, 중복 이미지의 학습 텍스트에는 위치가 적혀 있지 않은 경우가 많았습니다. 사전학습 텍스트가 하위 평가가 재는 작업과 관련 없는 경우가 많다는 뜻입니다.

저자들이 밝힌 분석의 약점은 두 가지입니다. 첫째, 검출기는 대리 학습 과제에서 거의 100% 정확도를 내고 수동 확인으로 높은 정밀도를 얻었지만, 4억 개 예시 전체에서 재현율을 확인할 수는 없습니다. 둘째, Overlap과 Clean의 데이터 분포 자체가 다를 수 있습니다. Kinetics-700의 "중복" 상당수는 검은 전환 프레임이라 Overlap 정확도가 20% 낮게 나왔습니다. CIFAR-100은 해상도가 매우 낮아 새나 비행기 같은 작은 물체에서 거짓 양성이 많았습니다. 이런 분포·난이도 차이가 과적합 효과를 가릴 수도 있습니다. 그래도 Mahajan et al. (2018)과 Kolesnikov et al. (2019)도 비슷한 중복 비율과 최소한의 성능 변화를 보고했습니다.


12. 부록 자료

데이터셋 규모와 품질 — YFCC100M 제거 실험

데이터셋선형 분류기 YFCC선형 분류기 WITΔzero-shot YFCCzero-shot WITΔ
Birdsnap47.435.3+12.119.94.5+15.4
Country21123.117.3+5.85.25.3+0.1
Flowers10294.489.8+4.648.621.7+26.9
GTSRB66.872.5−5.76.97.0−0.1
UCF10169.274.9−5.722.932.0−9.1
Stanford Cars31.450.3−18.93.810.9−7.1
ImageNet62.060.8+1.231.327.6+3.7
데이터셋 평균65.566.6−1.129.630.0−0.4
데이터셋 "승리" 수1015−51918+1

표 12 — 필터링한 YFCC100M으로만 학습한 ResNet-50과 같은 크기의 WIT 부분집합으로 학습한 ResNet-50 비교 (부록 D).

YFCC100M에서 영어 텍스트가 있는 1500만 장으로 학습해도 평균 성능과 승리 수는 같은 크기의 WIT와 비슷합니다. 다만 데이터셋별로는 차이가 큽니다. 새·꽃처럼 YFCC에 많은 사진은 YFCC가, 자동차·교통 표지판·행동 영상은 WIT가 앞섭니다. 사전학습 데이터 구성이 하위 작업별 성능을 크게 바꾼다는 뜻입니다.

이미지·텍스트 검색

구분모델Flickr30k 텍스트 검색 R@1 / R@5 / R@10MSCOCO 텍스트 검색 R@1 / R@5 / R@10Flickr30k 이미지 검색 R@1 / R@5 / R@10MSCOCO 이미지 검색 R@1 / R@5 / R@10
미세조정Unicoder-VL86.2 / 96.3 / 99.062.3 / 87.1 / 92.871.5 / 90.9 / 94.946.7 / 76.0 / 85.3
미세조정Uniter87.3 / 98.0 / 99.265.7 / 88.6 / 93.875.6 / 94.1 / 96.852.9 / 79.9 / 88.0
미세조정VILLA87.9 / 97.5 / 98.8-76.3 / 94.2 / 96.8-
미세조정Oscar-73.5 / 92.2 / 96.0-57.5 / 82.8 / 89.8
미세조정ERNIE-ViL88.7 / 98.0 / 99.2-76.7 / 93.6 / 96.4-
zero-shotVisual N-Grams15.4 / 35.7 / 45.18.7 / 23.1 / 33.38.8 / 21.2 / 29.95.0 / 14.5 / 21.9
zero-shotImageBERT-44.0 / 71.2 / 80.4-32.3 / 59.0 / 70.2
zero-shotUnicoder-VL64.3 / 86.8 / 92.3-48.4 / 76.0 / 85.2-
zero-shotUniter83.6 / 95.7 / 97.7-68.7 / 89.2 / 93.9-
zero-shotCLIP88.0 / 98.7 / 99.458.4 / 81.5 / 88.168.7 / 90.6 / 95.237.8 / 62.4 / 72.2

표 13 — zero-shot 이미지·텍스트 검색 (MSCOCO는 5k 시험 세트, 부록 E.1).

CLIP의 사전학습 과제는 곧 텍스트-이미지 검색입니다. Flickr30k 텍스트 검색에서는 zero-shot으로 미세조정한 최고 결과와 견줍니다.

문자 인식(OCR)

구분모델MNISTSVHNIIIT5K 1kHateful MemesSST-2
미세조정SOTA99.896.498.978.097.5
미세조정JOINT--89.6--
미세조정CBoW----80.0
선형원시 픽셀92.5----
선형평가 모음 최고98.9--58.659.0
선형CLIP99.2--77.380.5
zero-shotCLIP88.451.090.063.367.9

표 14 — OCR 성능. Hateful Memes만 개발 세트 ROC AUC이고 나머지는 시험 세트 정확도 (부록 E.2).

그림 19 — Rendered SST2 예시

그림 19 — Rendered SST2 예시

그림 19 — 영화 리뷰 문장을 이미지로 렌더링한 Rendered SST2 데이터셋의 긍정·부정 예시입니다.

CLIP은 디지털로 렌더링된 텍스트에서는 의미 수준의 OCR 표현을 잘 배웠습니다. 반면 손글씨 숫자 MNIST에서는 zero-shot 88.4%로, 원시 픽셀 위 로지스틱 회귀(92.5%)보다 낮습니다.

데이터셋별 선형 탐사와 zero-shot 결과

그림 20 — 27개 데이터셋별 선형 탐사 성능

그림 20 — 부록 표 10의 데이터로 그린 27개 데이터셋별 선형 탐사 성능입니다.

표 11 — 27개 데이터셋 zero-shot 성능

표 11 — CLIP 모델별 27개 데이터셋 zero-shot 성능입니다.

그림 21 — 36개 zero-shot 분류기의 예측 시각화

그림 21 — 36개 데이터셋의 zero-shot 분류기 예측 무작위 예시와 상위 5개 클래스 확률입니다 (Hateful Memes만 불쾌한 내용을 피해 다시 뽑음).

그림 21에는 촬영 위치 추정, OCR, 얼굴 감정 인식, 행동 인식까지 한 모델이 무작위 초기화에서 종단간으로 학습해 수행하는 작업이 모여 있습니다. 지금까지 단일 컴퓨터 비전 모델로 보인 것보다 넓은 작업 범위입니다.


13. 저자가 밝힌 한계

성능

  • 최고 기록과의 격차 — 학습 분할이 있는 데이터셋에서 zero-shot CLIP은 평균적으로 ResNet-50 특징 위 선형 분류기와 비슷한 수준이고, 이 기준선은 대부분 최고 기록보다 한참 낮습니다. 저자들은 zero-shot CLIP이 전체 최고 기록에 닿으려면 계산량이 약 1000배 필요하다고 추정하며, 현재 하드웨어로는 학습할 수 없는 규모입니다.
  • 약한 작업 종류 — 자동차 모델·꽃 종류·항공기 변형 같은 세분류, 이미지 속 물체 개수 세기 같은 추상적·체계적 작업, 사진 속 가장 가까운 차까지 거리 분류처럼 사전학습 데이터에 없을 법한 새 작업에서는 무작위 수준에 가깝습니다.
  • 진짜 분포 밖 데이터 — MNIST 손글씨 숫자 88% 정확도가 대표 사례입니다. 의미·근사 중복 최근접 이웃 검색 모두 사전학습 데이터에 MNIST와 비슷한 이미지가 거의 없음을 확인했습니다. CLIP은 딥러닝의 취약한 일반화 문제를 해결하지 않고, 매우 크고 다양한 데이터로 모든 데이터를 분포 안으로 만들려는 방식이라 이 가정은 쉽게 깨집니다.

방법

  • 고정된 후보 개념 — zero-shot 분류기에 넣은 개념 중에서만 고를 수 있습니다. 새 출력을 생성하는 이미지 캡션 방식보다 제한적이지만, 3장에서 본 것처럼 캡션 기준선은 계산 효율이 훨씬 낮았습니다. 대조 목표와 생성 목표를 함께 학습하는 방법을 제안합니다.
  • 데이터 효율 — 딥러닝의 낮은 데이터 효율을 해결하지 않고 수억 개로 늘릴 수 있는 지도 신호로 보완합니다. 32에폭 동안 본 이미지 128억 장을 1초에 한 장씩 보면 405년이 걸립니다. 자기 지도와 자기 훈련 방법과의 결합을 제안합니다.
  • 평가 방식 — zero-shot을 강조하면서도 개발 중에 수천 장짜리 전체 검증 세트로 성능을 반복 확인했습니다. 주요 결과에 쓴 27개 데이터셋 모음도 CLIP 개발과 함께 맞춰진 면이 있습니다. zero-shot 전이 능력을 재기 위해 설계한 새 벤치마크가 필요합니다.
  • 사회적 편향 — 걸러지지 않은 인터넷 이미지-텍스트 쌍으로 학습해 사회적 편향을 배웁니다(14장).
  • zero-shot에서 few-shot으로의 전환 — 복잡한 작업과 시각 개념은 텍스트만으로 지정하기 어렵고, 실제 학습 예시가 유용합니다. 하지만 CLIP은 few-shot 성능을 직접 최적화하지 않아 선형 분류기로 넘어가면 성능이 오히려 떨어질 수 있습니다. zero-shot에서 one-shot으로 크게 오르는 사람과 다른 점입니다.

14. 사회적 영향 — 편향과 감시

CLIP은 누구나 재학습 없이 자기 클래스를 정의해 분류기를 만들 수 있게 합니다. 고양이와 개를 분류할 수도 있고, 백화점 사진에서 좀도둑을 분류하게 할 수도 있습니다. 후자는 사회적 영향이 크고 AI가 부적합할 수 있는 작업입니다. GPT-3처럼 zero-shot 일반화를 보이는 모델은 능력 범위가 넓고, 많은 능력이 시험해 본 뒤에야 드러난다는 문제를 공유합니다.

FairFace 편향 조사

FairFace는 나이·성별·인종 균형을 맞춘 얼굴 이미지 데이터셋으로, 성별 2개와 인종 7개 범주를 씁니다. 저자들은 이런 범주 자체에 문제가 있음을 밝히고, 기존 연구와 비교하기 위해서만 이 범주를 썼다고 적습니다.

모델'White' 인종'White' 성별'White' 나이'Non-White' 인종'Non-White' 성별'Non-White' 나이
FairFace Model93.794.259.775.494.460.7
Linear Probe CLIP93.496.563.892.897.763.1
Zero-Shot CLIP58.395.957.191.397.254.3
Linear Probe Instagram90.893.254.287.293.954.1

표 3·4 — FairFace 'White' 범주와 'Non-White' 범주(Black, Indian, East Asian, Southeast Asian, Middle Eastern, Latino 묶음)의 인종·성별·나이 분류 정확도 (%).

본문 7.1절은 이 비교를 "Table 4 and Table 4"로 참조하는데, 두 표를 가리키므로 표 3과 표 4를 뜻합니다.

FairFace로 로지스틱 회귀를 학습한 CLIP(LR CLIP)은 대부분의 분류 시험에서 인스타그램 ResNeXt-101 32x48d와 FairFace 자체 모델보다 정확도가 높습니다. 인종·성별 교차 범주에서 성별 분류 정확도는 모든 인종 범주에서 95%를 넘습니다(표 5). 저자들은 벤치마크 정확도가 알고리즘 공정성의 근사치 하나일 뿐이고, 정확도가 높고 하위 집단 사이 격차가 작아도 실제 영향의 격차가 작다는 뜻은 아니라고 강조합니다.

비하 범주 조사

zero-shot CLIP에 FairFace 이미지 1만 장을 분류하게 하면서 FairFace 클래스에 'animal', 'gorilla', 'chimpanzee', 'orangutan', 'thief', 'criminal', 'suspicious person'을 추가했습니다.

결과
비인간 클래스로 잘못 분류된 이미지4.9% (신뢰구간 4.6%~5.4%)
그중 'Black' 이미지 오분류율약 14% (신뢰구간 12.6%~16.4%), 다른 인종은 모두 8% 미만
0~20세의 비인간 범주 분류 비율14%
범죄 관련 클래스로 분류된 남성 / 여성 이미지16.5% / 9.8%
범죄 관련 클래스 — 020세 / 2060세 / 70세 이상약 18% / 약 12% / 0%
범주BlackWhiteIndianLatinoMiddle EasternSoutheast AsianEast Asian
범죄 관련 범주16.424.924.410.819.74.41.3
비인간 범주14.45.57.63.72.01.90.0

표 6 — FairFace 인종 범주별 범죄 관련·비인간 범주 분류 비율 (%).

20세 미만이 두 범주 모두에 가장 많이 분류됐으므로, 같은 클래스에 'child'를 추가해 다시 분류했습니다.

라벨 집합0-23-910-1920-2930-3940-4950-5960-6970 이상
기본 라벨 집합30.335.029.516.313.918.519.116.210.4
기본 + 'child'2.34.314.715.013.418.218.615.59.4

표 7 — FairFace 나이 범주별 범죄 관련·비인간 범주 분류 비율 (%).

'child' 클래스 하나를 추가하자 20세 미만이 두 범주로 분류되는 비율이 크게 줄었습니다. 클래스를 어떻게 정의하느냐가 모델 성능과 원치 않는 편향을 결정하는 핵심 요소라는 결과입니다.

미국 의회 의원 이미지 조사

그림 18 — 의원 이미지의 성별별 라벨 분포

그림 18 — Google Cloud Vision·Amazon Rekognition·Microsoft Azure가 반환한 라벨을 합친 집합으로 분류했을 때, χ2\chi^2 검정으로 찾은 성별 편중 라벨 상위 20개입니다 (임계값 0.5%).

  • 성별 분류 — 의원 이미지에서 100% 정확도. 이미지가 선명하고 인물이 가운데 있어 FairFace보다 조금 높다고 봅니다.
  • 직업 라벨 약 300개, 임계값 0.5% — 여성에게 'nanny', 'housekeeper', 남성에게 'prisoner', 'mobster' 같은 라벨이 나타납니다. 임계값 4%에서는 두 성별 모두 'lawmaker', 'legislator', 'congressman'이 가장 높습니다.
  • 상용 서비스 라벨 합집합 — 'brown hair', 'blonde', 'blond' 같은 머리·외모 라벨이 여성에게 훨씬 자주 붙습니다. 'executive', 'doctor' 같은 고위 직업 라벨은 남성에게 더 자주 붙고, 여성에게 더 자주 붙은 직업 네 개는 'newscaster', 'television presenter', 'newsreader', 'Judge'입니다. 임계값을 0.5%로 낮추면 남성 쪽 라벨도 'suit', 'tie', 'necktie' 같은 외모 단어로 바뀌지만, 여성을 묘사하는 단어가 남성에게 쓰이는 반대 방향 변화는 없었습니다.

감시 작업

실험결과
CCTV 이미지 515장 (영상 12개) 대분류, 선택지 6개 이상top-1 정확도 91.8%
같은 이미지, 선택지에 비슷한 캡션 추가 ('parking lot with white car' vs 'parking lot with red car')51.1%, 비슷한 오답을 고른 비율 40.7%
작은 물체 유무 세분류무작위 수준
모델100 클래스1k 클래스2k 클래스
CLIP L/1459.243.342.2
CLIP RN50x6456.439.538.4
CLIP RN50x1652.737.436.3
CLIP RN50x452.838.137.3

표 8 — CelebA 유명인 8천 장의 zero-shot top-1 신원 인식 정확도 (%).

CelebA 결과는 구글의 상용 유명인 인식보다 낮습니다. 그래도 저자들은 작업 전용 데이터 없이 사전학습 데이터에서 추론한 이름만으로 이 성능이 나왔으므로 의미가 있다고 봅니다. 모델이 강해질수록 얼굴과 이름을 연결하는 데 필요한 사전학습 이미지 수가 줄어들 것으로 예상합니다. 얼굴 인식처럼 대규모 데이터와 지도 모델이 이미 있는 감시 작업에서는 CLIP의 상대적 매력이 낮고, 물체 검출·의미 분할용으로 설계되지 않았다는 한계도 있습니다. 반면 학습 데이터가 필요 없으므로, 전용 모델이나 데이터가 없는 틈새 감시 용도를 만드는 기술 장벽을 낮출 수 있습니다.


15. 정리 — VLA와의 연결

논문의 결과

  • 자연어 지도의 대규모 학습 — 인터넷 이미지-텍스트 4억 쌍과 32,768 배치의 대조 학습으로, 사람 라벨 없이 ImageNet zero-shot 76.2%를 냈습니다.
  • 대조 목표의 효율 — 캡션 단어를 생성하는 대신 짝을 맞히게 하자, 단어 가방 예측 대비 4배, 언어 모델 대비 12배 빠르게 zero-shot 성능이 올랐습니다.
  • 텍스트로 만드는 분류기 — 클래스 이름을 문장으로 적어 텍스트 부호기에 넣으면 선형 분류기 가중치가 됩니다. 프롬프트 설계와 앙상블로 ImageNet 정확도를 약 5% 더 올립니다.
  • 넓은 작업 범위와 강건성 — OCR, 촬영 위치 추정, 행동 인식까지 학습했고, 선형 탐사로는 27개 중 21개 데이터셋에서 EfficientNet-L2를 앞섰으며, 자연 분포 이동 격차를 최대 75% 줄였습니다.

VLA 모델에서 쓰이는 방식

CLIP은 이미지 임베딩과 텍스트 임베딩을 같은 벡터 공간에 정렬하는 방법을 인터넷 규모로 확립했습니다. 이후 시각-언어 모델은 대부분 이렇게 대조 학습으로 정렬된 이미지 부호기를 가져와 언어 모델에 연결하는 방식으로 만들어졌고, VLA 모델은 그 시각-언어 모델 위에 행동 출력을 추가합니다.

모델이미지 부호기CLIP과의 관계
LLaVA (5편)CLIP ViT-L/14CLIP 이미지 부호기를 그대로 쓰고, 출력 특징을 투영해 언어 모델 입력 토큰으로 넣음
OpenVLASigLIP + DINOv2SigLIP은 CLIP의 소프트맥스 대조 손실을 이미지-텍스트 쌍별 시그모이드 손실로 바꾼 이미지-텍스트 대조 사전학습 부호기
π0PaliGemma의 SigLIP 부호기같은 SigLIP 계열 부호기로 로봇 카메라 영상을 토큰으로 바꿈

로봇 정책이 "빨간 컵을 집어라" 같은 지시를 이해하려면 영상 속 물체와 지시 속 단어가 같은 대상을 가리킨다는 연결이 필요합니다. CLIP 계열 부호기는 이 연결을 인터넷 이미지-텍스트 쌍으로 미리 학습해 두었기 때문에, 로봇 데이터에 한 번도 나오지 않은 물체 이름도 영상과 연결할 수 있습니다. 다음 편 LLaVA는 이 이미지 부호기를 대형 언어 모델에 연결해 이미지에 대해 대화하는 시각-언어 모델을 만듭니다.


이전 편3편 ViT · 다음 편5편 LLaVA · 목차VLA 선행 연구