Zero-shot, Multimodal learning
Published on January 22, 2023 by JunYoung
Multimodal Zero shot AI Deep learning
20 min READ
논문 소개에 앞서 multimodal이라는 의미에 대해 짚고 넘어가기 위해 먼저 ‘modality’의 의미에 대해 확인해보자. 일반적으로 modality가 가지는 의미는 크거나 작게 구분이 가능하다. 만약 확률 분포에 대해서 생각해보면, modality는 하나의 probability density function를 나타내며, 이때 multimodal은 서로 다른 peak(local maxima)를 가지는 두 개 이상의 mode를 의미한다.
하지만 위의 내용은 단순히 확률 분포를 가정한 수학적 접근(해석)에 대한 이야기이고, 실제로 우리가 딥러닝에서 이야기하고자 하는 부분은 sensory(감각)과 맞닿아 있는 경우가 많다.
인간에게 있어 감각에는 여러 modality(크게 해석해서, 형태나 모양이라고 보면 된다)인 청각, 촉각, 시각 등등이 있으며 이러한 다양한 감각들이 상호작용하여 맞닿아있는 중간 부분이 사람으로 하여금 추론의 근거로 사용된다. 즉 multimodal이란 소통의 방식이 될 수도 있고, 진화심리학에 따른 특정 행동양식의 기준이 되기도 한다.
예를 들어, Verbal(언어)에 있어서는 단어 각각의 의미를 서술하는 Lexicon이 있고, Speech의 한 부분을 담당하며 각 단어의 유기적인 관계를 표현하는 Syntax(문법)이 있기도 하며 어떠한 context가 진행되는 사람 간의 관계, 시간과 장소 등 언어의 의미 분석에 대해 다양한 요소를 고려하는 Pragmatics(화용론)도 있다.
이처럼 언어 이외에도 Visual(시각) 요소에는 gesture, body posture나 proxemics(인간의 사회적이나 문화적인 환경 및 공간과의 관계를 통해 정의된 신체 언어) 등이 있다. 더불어 사람과 사람 간의 eye contact, facial expression도 이러한 modality의 한 형태로 볼 수 있다.
앞서 설명한 내용은 내부분 정보를 수집하는 각각의 신체 기관 및 정보 전달의 수단과 관련된 구성 요소들에 살펴보았고, 이제 조금 더 좁은 의미의 modality에 대해 정의하면 다음과 같다.
Modality는 무언가가 경험되거나 발생하는 방식 및 수단이다. 따라서 컴퓨팅 환경에서 이해하는 modality는 특정 형태의 정보를 의미하기도 하며, 정보가 저장되는 대표적 형태로 이해할 수 있다. 예를 들어 컴퓨터에 어떤 이미지가 저장된다고 했을 때, ‘Image’ 자체를 modality로 볼 수도 있고 보다 상세하게 분류해서 ‘jpeg’, ‘bmp’, ‘png’ 등 이미지 저장 및 압축 방식에 따라 modality를 구분할 수도 있다.
앞서 본 인간의 감각과 관련된 sensory modality나 수학적 확률 분포에 근거한 probability modality와 그 결을 함께하여, modality(혹은 medium, media)는 어떤 방법이나 기구를 통해 정보를 저장하고 소통하는 것을 의미한다. 즉 통산 및 의사 소통의 시스템으로 이해할 수 있다.
세상에는 여러 종류의 communities(단체)로 인식된 사회/문화 상의 플랫폼들이 잇고, modality는 그 상에서 다양한 방식을 통해 정의되는 정보나 소통 방식에 대한 분류이다. deep learning과 크게 관련이 있는 Natural language(spoken or written), Visual(images, videos) 그리고 Auditory(voice, sounds and music)가 그러한 분류 중 하나에 속하며, 이때의 multimodal이란 두 개 이상의 modality를 함께 활용하여 어떠한 task를 풀어나가는 것을 의미한다. 단순히 우리가 알고 있는 text와 image를 함께 사용하는(완전히 결이 다른 modality) task뿐만 아니라, modality만 구분된다면(ex. 사람의 목소리 + 악기 연주) 모두 multimodal로 간주할 수 있다.
앞서 multimodal 설명을 굳이 길게 하고 이제야 논문 리뷰를 시작하는 이유는 이 paper의 main contribution 중 하나가 ‘text와 image 간의 유의미한 관계‘를 찾는 것에 집중했기 때문이다. 무려 48쪽이나 되는 분량을 잡아먹는 이 논문은 워낙 유명하기 때문에 다양한 블로그에서 리뷰를 했고, 유튜브를 찾아봐도 강의 영상이 정말 많은 것을 알 수 있다. 본인이 이 글에서 집중하고자 하는 것은 이 논문이 가지는 paper나 방법론에서의 장단점, 그리고 contribution이다.
Computer vision task와 Natural language processing(NLP) deep learning은 발전 방향에 있어 차이가 있었다. 처음에 그 시작은 CNN(Convolutional Neural Network)를 baseline으로 recurrent neural network이 개발되었지만, attention mechanism 및 transformer가 소개되며 기계 번역과 관련된 task의 성능이 크게 향상되었고, transformer의 encoder 및 decoder 구조를 활용한 GPT나 BERT model이 발전하며 많은 downstream task의 성능이 크게 향상될 수 있었다.
컴퓨터 비전과는 다르게 이러한 대규모 언어 모델이 발전할 수 있었던 가장 큰 이유 중 하나는 데이터셋 수집의 용이성이었다. 보통 영상(image)과 관련된 task를 해결하려면 이에 맞는 domain을 정의하고, 각 domain에 맞는 distribution을 한정하여 이에 맞는 데이터를 수집 및 라벨링하는 과정을 거치게 된다. 예를 들어 강아지를 분류하는 task를 수행하고자 한다면, 분류하고자 하는 강아지의 사진과 각 사진에 대해 강아지 품종을 매칭하는 과정을 거친다.
하지만 여기서 image dataset 수집의 한계가 드러난다. 만약 분류하고자 하는 강아지 품종이 수천/수만 가지가 된다면 이에 맞는 index labeling이 되어야하고, 무엇보다 만약 사진에 강아지보다 background 비중이 높다거나(사진마다 object의 크기가 다르기 때문), 강아지 여러 마리가 포함된 사진 등등 데이터셋 분포의 일관성 및 퀄리티를 보장할 수 없기 때문이다. 또한 위의 그림처럼 열심히 데이터를 모아서 distribution을 맞춘 dataset을 구성했는데, 추가적으로 ‘시바견’을 구분해야한다면 해당 class에 대한 데이터셋 구축을 처음부터 해야하기 때문이다.
이는 단순히 웹 상에서 다량의 데이터셋을 획득하고, 획득한 다양한 text prompt를 token 단위로 supervision에 활용할 수 있는 NLP 모델과 큰 차이가 있다. 이렇듯 computer vision에서 퀄리티, 분포를 모두 고려한 유의미한 데이터셋 구축 과정을 ‘gold labeling‘이라 부르며, 이러한 gold label 없이는 computer vision task에서 deep learning의 좋은 성능을 기대하기 힘들다.
또한 NLP와 CV에서 차이가 발생하는 것이 new task에 대한 zero-shot 및 few-shot 성능에 대한 부분이다. 앞서 설명했던 것과 같이 자연어 모델의 경우 웹 상에서 다량의 데이터셋을 구축 가능하며 분포가 무한에 가까운(continous signal) 이미지와는 다르게 언어는 인간이 사용하는 vocabulary나 문장 내에서 대부분의 형태나 variation이 있기(discrete signal) 때문에 대용량의 데이터를 통해 학습된 대용량 네트워크는 다른 task에도 쉽게 적응이 가능하다.
이러한 SOTA computer vision system의 한계점(미리 정의한 object category에 따른 데이터만을 학습할 수 있고, 실제로 데이터 수집 단계에서 이러한 방법 이외에는 사용할 수 없다는 것)을 이 논문에서는 해결해야할 문제로 제시하였다. 이를 해결하지 못한다면 NLP 모델이 가지는 generality(일반화 성능), usability(다양한 downstream task에 활용할 수 있음)을 CV에서는 영원히 가져갈 수 없다는 것이다.
따라서 CLIP 논문에서는 image 학습에 raw text를 함께 활용하여, image supervision 자체를 학습하는 것보다는 text prompt와의 관계성을 통해 text representation과 image representation을 연결하는 방식을 사용했다.
이는 데이터 수집 단계에서도 한계가 있었던 기존 computer vision 접근 방식에도 적용될 수 있는데, 웹에서 이미지를 수집하고 이에 맞는 class categorize를 진행하는 것보다는, 웹 상에서 자주 검색되거나 반복되는 text prompt를 기반으로 이를 묘사하는 이미지를 검색하게 되면 굳이 domain distribution을 고려한 dataset 구축 없이도 학습이 가능하기 때문이다. 예를 들어 위키피디아 상에서 많이 언급된 단어들 중 하나가 ‘귀여운 고양이‘라면, 해당 text를 기반으로 크롤링한 image를 ‘귀여운 고양이’라는 text와 연관짓는 학습만 진행하면 되기 때문이다.
기존 방식과 비교한 형태는 위의 그림과 같다. 데이터셋 구축 단계에서 task를 정의하는 부분이 빠지고, image/text의 유기적 학습을 위한 text prompt를 설정하고 이를 토대로 데이터를 수집하는 과정이 추가되었다. Text prompt에 대한 데이터를 수집했기 때문에 기존의 task based dataset 수집과는 다르게 라벨링에 추가 과정이 들어가지 않는다.
사실 이미지와 텍스트 사이의 유기적인 관계를 학습하고자 한 연구는 CLIP 이전에도 존재했었다. 머신러닝 기반으로 접근했던 방식으로는 content based image retrieval(특정 문서와 함께 주어진 이미지를 기반으로 nouns, adjectives를 예측하는 task), caption prediction with manifold learning 그리고 multimodal deep Boltzmann machine을 활용한 low level image와 text tag feature의 학습이 있다. 이후에도 CNN based approach나 Transformer based approach로 접근한 deep learning 기반의 방법들이 제시되었지만, 여전히 ‘image representation learning‘이라는 관점에서 natural language 방식들은 zero-shot learning 성능을 끌어올리지 못하고 있었다. 이렇듯 CLIP 이전의 deep learning 방식들은 대부분 JFT-300M dataset과 같이 대용량 데이터셋을 활용하는 방식이라던지, 관련된 prompt를 instagram hashtag로 사용하여 대용량의 dataset으로 학습하는 등 앞서 설명했던 기존 computer vision 방식의 gold-label과 unlimited amounts of text prompt 기반으로 수집한 데이터셋 중간 과정에 놓인 연구들이다. 여전히 한정된 supervision을 가지고 있으며, 고전적인 softmax classifier에 의존한 학습 때문에 representation의 유연한 학습과 zero-shot 성능을 제한하는 요소가 되었다.
이러한 weakly-supervised method와는 다르게 VirTex, ICMLM 그리고 CLIP 논문이 가장 큰 insight를 얻었던 ConVIRT의 경우에는 이 논문의 방향성과 비슷하게 language 정보를 사용하여 image representation을 학습한다. 하지만 이러한 연구들에서는 대용량의 데이터를 사용해보지 않았다는 점에서 CLIP 저자들이 ConVIRT(참고로 ConVIRT는 medical diagnosis와 관련된 task라 데이터셋이 한정적이다)의 컨셉을 그대로 이용하되, 대량의 WebImageText dataset을 활용하여($400M$) scratch부터 contrastive representation learning을 진행한 것이다.
학습 과정에서 저자들은 가장 효율적인 학습이 가능한 방법론을 탐색했으며, 결론적으로는 자연어 모델인 GPT 시리즈와 같이 다양한 task에 적용 가능한 네트워크를 학습시킬 수 있었다.
Image-captioning baseline인 transformer language 모델을 학습하는 것보다 bag of words prediction(BoW)을 학습하는 것이 더 효율적이고, bag of words prediction과 CLIP(constrastive learning)을 함께 활용한 것이 zero-shot 성능을 높이는 데에 있어 약 $12$배의 학습 효율이 나타났다고 한다.
앞서 길게 설명하고 넘어오긴 했지만, 해당 논문에서 approach를 분류하여 설명한 부분이 사실상 main contribution을 알아보기에 가장 적합한 구간이라고 생각되어 각 요소마다 간단하게 요약하고 넘어가도록 하겠다.
기존의 text와 image pair를 학습했던 연구들은 대부분 unsupervised, self-supervised, weakly-supervised 등의 방법을 토대로 natural language supervision을 사용했기 때문에 image representation 학습에 text 정보를 직접 연관지을 순 있었으나 NLP가 가지는 정보를 제대로 활용하지 못했다. 하지만 NLP는 training 과정에서 $1$ to $N$ mapping이 필요없으며, categorized된 labeling에 비해 활용할 수 있는 정보가 많다는 장점이 있다. 따라서 이 논문에서 집중하고자 한 내용은 NLP를 supervision으로 활용해서 image를 통해 text를 예측하는 형태로 image/text multimodal learning을 진행하자는 기존 concept에서 벗어나, NLP representation에 image representation을 연결만 시켜주자는 concept을 사용하였다.
MS-COCO, Visual Genome 그리고 YFCC100M과 같은 데이터셋은 수가 현저히 적거나, 대용량의 데이터셋이라 하더라도 image의 metadata(ex. image filename)을 이용한 정보 추출이 어려웠기 때문에 대용량 데이터셋 구축이 힘들었다.
따라서 NLP supervision에서 수집하는 web based 방식에서 motivation을 얻어, 인터넷 상에서 많이 사용되는 query(text prompt)를 augmentation하여 $500,000$ 만큼 준비했으며, 각 query에 맞는 (image, text) pair를 최대 $20,000$ 씩 구축하였다. 결국 목표로 했던 GPT-2 training dataset인 ‘WebText‘의 총 갯수에 필적하는 대용량 데이터셋인 ‘WebImageText‘를 구할 수 있었다.
그러나 데이터셋 크기가 커진만큼 학습에 걸리는 시간 또한 길어졌기 때문에, 빠른 수렴을 위한 효율적인 pre-training method를 찾는 것이 중요했다. 저자들은 이 부분에서 시행착오를 겪은 여러 방법들에 대해 언급한다.
VirTex 논문에서와 같이 접근한 경우가 된다. 하지만 이 방법을 사용하게 되면 위에서 봤던 그래프(transformer based learning)와 같이 간단한 baseline인 ResNet과 BoW encoder를 사용했을 경우보다 수렴 성능이 낮은 것(약 $3$배)을 확인할 수 있다.
하지만 BoW 방식과 transformer 방식의 차이는 구조(parameter 개수, CNN and transformer)에 있을 뿐 결론적으로 두 방식 모두 공통적으로 각 이미지에 대해 exact words를 찾고자 하는 NLP supervision concept에서 벗어나지 못했다.
이는 단순히 이미지를 표현하는 방식을 단일의 description에 한정지었기 때문인데, 예를 들어 다음과 같은 이미지가 있다고 생각해보자.
이 사진을 묘사하는 text prompt는 단순히 ‘고양이 두마리가 있는 이미지’만 있는 것이 아니라, ‘서로 좋아하는 두 고양이’, ‘초원에 서 있는 두 고양이’ 등 관련된 text embedding space에서 유사한 영역에 놓일 수 있는 모든 representation의 총체가 될 수 있다. 결국 contrastive learning(관련이 있는 text embedding과의 유사성을 올리고, 관련이 없는 text embedding과의 유사성을 낮추는) 방식이 더 효율적인 학습 효과를 불러왔으며 바로 이 방법이 CLIP에서 사용한 학습법이다.
만약 $N$개의 (image, text) pair의 batch가 있다고 해보자. CLIP은 $N \times N$의 가능한 (image, text) pair에 대한 prediction을 진행한다. 정답이 되는 text prompt는 batch 내에 image당 하나씩 총 $N$개 있기 때문에, $N \times N$ prediction에서 $N$은 positive pair가 되고 나머지 $N^2-N$은 negative pair가 된다.
위의 그림과 같이 각 sample embedding에 대한 symmetric cosine similarity를 matrix로 표현 가능한데, 이를 normalize한 cross-entropy loss를 최적화한다고 생각하면 된다. Batch 단위에서 similarity를 기반으로 cross-entropy loss를 사용하는 형태는 multi-class $N$-pair loss, InfoNCE loss 등의 연구로부터 소개되었고, 이 논문에서도 같은 메커니즘을 사용하였다.
데이터셋 개수가 $400M$이므로 overfitting을 걱정할 필요가 없다. 따라서 네트워크를 pre-training하는 과정에서 따로 representation과 관련된 initializing 없이 바로 scratch부터 학습을 진행하였으며 crop 이외에는 data augmentation을 진행하지 않았다. 또한 multi-modal embedding space로 mapping하는 과정에서 non-linear projection을 진행하지 않았는데, 이는 self-supervised learning에서 사용되던 방식과는 다르게 여기에서는 해당 training efficiency와 관련된 method를 사용할 필요가 없었기 때문에 연산량을 줄인 것으로 보인다. 그리고 entropy 조절에 사용되는 temperature normalizing hyperparameter $\tau$는 직접 설정하게 되면 ablation 진행이 어려웠기 때문에 학습 가능한 parameter로 설정하였다.
BoW baseline으로 사용된 ResNet-50을 CLIP에서도 사용했으며, 이에 ResNet-D 논문을 통해 제시된 다양한 improvement 또한 encoder로 사용하였다. 또한 image embedding의 dimension을 맞추기 위해 feature extraction의 global average pooling을 attention pooling layer로 대체하였다.
ResNet 구조 이외에는 ViT(Vision Transformer)에서 조합된 patch와 position embedding에 추가 layer normalization을 더한 것 이외에는 동일한 구조를 사용하였다.
Text encoder로는 GPT-2를 사용하였고, base size로는 $12$개의 layers의 $512$의 channel dimension width를 가지는 네트워크를 사용하였다(attention head는 $8$개).
사실 이 논문이 방대하게 길어진 이유 3가지는 다음과 같다.
그러다보니 실험 결과도 자연스럽게 길어지게 되었고, 논문을 모두 읽으면서 파악하기에는 다소 무리가 있지 않나 싶다. 따라서 비교적 주요한 내용들만 위주로 figure를 참고해서 작성해보았다.
우선 CLIP이 주로 다룬 내용은, 자연어 모델과 같이 이미지 모델 또한 충분한 데이터셋을 기반으로 representation learning이 진행된다면, 이에 따라 새로운 task에 대한 performance도 zero-shot으로 진행될 수 있음을 증명하는 것이었다. 새로운 task(classification)에 대해 downstream task를 진행하는 과정은 다음과 같다.
여기서 저자들은 단순히 class 이름을 prompt로 사용하는 것이 아닌, ‘A photo of a {object}’ 식의 prompt engineering을 각 dataset 특성에 맞게 진행하여 성능을 올릴 수 있었다고 한다. 학습에 사용되는 (image, text) pair 자체가 object를 표현하는 단어로 구성된 것이 아니라, image scene을 설명하는 description이기 때문에 학습된 domain distribution과 class name distribution에 차이가 있다는 것이 주된 분석이었다.
$N$개의 class에 대한 text prompt $N$개 와의 similarity를 구할 수 있고, 이 중 가장 높은 유사도의 index가 해당 image의 prediction이 되는 구조다. 실제로 prompt engineering을 통해 classification 성능(average)이 올라가는 것을 확인할 수 있다.
ResNet-50을 baseline study에 사용했기 때문에 linear probe와의 성능 비교가 가능한데, 위의 표에 있는 총 $27$개의 dataset을 fully-supervision에 사용한 결과보다 $16$개의 dataset에서 더 좋은 성능(positive $\Delta$)를 보여주는 것을 확인할 수 있다.
마찬가지로 여러 few-shot methods에 대해 일정 수의 샘플을 제공했을 때 중에서 가장 최고의 성능을 보인 그래프끼리 비교하면 zero-shot CLIP이 4-shot method에 필적하는 결과를 보여주고, 심지어 BiT-M, SimCLRv2 등 기존 방식은 16-shot을 진행했음에도 Zero-shot CLIP이 획득한 정확도를 넘기기 어려운 것을 확인할 수 있다.
CLIP의 zero-shot 성능에 필적할 만한 성능을 보이기 위한 few-shot sample의 수를 나타낸 표를 보면 대부분의 dataset에 대해서 평균 $20.8$의 sample이 필요한 것을 알 수 있으며, 이를 토대로 CLIP method가 가진 data efficiency 및 task robustness에 대해 확인할 수 있다.
또한 논문에서는 단순히 CLIP이 ‘텍스트와 이미지만 대충 유사하게 connection’한 것이 아니라, classifier 기반의 linear probe system에서 학습 가능한 image representation을 image encoder가 동일하게 학습이 가능하다는 점을 위의 그래프를 통해 보여준다. Zero-shot 성능이 좋지 않다면 마찬가지로 Linear probe 성능도 좋지 않다는 경향성을 보여줌으로써, classification 학습이 어려운 task에 대해 CLIP도 성능이 낮아지는 결과를 보여주었다.
또한 기존 방식들(ex. EfficientNet)에서 주장했던 경향성과 동일하게 image encoder의 representation power가 늘어날수록(network의 scale이 커질수록) 이에 따른 학습된 CLIP의 zero-shot 성능이 높아지는 것을 알 수 있다.
학습 과정에서의 GFLOPS/Image에 따른 Average score 비교는 위의 그래프와 같다. 위의 결과 그래프는 zero-shot을 비교한 것은 아니고 실제로 CLIP이 pre-trained 과정에서 학습한 representation이 Linear probe 성능에 얼마나 도움이 되는지 확인한 절차이다. 실제로 그래프상 가장 좋은 성능을 보인 CLIP network와, 함께 비교한 network 중 가장 높은 representation learning 성능을 보인 EfficientNet-NoisyStudent와 여러 데이터셋에 대해 성능 비교를 하였다.
물론 ViT(L/14) 기반으로 학습된 CLIP이기 때문에 당연히 더 좋겠다고 예상하긴 했지만 아무튼 $27$의 dataset 중에서 $21$ 만큼의 데이터셋에 대해 더 좋은 성능(positive $\Delta$)를 보여주었다.
물론 supervision을 활용한 deep learning network들의 성능이 충분히 좋아지긴 했으나, 여전히 distribution shift와 같은 문제에 취약한 면이 있다. 예를 들어 단순히 ImageNet dataset에 대해 학습된 네트워크는 각 class의 object의 특징에 대해 유의미한 feature를 학습 및 인식하기보다는, training dataset의 in-distribution을 neural network에 fitting하는 형태로 학습이 진행된다는 것이다. ImageNet dataset에 대해 $7$가지의 natural distribution shift가 일어난 dataset인 ImageNetV2, ImageNet Sketch, Youtube-BB and ImageNet-Vid, ObjectNet, ImageNet Adversarial 그리고 ImageNet Rendition에 대해 validation을 진행하였다.
사실 이 figure에 대한 설명이 논문에 없는 부분이 잘 이해가 가질 않지만 일단 이 부분에 있기 때문에 해석하는 바로는 CLIP의 zero-shot 모델들이 linear probe를 통해 domain transfer를 진행했을때, 보다 ImageNet의 성능을 잘 유지하는 것으로 보아 domain shift 현상에 잘 대처한다고 볼 수 있다. 하지만 위의 figure가 main은 아니고, 다음 figure를 보면 왜 CLIP model이 zero-shot 및 domain shift task에서 game changer로 등장할 수 있었는지 실험적 증거를 확인할 수 있다.
이상적인 상황에서는 domain shift가 일어나더라도 ImageNet dataset에 대한 성능과 domain shifted dataset에서의 성능이 동일해야한다($y = x$). 단순히 ImageNet에 대해서 학습한 경우 그 성능이 $2 \sim 30\%$ 감소하는 것을 확인할 수 있지만, zero-shot CLIP 모델의 경우 $7$개의 natural domain shifted dataset의 성능 평균이 최대 약 $75\%$나 상승할 수 있음을 보여주었다.
여기서 의문이 들 수도 있는 점은, 단순히 zero-shot을 기반으로 성능을 측정하는 것과 dataset에 specific하게 fine-tuning한 logistic regression classifier에 유의미한 차이가 생길 수 있지 않을까에 대한 부분이다. 결과를 보게 되면 ImageNet에 대해 fine-tuning한 경우 original dataset에 대해서는 $9.2\%$의 괄목할만한 정확도의 향상이, ImageNet의 데이터셋 수집 방식과 유사했던 ImageNetV2에 대해서는 그에 비해 절반 정도의 정확도의 향상이 이루어졌고, Video dataset인 Youtube-BB와 ImageNet-Vid를 제외한 데이터셋에 대해서는 성능이 떨어지는 결과가 나타났다.
사실 그냥 text encoder를 포함한 CLIP model로 zero-shot classification을 진행했다면, 위에서 열심히 실험했던 내용에 기반하여 ‘text가 guidance를 주기 때문에 domain에 robust한 예측을 할 수 있다’라고 결론을 내릴 수 있지만, 놀라운 점은 classifier를 통해 downstream task를 fine-tuning했을 때도 domain shift에 대한 정확도가 유지될 수 있다는 점이다. 이 부분에 대해서는 저자들이 명확하게 그 근거를 설명하지 못한 채 넘어갔다.
저자들이 추가로 확인한 실험 중 하나는 transfer dataset의 class들은 항상 $1000$-way classifier가 적용되는 ImageNet과 일치하지 않는다는 점 때문에 문제가 생긴 점이었는데, 이전 과정에서는 이를 ImageNet class의 하위 항목에 해당되는 prediction에 대한 max-pooling으로 진행하였다. 이러한 방식은 정확하지 않았으며, 저자는 이러한 방식 대신 CLIP에서 사용할 수 있는 방법인 ‘class name을 prompt화 시킨 text embedding’을 사용하였다. 그 결과 Video based dataset인 Youtube-BB, ImageNet-Vid의 성능 향상이 있었으며 ObjectNet의 약간의 성능 향상만이 있었다.
위의 그림을 통해 Zero-shot CLIP에 Few-shot 만큼의 supervision이 더해질수록, fully-supervised learning에 비해 가지던 robustness가 줄어드는 것을 확인할 수 있다. 즉 학습에 사용되는 dataset sample이 많아질수록 in-distribution에 fitting되어 기존의 zero-shot CLIP model에 비해 같은 ImageNet performance에 대한 robustness가 감소한다고 할 수 있다.
사람으로 하여금 zero-shot 성능을 측정하기란 굉장히 어렵다. 하지만 이런 상황에서도 zero-shot 혹은 few-shot task performance를 비교할 수 있는 방법이 있는데, 바로 Oxford-IIT Pets dataset($37$개의 강아지 혹은 고양이 종류 맞추기)에 대한 것이다. 아무리 사람이라도 강아지나 고양이의 모든 종에 대해 알고 있지는 않을 것이다. 특정 이미지를 보여주고, 해당 종에 대해서 알고 있다면 종류를 대답하면 되고 그렇지 않다면 ‘I don’t know’를 대답하면 된다.
어느 정도 직관으로 이해할 수 있지만, 사람은 보통 $1$개의 이미지가 주어지면(one-shot) 해당 종에 대한 분류 정확도가 올라가지만, 추가로 $n$개의 이미지를 보여주더라도 해당 종에 대한 분류 정확도가 올라가지는 않는다. 이를 표현하는 문장으로는 ‘humans know what they don’t know’인데, 본인이 모르는 것에 대해서는 명확하기 때문에 한 번 해당 내용을 학습하는 것으로 충분하다는 뜻이다.
따라서 딥러닝 네트워크로 하여금 사람과 같이 few-shot 성능이 prior knowledge를 활용하여 유의미한 결과를 이끌어내지 못하는 점이 유사하고, 이를 찾아내는 것이 CLIP의 중요한 발전이 될 것이라고 언급한다. 또한 위의 그래프에서 볼 수 있듯, 각 종에 대한 zero-shot 성능을 인간과 비교했을 때, 서로 어렵게 느끼는 breed에 대한 경향성이 어느 정도 유사한 것을 확인할 수 있다.
앞서 WebImageText 데이터셋을 구축하는 과정에서 대량의 웹 이미지를 가져와 학습한다고 했는데, 여기서 발생할 수 있는 문제는 validation에서 사용할 일부 dataset 또한 web 상에서 획득할 수 있는 sample에 해당되기 때문에 이러한 validation set이 pre-training dataset에 들어가게 된다면(leak into) 문제가 될 수 있다. 이를 방지하는 한 가지 방법은 네트워크를 학습시키기 전에 사전에 duplicated image(validation set과 동일한 샘플)을 모두 제거하는 작업이 필요하지만, 결국 모든 dataset에 대해 검증을 거쳐야한다는 점이 time-consuming하다.
이러한 brute-force 방식 대신, 저자들은 overlap이 발생하는 방식을 정의하고 다음과 같은 과정을 통해 overlap을 확인하였다.
각 validation dataset에 대해 duplicate detector(논문의 appendix에 있다고 한다)를 각 example에 대해 수행한다. 그런 뒤 nearest neighbor를 직접 조사한 뒤, 특정 threshold(sample간 거리 metric)를 설정하여 Overlap(threshold보다 큰 유사성을 가지는 샘플)과 Clean(threshold보다 낮은 유사성을 가지는 샘플)로 subset을 구성한다. Data의 clean한 정도(겹치는 데이터셋이 없음을 의미한다)를 확인하기 위해 All(Overlap + Clean)에 대한 Overlap의 비율을 구한다.
그런 뒤 All, Overlap, Clean에 대해 CLIP RN50x64에 대한 zero-shot accuracy를 계산한다. (All accuracy) - (Clean accuracy)가 의미하는 바가 contamination에 의한 accuracy 차이가 되므로, 이 값이 양수라면 얼마나 overlapping data에 의해 over-fitting 되었는지에 대한 정보를 반영한다.
Overlap의 양이 적은 경우가 있기 때문에 binomial significance test를 추가로 진행한다. Clean accuracy를 null hypothesis로 잡고 Overlap subset에 대한 one-tailed $p$-value(greater)를 얻는다. 추가로 $99.5\%$의 Clopper-Pearson confidence intervals 계산을 Dirty subset에 진행한다.
실험 결과를 확인해보기 전에 Binomial distribution test에 대해서 수식을 통해 이해하면 다음과 같다. 우선 $H_0$라는 test hypothesis가 있고, 이를 null hypothesis라고 부르도록 하자. 우리가 진행할 test에서 null hypothesis는 clean accuracy이므로, 적은 양의 overlapping dataset을 제외하고 진행한 zero-shot validation 성능을 의미한다.
[ H_0 = \pi = \pi_0
]
정확도는 $0 \sim 1$의 값을 가지게 되므로, 이를 CLIP model이 overlapping되지 않은 데이터셋을 기준으로 특정 샘플에 대해 ‘정확하게 분류할 확률’이라고 하자.
Overlap dataset이 $n$개 있고, 그 중 샘플 $k$만큼이 CLIP model에 대해 정확하게 분류될 확률이라면 다음과 같이 표현할 수 있다.
[ \text{Pr}(X = k) = \begin{pmatrix} n \newline k \end{pmatrix} p^k (1-p)^{n-k} ]
우리는 Overlap dataset 내부의 확률 $p$로 하여금 이 값보다 커질 $p$-value를 구하고 싶다. 왜냐하면 그래야만 overfitting을 가정할 수 있기 때문이다.
[ p = \sum_{i=0}^{k} \text{Pr}(X = i) = \sum_{i = 0}^k \begin{pmatrix} n \newline i \end{pmatrix} \pi_0^i (1-\pi_0)^{n-i} ]
해당 $p$를 구하는 one-tail test는 위와 같다. Sucess의 개수가 $n\pi_0$가 되는 것이 기준점이 되기 때문이다.
결과 그래프는 위와 같다. 총 $35$개의 dataset에 대해 실험을 진행한 결과, Overlapping보다 Clean subset의 accuracy가 높은 $9$개의 dataset에 대해서는 overlap이 없다고 결론을 내렸다. 결과적으로는 대부분의 데이터셋에 대해서 overlap이 심하지 않았고, overall accuracy가 크게 shifted된 부분은 $0.1\%$의 threhold 기준으로 $7$개의 dataset이 있었다. 이 중 Bonferroni correction을 기준으로 $2$개의 dataset이 가장 큰 것으로 판별되었다(Birdsnap, Country211).
논문에서는 뒤에 추가로 논문이 가지는 한계점이나 appendix를 통해 설명하지 못한 디테일한 구현 방법에 대해서 소개한다. 사실 위에서 정리한 내용만 해도 거의 20 page에 가깝기 때문에 이 논문이 지나치게 길다는 사실이 더 와닿는다.
아무튼 길게 보아 이 논문이 가지는 contribution 중 가장 메인이 되는 부분을 정리해보면 다음과 같다.
그리고 실험 내용을 기반으로 확인한 추가 contribution은 다음과 같다. 이 부분은 사실 main contribution이 아닌 sub contribution에 해당된다.
다만 다시 한번 말하지만 논문이 너무 길고, 솔직히 몇몇 분석은 이 paper 이후 연구로 넘겼어도 충분하지 않았나 싶다..