CLIP: Learning Transferable Visual Models From Natural Language Supervision 리뷰 [ICML 2021]
이 논문은 최근 멀티 모달 열풍의 주역(?)이라고도 할 수 있는 CLIP을 제안한 논문입니다. 굉장히 분량도 많고 내용도 어려워서 약간 피하고 있었는데, 용기를 내어 읽어보고자 REVIEW에 도전하게 되었습니다. 논문이 27 페이지로 분량이 매우 긴데, 16페이지까지는 우리가 흔히 논문에서 볼 수 있는 Method, Expermients와 같은 내용이며 그 이후로는 심층적인 분석과 한계, CLIP의 영향에 대한 고찰 등이 담겨있습니다. 그럼, 리뷰 시작하겠습니다.
Introduction
논문은 기존의 SOTA 컴퓨터 비전 모델들이 학습된 데이터셋에서 사전에 정의된 class들만을 이용하여 학습되기 때문에, 새로운 task를 적용하기 위한 활용성과 일반화 성능이 떨어지는 한계를 지적하며 시작됩니다. 예를 들어, 강아지와 고양이를 구분하기 위한 데이터셋에서 학습된 모델에 사람을 분류하도록 하려면, 사람으로 라벨링 된 이미지들을 데이터셋에 추가하여 다시 학습해야 한다는 것이죠. 이러한 컴퓨터 비전 모델들의 근본적인 한계를 극복하기 위해, 저자들은 인터넷에서 수집된 약 4억 개의 (이미지, 텍스트) 쌍으로 구성된 데이터셋으로 학습된 CLIP 모델을 제안합니다. 이 모델은 다양한 이미지에서 학습되었을 뿐만 아니라, 이미지와 자연어 텍스트로 학습되었기 때문에, 자연어를 통해 시각적인 개념을 다룰 수 있습니다. 이게 무엇을 의미하는지는 아래에서 자세히 설명하기로 하고, 이러한 특성 덕분에 CLIP 모델은 다양한 downstream task들에 대하여 zero-shot transfer, 즉 downstream task에 대한 데이터를 전혀 학습하지 않고 task를 수행할 수 있습니다. 저자들은 30 가지 이상의 기존 컴퓨터 비전 데이터셋에서 CLIP의 zero-shot 성능을 검증하였으며, 그 결과 CLIP은 많은 task에서 기존 모델들과 유사하거나, 심지어 더 높은 성능을 보였다고 합니다.
What's the point of Natural Language Supervision?
이 문단은 원래 논문에 있는 것은 아니고, Multi-modal embedding, 특히 (이미지, 텍스트) 쌍을 활용하는 장점이 무엇이길래 중요한지 소개드리고자 제가 추가한 내용입니다. 논문에서는 2.1. 절의 Natural Language Supervision이 유사한 내용을 다루니 참고하시면 좋을 것 같습니다.
먼저 기존의 컴퓨터 비전 문제를 생각해보겠습니다. 예를 들어, 우리가 강아지와 고양이를 분류하는 모델을 학습시킨다고 한다면 다음과 같은 과정을 거치게 됩니다.
- 강아지와 고양이 사진을 모으고, 각각에 라벨링을 수행해 줍니다. (crowd-labeled dataset)
- 각 라벨을 컴퓨터가 이해할 수 있는 원-핫 인코딩 형태로 변환합니다.
- 예를 들어, 강아지는 [1, 0] / 고양이는 [0, 1]의 라벨링 벡터가 생성됩니다.
- 모델을 (Binary) Cross Entropy Loss로 학습시킵니다.
이때, CNN은 강아지와 고양이를 분류하는데 필요한 시각적인 특징들을 low-level부터 high-level까지 학습해 나갑니다.
각 CNN 필터는 뾰족한 귀의 형상은 고양이 / 둥근 귀는 강아지, 삼각형의 고양이 두상 / 둥글거나 긴 형상의 강아지 두상과 같이 시각적인 특징들을 학습하고, 최종적으로 이러한 feature들의 활성화 정도에 따라 몇 개의 MLP layer를 거쳐 분류가 수행됩니다.
한편, (이미지, 텍스트) 쌍을 이용한 학습은 다음과 같은 방법으로 수행됩니다.
- 데이터셋은 (이미지, 텍스트) 형식으로 구성됩니다. 예를 들어, (사진, "귀여운 강아지"), (사진, "사나운 맹견"), (사진, "검은 고양이"), (사진, "강아지 상 고양이")와 같습니다.
- 이미지와 텍스트는 각각 인코더를 통해 representation vector로 변환되고, 공통 embedding space에 선형으로 투영됩니다.
- 이때, 같은 쌍의 이미지와 텍스트는 가깝게, 다른 쌍의 이미지와 텍스트는 멀게 임베딩 되도록 학습합니다.
앞서 예시에서 보여드린 것처럼 기존의 컴퓨터 비전 모델은 모든 강아지 사진을 [1, 0]에 가까운 벡터로 만드는 반면, Natural Language로 supervision을 수행하면 각 이미지가 어떤 텍스트와 유사한 임베딩 벡터를 갖도록 만들게 됩니다.
충분히 많은 데이터에서 이러한 모델을 학습할 경우, 크게 두 가지 장점을 얻을 수 있는데요.
1. zero-shot transfer가 가능해집니다.
zero-shot transfer 예시
기존의 컴퓨터 비전 모델은 classification에서 학습되었다면 classification, action recognition에서 학습되었다면 action recognition과 같이 정해진 task만을 수행할 수 있었습니다. 그러나 CLIP은 입력에 대한 출력의 형태를 조절하여 다양한 task에 zero-shot transfer가 가능합니다.
예를 들어, 어떤 이미지가 입력되었을 때, "A photo of a (???)"의 빈칸을 채우도록 하면 classification 모델로 활용할 수 있고, "The guy is doing (???)"을 사용하면 action recognition으로 활용할 수 있습니다.
2. Representation 간의 관계를 학습할 수 있습니다.
앞서, classification과 같은 경우 모든 강아지 사진을 [1,0]으로, 모든 고양이 사진을 [0,1]로 학습시켰습니다. 그러나 CLIP은 강아지의 사진들도 내용에 따라, 자연어 "갈색 강아지", "검은색 강아지"와 같은 표현들로 학습시킵니다. 이때, <강아지>라는 표현은 동일하지만 <갈색> 혹은 <검은색>의 텍스트가 다르고, 이미지도 이에 따라 차이가 있을 것인데요.
이러한 representation들을 올바르게 embedding 하는 과정에서, 각 representation들이 어떤 관계를 갖는지 학습할 수 있기 때문에, 모델의 유연성이 증가하게 되고 인간이 모델을 이해하는 것도 쉬워지게 됩니다.
이와 관련하여 제가 읽은 글 중 Multi-modal neurons in Artificial Neural Nets.라는 글이 있는데, 관심이 있으신 분은 읽어보시기를 권합니다.
Introduction and Motivating Works (Related Works)
Raw text로부터 바로 학습을 진행하는 사전학습 방법들은 어찌 보면 당연하게도 NLP 분야에서 많이 연구되었습니다. Autoregressive, Masked language modeling과 같이 task-agnostic 한 방법론들이 computation, model capacity, data와 같은 다양한 관점에서 연구되었고, 그 결과 자연어 처리 분야에서는 "text-to-text" 형식이 일반적인 입출력 구조가 되었습니다. 대표적인 예시가 GPT인데요. GPT는 text라는 자유도 높은 출력 구조를 갖기 때문에, 추가적인 MLP layer를 설계하거나 모델을 수정하지 않고도 분류, 번역, 질의응답 등 다양한 task들을 수행할 수 있습니다.
1999년 Mori et al. 은 content based image retrieval을 이미지와 쌍을 이루는 명사와 형용사 text를 함께 사용하여 개선하는 방법을 연구하였고, Quattoni et al. (2007)은 이미지와 연관된 자막에 포함될 단어들을 분류하도록 하는 manifold learning을 통해 image representation을 더 잘 학습할 수 있음을 보였습니다. Srivastava와 Salakhutdinov (2012)는 멀티 모달 Deep Boltzmann Machine을 low-level image와 text tag feature들에서 학습시켰고, Joulin et al. (2016)은 이러한 방법들을 CNN을 통해 개선하여 image caption에 들어갈 단어를 예측하도록 하였습니다. 이 연구들은 YFCC100M 데이터셋의 이미지들의 제목, 설명, 해시태그와 같은 메타 정보들을 bag-of-words 형식의 multi-label classification task로 변환하여 사전학습된 AlexNet이 이러한 라벨들을 예측하고 representation들을 학습하게 하는 방식이었는데요. Li et al. (2017)은 이러한 방법론들을 확장하여 이미지에 대한 단어가 아닌 phrase n-grams를 예측하도록 하고, 이 방법이 다른 이미지 분류 데이터셋에서의 zero-shot transfer가 가능함을 보였습니다. 이러한 접근에 최신 모델 구조나 사전학습 기법들을 적용하여 VirTex, ICMLM, ConVIRT와 같은 방법들이 지속적으로 등장하였고, image representation을 text로부터 학습하고자 하는 시도가 계속되었다고 합니다.
그럼에도 불구하고, 이러한 연구들은 학계의 관심을 받지 못하였는데, 이는 앞선 방법론들이 target dataset에서 영 좋지 못한 zero-shot 성능을 보여줬기 때문이라고 합니다. 앞서 언급한 Li et al. (2017)의 방법은 ImageNet에서 고작 11.5%의 정확도를 보였으며, 이는 당시 SOTA 모델의 88.4% 대비 한참 낮은 수치였습니다. 때문에 Image Represenation Learning에서 Text를 이용한 supervision은 큰 관심을 얻지 못하였고, pretext task로 일부 활용되거나 JFT-300M과 같은 대규모 데이터셋에서의 사전학습이 주로 고려되었습니다.
그러나 저자들은 기존 연구들의 낮은 성능에도 불구하고, 자연어의 풍부한 표현력을 고려했을 때 text를 이용한 representation learning이 충분히 잠재력이 있다고 주장합니다. 동시에 기존 모델들의 성능이 낮은 이유를 static softmax classifier로 지적하는데요. 기껏 이미지에 대응되는 text를 예측하게 해 놓고, 이를 고정된 몇 개의 단어들 중 하나를 분류하는 softmax로 풀었기 때문에, 모델의 유연성이 심각하게 제한되었기 때문에 효과가 없었다는 것입니다.
CLIP의 학습 방식 요약
CLIP은 웹 상에서 수집된 4억 개의 (이미지, 텍스트) 쌍 데이터셋에서 학습되며, CLIP은 Contrastive Language-Image Pre-training을 의미합니다. 앞서 softmax를 이용한 기존 방법들과 다르게 어떤 이미지의 embedding과 대응하는 텍스트의 embedding이 유사해지도록, 대응하지 않는 embedding은 유사하지 않아 지도록 하는 Contrastive Learning을 적용하여 이미지의 시각적인 표현과 텍스트의 언어적, 개념적인 표현이 align 되도록 하는 것이죠.
저자들은 CLIP이 OCR, geo-localization, action recognition 등 다양한 task에 zero-shot transfer 될 수 있음을 확인하였고, 30개 이상의 데이터셋에서 그 성능을 측정하여 CLIP의 우수성을 검증하였습니다. 또한, linear-probe representation learning 분석을 통해 CLIP이 기존 ImageNet 모델 대비 좋은 연산 효율로 더 좋은 성능을 보이는 것도 확인하였습니다.
마지막으로, 분석을 통해 CLIP의 zero-shot 성능이 기존의 ImageNet 방법들보다 훨씬 robust 함을 확인하였습니다. 이는 얼마 전 방문한 KCCV에서 CLIP의 1 저자 김종욱 박사님이 강조하신 부분이기도 합니다.
Approach
Creating a Sufficiently Large Dataset
기존의 연구들은 주로 MS-COCO, Visual Genome, YFCC100M 세 가지의 데이터셋을 활용하였는데요. MS-COCO와 Visual Genome은 좋은 품질의 crowd-labeled 데이터셋이며, 각각 대략 10만 장의 이미지를 가져 최근에는 작은 데이터셋에 속하는 반면, YFCC100M은 1억 개의 이미지로 구성되어 양은 많지만 각 이미지에 대한 메타데이터가 sparse 하고 품질이 들쭉날쭉하다고 합니다. 많은 이미지들이 "20160716_113957.jpg"와 같이 자동 생성된 제목이나 설명과 같은 데이터를 포함하고 있어, 자연어로 구성된 정보를 포함한 이미지만 걸러내면 고작 600~1500만 장의 이미지만 남는다고 하네요. 이는 사실상 ImageNet과 같은 크기이기 때문에, 충분한 양의 데이터를 확보할 수 없다고 합니다.
때문에 저자들은 인터넷상에서 이러한 데이터를 수집하여 직접 4억 개의 (이미지, 텍스트) 쌍 데이터셋을 구축하였습니다. 데이터셋이 다양한 종류의 visual concept를 포함하도록 하기 위해, 저자들은 먼저 영어 위키피디아에서 100회 이상 등장하는 단어 50만 개를 쿼리로 선정하고, 이 단어들이 포함된 텍스트로 구성된 (이미지, 텍스트) 쌍을 수집하였습니다. 그다음, 각 쿼리 별로 최대 2만 개의 쌍을 포함하도록 하여 class imbalance를 해결하였다고 하네요. 결과적으로 이 데이터셋은 GPT-2에 사용된 WebText 데이터셋과 유사한 total word count를 갖게 되었다고 합니다. 매우 방대한 양의 데이터셋이라고 할 수 있겠네요. 이 데이터셋의 이름은 WIT, WebImageText라고 합니다.
Selecting Efficient Pre-Training Method
CLIP과 다른 baseline들의 학습 효율 비교
SOTA 컴퓨터 비전 모델들은 매우 많은 연산양을 요구하는데요, ResNeXt101-32x48d은 학습에 19 GPU years가 요구되며, Noisy Student EfficientNet-L2 모델은 33 TPUv3 core-years가 요구됩니다. 이게 고작 1000개의 ImageNet 분류를 위해 학습되는 자원이라니, 대규모 데이터셋의 자연어로부터 뭔가를 학습하는 것은 쉽지 않은 일 같지만, 저자들은 어찌어찌 효율적인 학습 방법을 찾아냈다고 합니다. KCCV에서 김종욱 박사님의 언급을 들어보면 굉장히 많은 실험을 진행한 것 같은데, 이런 고사양의 실험을 마구 돌려댈 수 있는 환경이 참 부럽습니다...
위 그림의 첫 방법인 Transformer Language Model은 VirTex와 유사한데, image CNN과 text transformer를 동시에 학습하여 이미지의 캡션을 예측하도록 하는 방법입니다. 그러나 이 방법은 효율적인 scaling에 있어 한계가 있었는데요, 저자들은 transformer 자연어 모델에 6천3백만 개의 파라미터를 사용하였는데, 이는 이미 ResNet-50의 두 배에 달하는 수치로 자연어 모델이 너무나 커졌다고 합니다. 이 방법은 위 그림에서 보는 것처럼 Bag-of-Words 기반 방법 대비 3배나 효율성이 떨어졌다고 합니다.
한편, Bag-of-Words 기반 방법론과 Transformer 방법론 모두 입력 이미지에 알맞은 텍스트를 예측하는 모델이었는데요. 이는 이미지에 대한 텍스트가 제목, 설명, 코멘트 등 굉장히 다양할 수 있다는 점에서 어려운 task였습니다. 때문에, 저자들은 Bag-of-Words 방법에 Contrastive Learning을 적용하여 학습을 수행하였는데, 그림에서 보시는 것처럼 가장 좋은 효율을 보였다고 합니다.
최근 Contrastive Learning 연구들에 따라 저자들은 모델이 잠재적으로 더 쉬운 proxy task에서 학습하게 하고자, 각 단어가 아닌 텍스트 전체가 어떤 이미지와 맞는지 예측하도록 하였습니다. 이에 따라 CLIP의 구조를 의사코드로 나타내면 아래와 같습니다.
CLIP의 의사코드
$N$개의 (이미지, 텍스트) 쌍으로 구성된 배치에서, CLIP은 $N\times N$개의 가능한 (이미지, 텍스트) 쌍 중 어떤 것이 실제 쌍인지 예측하도록 학습됩니다. 이를 위해 CLIP은 이미지 인코더와 텍스트 인코더가 생성한 실제 쌍의 embedding의 코사인 유사도가 최대화되고, $N^2-N$개의 음성 쌍의 유사도가 최소화되도록 하여 multi-modal embedding space를 학습하는데 이는 symmetric cross entropy 손실 함수로 최적화됩니다. 이러한 배치 구성과 학습 방식은 deep metric learning 분야에서 multi-class N-pair loss로 처음 소개되었으며 InfoNCE Loss로 발전하였다고 소개하고 있네요. 논문이 나올 때까지만 해도 InfoNCE가 지금만큼 많이 활용되지는 않았던 모양입니다.
사전학습 데이터셋이 워낙 크기 때문에, CLIP 학습 시에 오버피팅은 별로 걱정할 필요가 없었다고 합니다. 저자들은 (텍스트, 이미지) 쌍에서 representation learning을 수행한 Zhang et al. (2020)의 모델에서 약간 변화를 주었는데, 저자들은 CLIP을 사전학습된 모델에서 가중치를 불러오는 대신 완전히 초기화된 모델부터 학습시켰고, representation과 contrastive embedding space 사이에 비선형 투영을 수행하는 대신 선형 투영을 수행하여 각 인코더의 representation을 multi-modal embedding space로 투영하였다고 합니다. 또한, Zhang et al. (2020)에서 사용된 텍스트에서 하나의 문장을 추출하는 text transformation function $t_u$를 사용하지 않았다. 이는 저자들이 사용한 데이터셋이 대부분 하나의 문장으로 구성되었기 때문이라고 하네요. 또한, image transformation function $t_v$는 단순화하여 random crop과 resize는 학습 시에 데이터 증강 용도로만 사용하였고, 마지막으로 softmax 값의 범위를 조절하는 temperature $\tau$는 학습 시 log-parameterized multiplicative scalar로 최적화되게 하여 하이퍼 파라미터로 사용하지 않았다고 합니다.
Choosing and Scaling a Model
저자들은 이미지 인코더로 두 가지 모델을 고려하는데, 먼저 다양한 분야에서 검증된 ResNet을 사용하였습니다. 저자들은 원본 ResNet을 개선한 ResNet-D에서 몇 가지를 수정하여 사용하였는데, Zhang (2019)이 사용한 antialiased rect-2 blur pooling을 적용하고, global average pooling을 attention pooling 구조로 전환하였다고 합니다. 어텐션 풀링은 트랜스포머 스타일의 multi-head QKV attention을 적용하였고, query는 global average-pooling 된 이미지의 feature를 사용했다고 하네요.
두 번째 모델은 안 등장하면 섭섭한 Vision Transformer (ViT)입니다. 이 모델에서는 대부분 원본 구조를 따라갔고, combined patch and position embedding에 layer normalization을 추가로 적용하는 약간의 수정만 거쳤다고 합니다.
텍스트 인코더로는 트랜스포머 구조에 Radford et al. (2019) (GPT-2)이 적용한 약간의 수정을 거쳐 사용하였습니다. 63M-parameter 12-layer 512-wide model에 8개의 attention head를 가진 모델을 사용하였고, lower-cased byte pair encdoing (BPE) 처리된 49,152개의 vocab size를 갖는 텍스트를 입력으로 사용했다. 컴퓨팅의 효율을 위해 최대 sequence 길이는 76으로 잘랐고, 앞뒤로 [SOS], [EOS] 토큰을 붙였습니다. 또한, [EOS] 토큰의 활성화가 가장 높은 계층을 feature representation으로 여겨 layer normalize를 수행하고 multi-modal embedding space로 projection 하였다고 합니다. 또한, Masked self-attention을 적용하여 추후에 downstream task를 진행 시 language modeling을 추가 목표로 설정할 수 있도록 하였다고 하는데, 본 논문에서는 이러한 활용은 하지 않고 추후 연구를 위해 남겨두었다고 합니다.
기존의 컴퓨터 비전 연구들이 모델의 너비나 깊이를 독립적으로 조절하여 scaling을 수행한 반면, ResNet 이미지 인코더에 저자들은 Tan & Le (2019) (EfficientNet)의 접근 방식으로 이들을 동시에 조절하여 모델을 scaling 하였습니다. 텍스트 인코더의 경우, 모델의 width를 조절하여 ResNet과 연산량이 상대적으로 동등하게 증가하게 하였고, depth는 조절하지 않았는데 이는 CLIP의 성능이 텍스트 인코더에 덜 민감하였기 때문이라고 합니다.
Training
저자들은 5개의 ResNet과 3개의 ViT를 학습시켜 비교하였습니다. ResNet은 ResNet-50, ResNet-101, 그리고 3개의 EfficientNet-style의 모델들을 대략 ResNet-50의 4배, 16배, 64배 크기로 scaling 하여 학습하였고, 이들은 각각 RN50x4, RN50x16, RN50x64로 표기하였습니다. ViT는 ViT-B/32, ViT-B/16, ViT-L/14를 학습하였습니다. 모든 모델은 32 에포크 학습하였으며, Adam optimizer에 decoupled weight decay regularization을 사용하였고, consine schedule을 통해 learning rate decay를 적용하였으며 초기 하이퍼 파라미터는 ResNet-50을 1 에포크만 학습시키는 환경에서 grid search와 random search, manual tuning의 조합으로 적용했다고 합니다. 학습 가능한 temperature parameter $\tau$는 0.07에 equivalent 하게 초기화하였고, logit이 100 이상이면 clip 하여 학습이 불안정해지지 않도록 규제 하였습니다. (logit은 위 그림의 CLIP 의사코드에서 볼 수 있는 값입니다.) 저자들은 32,768의 매우 큰 배치 크기를 사용하였습니다. Mixed-precision (Micikevicius et al., 2017)을 적용하여 학습을 가속화하고 메모리를 절약하였고, 추가적인 메모리 절약을 위해 gradient checkpointing과 half-precision Adam statistics, half-precision stochastically rounded text encoder weights를 적용했다고 합니다. 실험 ResNet 중 가장 큰 크기의 RN50x64는 592개의 V100 GPU에서 18일간 학습되었으며, 가장 큰 ViT인 ViT-L/14는 256개의 V100에서 12일간 학습되었다고 합니다. ViT-L/14에 대해서는 FixRes와 같은 성능 향상 효과를 위해 더 높은 336 픽셀 해상도에서 한 에포크 추가로 사전학습을 진행하였다고 하네요. 이 모델은 ViT-L/14@336px라 표기하였다고 합니다. 실험 섹션에서 CLIP 모델은 이들 실험 모델 중 가장 성능이 높은 모델을 나타낸다고 보면 된다고 합니다.
여기까지 CLIP의 기본적인 컨셉과 방법을 알아보았습니다. 정리해 보겠습니다.
- CLIP, Contrastive Language-Image Pre-training 모델은 Image와 Text 쌍을 Contrastive Learning으로 학습합니다.
- 이를 통해 유연하고 풍부한 Visual Representation을 학습할 수 있으며, zero-shot trasnfer가 가능해집니다.
- 모델이 풍부한 표현을 학습할 수 있도록 무려 4억 개의 (이미지, 텍스트) 쌍 데이터를 사용했습니다.
- CLIP의 임베딩 방식 및 구조는 다음과 같습니다.
- ResNet, ViT 기반의 이미지 인코더
- BoW, Transformer 기반의 텍스트 인코더
- 각 인코더가 생성한 representation은 linear projection을 통해 multi-modal embedding space로 투영됨
- 학습은 positive pair 간의 embedding이 유사하게, negative pair 간의 embedding이 상이하게 되도록 contrastive loss로 진행
Experiments
Zero-Shot Transfer
Motivation
기존에 컴퓨터 비전에서 zero-shot learning이라 하면, 개와 고양이를 분류하도록 학습한 모델이 새를 분류하도록 하는 것과 같이 unseen class에 대한 분류를 수행하는 것을 의미했다고 합니다. 저자들은 이러한 zero-shot의 개념을 unseen task에 대한 수행으로 확장합니다. 기존의 연구들이 머신러닝 기법의 representation learning 능력에 집중하였다면, unseen task에 대한 zero-shot은 task learning 능력과 관련이 있습니다.
SVHN 데이터셋의 예시
평가에 사용되는 각 데이터셋은 task와 분포 관점에서 살펴볼 수 있는데요. 예를 들어, SVHN 데이터셋은 street number transcription task와 관련이 있으며, Google Street View 분포에 속합니다. 한편, CIFAR와 같이 데이터셋이 속한 분포는 알 수 있으나, task가 명확하지 않은 데이터셋도 있는데요. 이러한 데이터셋은 모델의 task learning 성능보다는 distribution shift에 대한 robustness나 domain generalization 성능을 측정하는데 적합합니다.
zero-shot transfer를 통해 task learning 능력을 평가하는 방법은 NLP의 task learning에서 영감을 받았다고 합니다. Liu et al. (2018)은 Wikipedia 문서를 생성하도록 학습한 모델이 언어 간 이름 변환(transliterate name)을 잘 수행하는 예상치 못한 효과가 있음을 발견하였고, GPT-1은 사전 학습 과정에서 모델이 supervision 없이도 네 가지 heuristic zero-shot transfer method들의 성능이 상승함을 보였습니다. 이를 바탕으로 GPT-2는 zero-shot transfer를 통하여 언어 모델의 task-learning 능력을 보였습니다. 최근 chatGPT로 유명한 GPT-3.5는 question answering, translation 등 다양한 task에 사용할 수 있어 task learning이 뛰어남을 알 수 있죠.
기존의 이미지 분류 데이터셋에서 위에서 설명한 것과 같은 zero-shot transfer를 수행한 첫 실험인 Visua N-Grams (Li et al., 2017)는 142,806 개의 visual n-gram들의 사전을 학습하여 Jelinek-Mercer smoothing을 통해 주어진 이미지에 대한 text n-grams와의 확률을 최대화하도록 학습하였다고 합니다. 다시 말해, 데이터셋의 각 클래스 이름 text들을 n-gram representation으로 변환한 후, 입력된 visual n-gram과 가장 높은 확률을 갖는 text n-gram을 취하여 분류를 수행한 것이죠.
Using CLIP for zero-shot transfer
CLIP은 이미지와 텍스트 쌍의 임베딩이 같은 쌍에 속하는지 예측하도록 사전학습됩니다. 이를 이용한 zero-shot transfer를 수행하기 위해, 각 데이터셋의 각 클래스 이름을 잠재적인 text pairing으로 사용하여 CLIP을 통해 가장 유망한 (이미지, 텍스트) 쌍을 예측합니다. 먼저, 모든 이미지들과 가능한 텍스트(각 클래스의 이름)들을 인코더를 통해 인코딩한 후, 각 임베딩들의 코사인 유사도를 계산하여 temperature parameter $\tau$로 조정하고, softmax 함수를 통해 유사도를 normalize 하여 각 이미지와 가장 유사도가 높은 텍스트(클래스 이름)의 쌍을 얻게 됩니다. 이 과정은 L2-normalized 된 입력과 L2-normalized weight를 갖는 multinomial logistic regression과 같습니다. 이때 이미지 인코더는 이미지의 feature representation을 뽑아낼 컴퓨터 비전 백본이며, 텍스트 인코더는 hypernetwork로 linear classifier의 가중치를 생성합니다.
Initial Comparison to Visual N-Grams
Visual N-Grams와 CLIP의 비교를 수행한 결과, CLIP 모델은 ImageNet의 데이터를 전혀 사용하지 않고도 Visual N-Grams 대비 정확도를 11.5% 향상하여 76.2%를 달성하였는데, 이는 ImageNet에서 학습된 ResNet-50의 성능에 해당한다고 합니다. 또한, CLIP의 top-5 accuracy는 95%로, ResNet-50의 top-1 accuracy보다 높으며 Inception-V4 모델에 상응한다고 하네요. 이렇듯 CLIP은 zero-shot으로도 지도학습 기반의 강력한 방법론들에 준하는 성능을 낼 수 있는 실용적이고 유연한 zero-shot computer vision classifier라고 합니다.
다만, 위 표의 성능 비교는 CLIP의 강력한 성능을 소개하기 위한 것일 뿐, 학습 데이터의 수(CLIP이 10배 많은 데이터에서 학습)나 연산량(CLIP이 추론 시 100배, 학습 시 1000배 더 사용) 측면에서 fair 한 비교는 아니기 때문에 두 모델의 직접적인 성능 차이를 나타내지는 않는다고 합니다. 대신, 조금 더 나은 비교를 위해 저자들은 CLIP ResNet-50을 Visual N-Grams가 학습한 YFCC100M 데이터셋에서 학습시켜 Visual N-Grams 논문에서 당시 논문에서 소개한 ImageNet 성능과 유사한 성능을 내도록 baseline을 설정하였다고 합니다.
저자들은 이외에도 Visual N-Grams에서 사용한 세 가지 데이터셋을 포함해 30개의 데이터셋에서 50개의 기존 컴퓨터 비전 방법론들과의 비교를 통해 CLIP의 효과적인 zero-shot 성능을 보였습니다. (정당한 비교가 불가하기 때문인지, 성능을 증명했다던지 하는 것이 아닌, contextualize라는 유한 표현을 사용하였네요.)
Prompt Engineering and Ensembling
CLIP을 통해 zero-shot transfer를 수행하기 위해서는 데이터셋에 포함된 자연어 형태의 클래스 이름을 사용해야 하는데, 이 과정에서 예상치 못한 문제가 발생하였다고 합니다. 많은 데이터셋에서 클래스를 자연어가 아닌 정수 id로 나타내고 있었고, 자연어를 사용하는 경우에도 동음이의어와 같은 문제로 zero-shot 적용이 어려운 경우가 있었다고 합니다. 예를 들어, ImageNet에서는 construction crane (건설용 크레인)과 crane (두루미)이라는 클래스가 존재하며, Oxford-IIIT Pet dataset에는 boxer (개의 종류, 복서 종)가 존재하는데, 맥락 정보의 부족으로 인해 모델이 이 단어들이 어떤 것을 나타내는지 판단하기 어려웠다고 합니다.
또한, CLIP을 학습할 때 사용된 텍스트들은 대부분 하나의 단어가 아닌 완전한 문장이었는데, 데이터셋에 포함된 라벨은 단어이기에 이로부터 발생하는 domain gap이 있었다고 합니다. 저자들은 이 문제를 "A photo of a {label}"이라는 템플릿으로 라벨을 변경하는 방식으로 해결했다고 합니다. 이 템플릿을 사용하는 것만으로 ImageNet에서의 정확도가 1.3% 상승하였다고 합니다.
이러한 프롬프트 엔지니어링을 통해, 저자들은 앞서 언급한 문제들을 해결하거나 성능을 향상할 수 있었다고 하는데요. 예를 들어, 앞서 언급한 Oxford-IIIT Pets 데이터셋의 경우, 모델이 각 라벨이 어떤 반려동물들과 관련되었다는 맥락을 알 수 있도록 "A photo of a {label}, a type of pet"과 같이 템플릿을 부여하였습니다. 이와 유사하게 Food101 데이터셋에는 "a type of food", FGVC Aircraft 데이터셋에는 "a type of aircraft"와 같은 템플릿을 부여하는 것이 도움이 되었다고 합니다. 한편, 위성사진 데이터셋에서는 "a satellite photo of a {label}"과 같이 템플릿을 수정하니 도움이 되었다고 하네요.
한편 "A photo of a big {label}", "A photo of a small {label}"과 같이 서로 다른 프롬프트를 사용하여 text embedding을 생성한 후, 이 임베딩들을 앙상블 하여 사용하니 성능이 향상되었다고 합니다. 어차피 label에 대한 embedding은 한 번만 수행하면 되기 때문에, 이렇게 여러 방식으로 임베딩을 생성하여 평균 임베딩을 생성하는 과정이 예측 시 추가적인 연산량의 증가로 이어지지는 않았다고 합니다. 이렇게 다양한 임베딩을 생성하여 앙상블을 하는 것은 대부분의 데이터셋에서 성능을 향상했다고 하며, ImageNet에서는 80개의 각기 다른 프롬프트를 앙상블 한 결과 3.5%의 성능 향상을 얻을 수 있었다고 합니다. 결과적으로, ImageNet 데이터셋에서 프롬프트 엔지니어링과 프롬프트 앙상블을 통해 무려 5%에 가까운 성능 향상을 얻을 수 있었다고 하네요.
Analysis of zero-shot CLIP performance
저자들은 CLIP을 통해 task-agnostic zero-shot classifier의 가능성을 보이고자 합니다. 먼저, 단순히 zero-shot classifier가 잘 작동하는지 확인하고, 이를 정당화(contextualize) 하기 위해 fully supervised, regularized, logistic regression classifier on the features of the canonical ResNet-50을 베이스라인 삼아 비교를 수행합니다. 위 그림에서 27개 데이터셋에서의 비교를 확인할 수 있습니다.
27개의 데이터셋 중 16개의 데이터셋에서 CLIP이 베이스라인 성능을 앞서고 있으며, 각 데이터셋을 살펴보면, fine-grained classification task들에서의 성능 차이가 큰 것을 볼 수 있었다고 합니다. Stanford Cars나 Food101 데이터셋의 경우, zero-shot CLIP이 ResNet-50 베이스라인을 20% 이상 앞지른 반면, Flowers102와 FGVCAircraft 데이터셋에서는 오히려 10% 뒤쳐진 것을 확인할 수 있습니다. 저자들은 이러한 차이가 WIT와 ImageNet에서의 per-task supervision의 양의 차이, 즉 사전학습 데이터의 분포 차이로부터 오는 것으로 의심하였습니다. 한편, ImageNet, CIFAR10/100, STL10과 PascalVOC2007와 같이 일반적인 객체 분류 데이터셋에서는 zero-shot CLIP이 베이스라인과 비슷하거나 약간 앞선 성능을 보였습니다.
한편, Kinetics700, UCF101과 같은 video action recognition 데이터셋에서는 CLIP이 베이스라인을 크게 앞섰는데, 이는 CLIP이 자연어를 통한 supervision 과정에서 동사의 시각적 특성을 학습한 반면, ImageNet에서 학습된 베이스라인은 명사 중심의 특성을 학습하였기 때문이라 보았습니다. 또한, zero-shot CLIP이 일부 specialized, complex, 혹은 abstract 한 task들에서 꽤나 약한 모습을 보이는 것을 알 수 있는데요. 예를 들어 위성사진 (EuroSAT, RESISC45)이나 림프절 종양 탐지 (PatchCamelyon), 합성 화면에서 object counting (CLEVRCounts), 자율 주행 관련 task (GTSRB), nearest car 사이의 거리 탐지 (KITTI Distance)와 같은 task들에서 CLIP은 좋지 못한 성능을 보였습니다. 이는 비전문가 인간이 이런 문제들을 쉽게 풀 수 있는 것과 대조적입니다. 그러나, 저자들은 이러한 비교가 적절한지, few-shot에서 평가하는 것이 더 적절하지 않은 지에 대한 의문이 있다고 합니다.
zero-shot CLIP과 fully supervised model의 성능 비교는 CLIP의 task-learning 능력을 보여주는 반면, few-shot CLIP과의 비교는 한층 더 직접적인 비교로 볼 수 있습니다. 위 그림은 zero-shot CLIP의 성능과, 다양한 사전학습 모델로 추출한 feature에서의 few-shot logistic regression 성능을 비교한 결과입니다. zero-shot CLIP이 BiT-M이나 SimCLRv2와 같은 다른 사전학습 방법들이 16 shot 이상 학습한 후에야 달성할 수 있는 성능을 먼저 달성하고 있는 모습을 볼 수 있습니다.
한편, CLIP feature에서는 4 shot의 학습을 진행한 후에야 zero-shot CLIP과 동등한 성능을 얻을 수 있었는데, 이는 zero-shot CLIP이 자연어로 예측을 수행하는 반면, few-shot CLIP은 일반적인 supervised 모델들과 유사하게 뒤쪽의 classification layer를 학습하여 예측을 수행하기 때문에, 추가된 layer의 학습이 요구되기 때문입니다.
위 그림에서는 각 데이터셋 별로 zero-shot CLIP의 성능을 따라잡기 위해 CLIP feature에서의 linear classifier를 학습시키는데 요구되는 클래스별 샘플의 수 (shot)의 추산치를 나타내었습니다. 결국 두 모델이 같은 feature에서 예측을 수행하기 때문에, 이는 zero-shot transfer의 데이터 효율성을 나타낸다고도 볼 수 있습니다.
few-shot 모델이 zero-shot을 따라잡기 위해, 1 shot에서 최대 184 shot까지 학습해야 하는 만큼, zero-shot이 꽤나 데이터 효율적임을 알 수 있습니다.
이외에도 저자들은 zero-shot CLIP 성능과 CLIP feature에서의 linear probe의 성능 사이의 상관 관계와 모델 크기에 따른 성능의 차이를 분석하였는데요. zero-shot CLIP의 성능이 높은 경우 일반적으로 few-shot 성능 역시 높았으며, 모델의 크기가 커짐에 따라 전체적인 성능이 증가하는 경향을 보였습니다.
Representation Learning
이어서 저자들은 CLIP의 representation learning 능력을 분석하였습니다. represenation learning 분석에는 흔히 사전학습된 모델을 freeze 시킨 후 추가된 linear layer만을 학습시키는 linear probe 방법과, 모델 전체를 파인튜닝하는 방법이 사용됩니다. 저자들은 모델 전체를 파인튜닝할 경우 CLIP의 representation이 갖는 높은 일반화 성능과 강건성과 같은 장점이 사라질 수도 있으며, 수많은 모델과의 비교 실험을 진행할 때, 모델 전체를 fine-tuning하게 되면 탐색해야할 하이퍼 파라미터가 너무 많아진다는 문제가 있어 linear probe 방법을 통해 representation learning 능력을 분석하였다고 합니다.
저자들은 여러 가지 데이터셋에서 CLIP의 linear probe 성능과 다른 backbone 모델들의 linear probe를 비교하였는데, 먼저 위 그림의 왼쪽 차트는 Kornblith et al. (2019)(BiT)에서 제안한 12개의 데이터셋에서 평가를 수행한 결과이고, 우측은 저자들이 더욱 다양한 task를 포함하는 27개 데이터셋에서 평가를 진행한 결과입니다. (여러 데이터셋에서의 성능 평균입니다.)
먼저 좌측 그림을 보시면, ResNet-50이나 ResNet-101 기반의 작은 백본을 가진 CLIP들은 ImageNet-1K에서 사전학습된 모델들(BiT-S 등)보다는 높은 성능을 보였지만, ImageNet-21K에서 학습된 BiT-M과 같은 모델들이나 EfficientNet 계열 모델들보다는 낮은 성능을 보였습니다. 한편, ResNet-50x64와 같이 큰 backbone을 가진 CLIP 모델은 기존의 모델들 대비 정확도와 컴퓨팅 효율이 앞서는 모습을 보여주어, scale이 잘 됨을 확인할 수 있었다고 합니다. 또한, ViT 기반의 CLIP 모델들이 ResNet 기반의 CLIP 모델보다 약 3배 좋은 컴퓨팅 효율을 가졌다고 하네요.
위 그림과 앞선 그림의 우측 차트에서 볼 수 있듯이 저자들은 CLIP을 한층 더 다양한 task들에서 테스트 하였는데, 이때 CLIP 모델들은 스케일과 무관하게 기존의 모델들 대비 컴퓨팅 효율이 좋았다고 합니다. 또한, BiT에서 제안한 12개 데이터셋에서의 평가 방법보다 저자들이 제안한 더 다양한 task를 포함한 새로운 평가 방법에서는 SimCLR 등 self-supervised 방법들이 특히 좋은 성능을 보이는 것을 알 수 있었는데요. 앞선 평가 방식에서는 SimCLRv2가 BiT-M보다 부족한 성능을 보이지만, 새로운 평가 방법에서는 SimCLRv2가 더 좋은 모습을 보여줬다고 합니다. 저자들은 이러한 차이가 평가 방법의 task diversity와 coverage가 확장됨에 따라, 모델의 일반화 성능이 중요하게 작용하게 되었기 때문이라고 합니다.
CLIP은 OCR을 요구하는 task(SST2, HatefulMemes)에서 대체로 성능을 향상시켰으며, geo-localization이나 scene recognition (Country211, SUN397) 그리고 영상에서의 action recognition (Kinetics700, UCF101)에서 성능 향상을 보였다고 합니다. 또한, fine-grained car and traffic sign recognition (Stanford Cars and GTSRB)에서 큰 성능 향상을 보였는데, 이는 ImageNet에서의 overly narrow supervision에 비하여 CLIP이 좋기 때문인 것으로 추정된다고 합니다. ImageNet에서의 supervision pre-training이 intra-class detail을 경시하도록 만들어 정확도가 상대적으로 낮아진 것이 아닌가 추정하고 있네요.
또한 앞서 언급한 것처럼, 몇 가지 데이터셋에서 CLIP은 여전히 EfficientNet 대비 낮은 성능을 보이는데요, 주로 EfficientNet이 학습된 ImageNet이나 CIFAR와 같은 저해상도 이미지에서 그런 경향이 있다고 합니다. 저자들은 이것이 CLIP이 scale-based data augmentation이 부족하여 그런 것이라 의심한다고 하네요. 또한 CLIP은 PatchCamelyon과 CLEVRCounts에서 부족한 모습을 보이는데, 이들 데이터셋은 EfficientNet에서도 성능이 별로 높지 않은 데이터셋이라 합니다.
Robustness to Natural Distribution Shift
저자들은 많은 컴퓨터 비전 모델들이 ImageNet에서는 사람보다 높은 정확도를 보이면서, 다른 데이터셋에서는 훨씬 낮은 성능을 보이는 예를 들며, 딥러닝 모델이 학습 데이터의 in-distribution 패턴은 아주 잘 찾는 반면, out-of-distribution에는 취약한 한계를 지적합니다. 모델들이 이렇게 in-distribution에 편향되는 것이 꼭 나쁘다고만은 할 수 없지만 out-of-distribution도 분명히 고려해야할 요소이며, CLIP은 이러한 문제에 대해 어떤 성능을 보이는지 분석하였습니다.
앞서 이미 이런 연구를 수행한 이들이 꽤 있었다고 하는데요. 그들은 주로 ImageNet에서 학습된 모델들을 ImageNet과 유사하지만 다른 분포로 구성된 ImageNetV2, ImageNet Sketch, ImageNet-Vid 등의 데이터셋과 ImageNet을 변형한 합성 데이터셋인 ImageNet-C, Stylized ImageNet 등에서 테스트하여 Distribution Shift에 대한 성능을 측정하였다고 합니다. 이때, 모델들의 ImageNet 성능(in-distribution)과 out-of-distribution 성능 간에 어떠한 상관관계가 존재하였고, 모델의 robustness을 측정하기 위하여 이를 기반으로 두 가지 성능 지표가 제안 되었는데요. 먼저 Effective robustness는 모델의 정확도 상승 폭과 distribution shift에 의한 성능 변동을 모두 고려하는 지표이며, Relative robustness는 단순히 out-of-distribution 성능의 향상만을 고려한다고 합니다. 이 두 가지를 모두 고려하여야 robust한 모델을 만들 수 있다고 하네요.
앞서 연구된 robustness 관련 방법들은 대부분 ImageNet에서 사전학습 혹은 파인튜닝 되었습니다. 한편, zero-shot CLIP은 ImageNet의 분포를 전혀 본 적이 없기 때문에, 다른 모델들에 비하여 훨씬 높은 effective robustness를 가질 것이라는 예측이 가능한데요. 실제로 위 그림을 보면, CLIP이 기존 모델들 대비 훨씬 robust한 성능을 보이는 것을 알 수 있습니다.
그러나 이것이 꼭 ImageNet에서의 학습과 직접적인 관계가 있는 것은 아닙니다. CLIP은 ImageNet과 다른 분포에서 학습되었다는 것 이외에도, 대규모 사전학습 데이터셋이나 자연어 supervision과 같이 다른 모델들과는 많은 차이가 있기 때문입니다. 한편, 저자들은 CLIP에 logistic regressor를 더하고 ImageNet에 학습시킨 성능을 측정하기도 하였는데요. ImageNet에서의 성능이 85.4%로 증가하기는 하였으나, 이는 ImageNet에서의 2018년 SOTA 성능에 불과하며, distribution shift가 발생했을 때의 성능은 오히려 약간 감소하였다고 합니다. 위 그림을 보면 supervision을 진행하였을 때(붉은색) CLIP의 robust한 이점이 거의 사라지는 것을 볼 수 있습니다.
CLIP에서 few-shot learning을 수행할 경우, 기존의 ImageNet에서 사전학습된 모델들 보다는 강건한 모습을 보이지만 결국 zero-shot CLIP에서 보였던 높은 강건성은 보장되지 않았습니다. 특정 데이터셋에서의 파인튜닝은 해당 데이터셋에서의 성능은 약간 향상시킬 수 있을지언정, 모델의 강건성에는 좋지 않은 결과를 초래한다는 것이죠.
Limitations
앞선 분석들에서도 언급된 것처럼, CLIP에는 많은 한계가 존재한다고 합니다.
먼저, 많은 데이터셋에서 CLIP의 zero-shot 성능이 fully supervised된 ResNet-50 기반 베이스라인과 유사하거나 부족한 모습을 보인다고 합니다. (zero-shot이니까 이 정도만 해도 대단한거라고 생각되긴 합니다만..) 이는 SOTA 모델들 보다는 훨씬 낮은 성능이기 때문에, CLIP의 성능이 아직 많이 부족하다고 하는데요. CLIP의 scale을 키움에 따라 성능도 증가하는 경향이 있어 결국은 SOTA 모델 급의 성능도 달성 가능하겠지만, 이 경우 기존 모델 대비 약 1000 배의 연산이 요구될 정도로 모델을 키워야 하기 때문에, 사실상 달성이 불가능하며, CLIP의 zero-shot 성능을 개선하기 위해 task learning, transfer를 더 개선할 여지가 있다고 합니다.
또한, 앞서 zero-shot 성능 실험에서 본 것처럼, 몇몇 task에서 CLIP은 상당히 약한 성능을 보여줍니다. 서로 다른 종류의 차량, 꽃, 비행기 등을 분류하는 fine-grained classification에서 이러한 경향이 두드러진다고 하며, 이미지에 등장하는 객체의 숫자 세기와 같은 추상적이고 systematic한 문제를 푸는 것에서도 전문가 모델들보다 낮은 성능을 보인다고 합니다. 또한, CLIP의 학습 데이터셋에 포함되지 않은 완전히 새로운 데이터를 다루는, 예를 들어 차량 간의 거리를 구하거나 하는 등의 문제에서는 CLIP의 성능이 거의 랜덤에 가깝다고 하는데 저자들은 이러한 점으로 보아, CLIP이 제 구실을 못하는 task가 아주아주 많을 거라고 장담하고 있습니다.
저자들은 CLIP이 기존 모델들보다는 일반화 성능이 좋지만 여전히 완전히 out-of-distribution인 이미지들에 대해서는 매우 안 좋은 성능을 보인다고 합니다. 예를 들어, CLIP은 디지털로 렌더링된 텍스트, SST2 데이터셋에 대한 OCR은 기가 막히게 잘 수행한다고 합니다. 이는 CLIP의 학습 데이터에 렌더링된 텍스트가 많은 편이기 때문입니다. 그러나, 손으로 쓴 숫자를 다루는 MNIST 데이터셋에서는 고작 88%의 정확도만을 보인다고 합니다. 다들 아시겠지만 단순한 MLP로도 이보다 높은 성능을 달성할 수 있습니다.
CLIP은 다양한 task와 데이터셋에 대한 zero-shot classifier를 만들 수 있지만, 사실 이 또한 클래스별로 주어진 샘플 문장 ("A photo of {label}")과의 유사도를 구하는 방식으로, 아주 유연하지는 못하다고 합니다. Image Caption Generation과 같이 정말로 유연한 방법들과의 조합을 수행할 수 있는 방법을 고려해봐야 한다고 합니다.
CLIP은 딥러닝 방법들이 갖는 문제인 안 좋은 데이터 효율을 그대로 답습합니다. CLIP의 학습에는 약 128억 장의 이미지가 사용되었는데, 이는 어마어마한 양이기에 self-supervision, self-training과 같이 data-efficiency를 개선할 수 있는 학습 방법을 찾아야 한다고 합니다.
이어서 저자들은 저자들이 사용한 실험 및 학습 방법론에 문제가 있음을 자백하는데요. 저자들이 zero-shot 성능에 집중하며 실험할 때 수천 장의 이미지로 구성된 validation set을 사용하였는데, 이는 매우 부족한 수의 validation set이라고 합니다. 또한, 앞서 여러 실험에서 여러가지 데이터셋에서의 성능을 비교하였는데, 인터넷에서 데이터를 수집하는 과정에서 이들 데이터셋의 evaluation set 일부가 CLIP의 학습 데이터인 WIT에 섞여 들어갔음을 부정할 수가 없다고 합니다. 누군가 zero-shot transfer 성능 측정을 위한 새로운 데이터셋을 만들어 준다면 이러한 문제를 해결할 수 있을 것이라 하는데.. 인터넷에 없는 이미지들만 가지고 데이터셋을 만들어야 한다는 뜻이네요...
또한 방금 언급한 것처럼, CLIP은 인터넷에서 수집된 (이미지, 텍스트) 쌍으로 학습되었는데요. 이 데이터들을 따로 필터링하거나 선별하는 과정이 없었기 때문에, CLIP은 많은 social bias(인종차별, 성차별 등 사회 문제에 대한 데이터 편향)를 품고 있다고 합니다. 이는 논문의 Broader Impacts에서 상세히 다뤄지는데, 리뷰에는 포함하지 않았으니 궁굼하시다면 직접 읽어보시면 좋을 것 같습니다.
저자들은 few-shot 실험에서, CLIP의 feature extractor 뒤에 초기화된 linear layer를 추가하는 식으로 실험을 진행하였습니다. 이에 따라, 1-shot, 2-shot 과 같이 낮은 shot에서의 성능이 이 layer들의 학습에 요구되는 시간으로 인해 오히려 zero-shot보다 낮게 나왔는데요. 이는 인간이 zero-shot과 one-shot 사이에 큰 성능 향상을 이루는 것과 대비된다고 합니다. 때문에, CLIP의 강력한 zero-shot 성능을 살릴 수 있는 효율적인 few-shot 학습 방법이 연구되면 좋을 것 같다고 합니다.
Conclusion
저자들은 task-agnostic web-scale pre-training in NLP를 통해 학습한 CLIP이 다양한 도메인의 문제에 transfer될 수 있음을 보였으며, 다양한 컴퓨터 비전 task에서 이를 시연하였습니다. 프롬프트 엔지니어링과 같은 몇 가지 방법과 충분한 규모의 스케일 하에서 CLIP은 많은 task에서 SOTA 모델들에 버금가는 성능을 보여줄 수 있었습니다.
'Deep Learning > 논문 리뷰' 카테고리의 다른 글
댓글
이 글 공유하기
다른 글
-
Boosting Weakly-Supervised Temporal Action Localization with Text Information 리뷰 [CVPR 2023]
Boosting Weakly-Supervised Temporal Action Localization with Text Information 리뷰 [CVPR 2023]
2023.09.08 -
Revisiting Temporal Modeling for CLIP-based Image-to-Video Knowledge Transferring 리뷰 [CVPR 2023]
Revisiting Temporal Modeling for CLIP-based Image-to-Video Knowledge Transferring 리뷰 [CVPR 2023]
2023.09.01 -
Everything at Once - Multi-modal Fusion Transformer for Video Retrieval 리뷰 [CVPR 2022]
Everything at Once - Multi-modal Fusion Transformer for Video Retrieval 리뷰 [CVPR 2022]
2023.08.03 -
DnS: Distill-and-Select for Efficient and Accurate Video Indexing and Retrieval 리뷰 (IJCV 2022)
DnS: Distill-and-Select for Efficient and Accurate Video Indexing and Retrieval 리뷰 (IJCV 2022)
2023.07.27