CLIP
최근 Multi Modal Model에 대해 자세히 알아보기 위해 ViT부터 시작하여 논문을 읽고있다.
관심을 가진 이유는 특정한 Downstream Task를 처리할 때 Domain이 Image면 Image, Text면 Text만을 넣고
모델을 앙상블하여 성능을 올린다. 하지만, 다양한 데이터를 통하여 종합된 Representation Vector를 만들어 모델이
학습을 한다면 좋은 성능을 가질 것이라는 생각으로 관심을 가졌다.
OpenAI에서 2021년에 발표한 Image to Text에 대표 모델인 CLIP에 대해 소개하겠다.
0. Abstract / Introduction and Motivating Work
Computer Vision Task에서는 특정 Domain에서 훈련되는 이미지 데이터나 Class에 따라서 훈련을 Scratch부터 시작해야
성능이 잘나왔다. 하지만, NLP에서 Transformer의 등장으로 Pre train을 통해 범용적인 사전학습 모델을 구축하여
Domain이 바뀌더라도 Fine tunning 만으로도 성능이 잘나왔다. 이를 Image에서도 적용하고 싶었다.
이러한 연구가 CLIP말고도 이전부터 많이 진행되고 있었다. ( 예시로는 VirTex, ConVIRT 이다.) 하지만, 이 Vision 모델이 성능이 NLP처럼 Performence가 좋지 않은 가장 큰 이유는 데이터의 양이다.
Text는 Web 상에서 많은 데이터를 가져올 수 있었기 때문이다. 훈련 데이터를 구축하기가 비교적 쉽다.
하지만, Web 상에서 고품질의 Image - Text 셋을 구하는 것은 쉽지않다. 따라서, Image - Text 데이터는 ImageNet 등등의 Crowd label 된 이미지 셋을 사용하여 만들었는데 이는 데이터 양 자체가 매우 부족하다.
따라서, Web 상에서 Image - Text Pair 데이터 셋을 구축하여 데이터 양을 확보하였다.
다음으로는 모델의 구축이다. 앞선 대표적 연구로 VirTex, ConVIRT가 있는데 VirTex 방식이 아닌 ConVIRT 방식을 사용한
이유를 말하자면 효율성 문제이다. Large Dataset을 사용하다보니 본 논문에서는 모델의 효율성을 매우 중요하게 여겼다.
아래의 그림을 보면 간단한 Bag of word기법 보다도 VirTex 기반(파란색 선)으로 사용한 방식이 안좋은 효율성을 보인다.
따라서, CLIP (Contrastive Language-Image Pre-training)은 ConVIRT 기반 방식을 사용하였다.
1. Aproach
1.1 Natural Language Supervision
앞선 연구들에서 Raw한 Text 데이터를 활용하여 Image의 Representation을 학습하는 것을 여러가지로 불렀다.
하지만, 본 논문에서 용어의 혼동을 없애기 위해 위와같은 내용을 Natural Language Supervision로 정의했다.
1.2. Creating a Sufficiently Large Dataset
선행연구에서 가장 큰 문제점이 데이터셋의 크기 문제였다. 따라서, 데이터셋의 크기를 늘리기위해 Web 상에서
Image Text 데이터셋을 가져왔고 이는 WIT로 불린다.
1.3. Selecting an Efficient Pre-Training Method (모델 구조 설명)
모델의 아키텍처에 대해 소개하겠다.
- Step 1
Batch size를 정한다. Batch는 크게 두 종류로 나눠진다. Image batch와 Text batch가 있고 서로 Pair를 이룬다.
- Step 2
서로 다른 Modality에 따른 Encoder가 존재한다. ( 즉, Image encoder와 Test encoder가 존재한다. )
이를 통과하여 크기가 batch size인 Image representation vector와 Text representation vector를 만든다.
- Step 3
Batch size가 n개라고 가정했을 때, N개의 Image representation vector와 N개의 Text representation vector의 내적을 통해
비교를 진행한다. 이때, Diagonal matrix는 Positive Pair이고 나머지는 Negative Pair로 분류된다.
- Step 4
이후, 모델이 학습을 진행할 때 Positive Pair의 Cosine 유사도가 최대가 되고 Negative Pair의 Cosine 유사도가 최소가 되도록 Cross Entropy 학습을 진행한다.
※ ConVIRT와 다른점
1. Encoder를 통해 나온 representation vectort를 non-linear embedding이 아닌 linear embedding로 진행하였다.
2. Data를 augmentation 하지 않았다.
구조는 매우 유사하여 큰 차이라고 할 수 없다.
2. Experiment
실험이 매우 다양하게 진행이 되었는데 몇 가지만 소개를 하고 글을 마치기로 한다.
- Zero shot
Zero shot에 대해 알 필요가 있다.
Image Classification을 한다고 가정하자. 그러면, ResNet과 같은 모델이 Image Classification을 하기 위해서는 Train dataset을 통하여 학습을 진행하고 Test set을 통해 검증을 진행한다. 즉, Train set이 학습에 필요하다.
하지만, Zero shot transfer은 이러한 특정 도메인에 대한 Train set이 필요없다. 즉, Pre trained 된 모델에서 바로 훈련을 진행하는 것이다. 아래의 예시를 보자.
강아지 사진이 주어지면 Pre trained된 Image Encoder를 통해 Image representation이 나오게 되고
분류하고 싶은 Text class를 Text Encoder에 넣어주면 class 수 만큼 Text representation이 나오게 된다.
이후, 한 장의 사진 Image representation과 class 수 만큼 Text representation을 내적하여 유사도를 구하게
되고 가장 큰 Value로 예측하는 작업이다. 이렇게 따로 train dataset으로 학습을 진행하지 않고도
특정 Task를 진행할 수 있다.
이제 이를 N-Gram과 비교를 해보았는데 성능이 잘나왔다.
- Prompt Engineering
위에 Zero shot을 진행할 때 Text Encoder에 Class label을 토큰 단위로 들어가지 않고 문장의 형태로 넣는 것을 확인할 수 있다. 이는 Dataset을 만들때 Web상에서 모았기때문에 Token 단위가 아닌 Sentence 단위로 학습이 진행되었고
이를 반영한 것이다. 이를 Prompt Engineering이라 하고 성능이 향상된 것을 확인할 수 있다.
추가적으로 CLIP에서 다양한 Prompt Engineering 진행하였고 성능향상을 하였다.
- 다양한 Downstream task의 Zero shot transfer의 결과
총 25가지의 Downstream Task를 진행하였다. 이때, 16가지 Task에서 성능향상을 하였다.
여기서는 두 가지의 주목할 점이 있다.
먼저, train set을 전혀 사용하지 않았음에도 STL10 Downstream Task에서SOTA를 달성하였다.
다음으로는 Video action recognition downstream task가 두 가지가 있는데, 여기서 좋은 성능을 보였다.
이는 image와 text간에 적절한 Connect가 일어나 성능향상을 시킨 것으로 해석할 수 있다.
하지만, 9가지 Task에서는 성능하락을 하였는데 이는 Task 자체가 매우 Specific하다. 즉, 위성 or 의료와 같이
Web 상에서 쉽게 구할 수 없는 데이터에 대해서는 취약한 것으로 보였다. 하지만, 추가적인 데이터로 학습을
진행한다면 해당 Downstream task에서도 좋은 성능을 보일 것으로 생각된다.
- Zero shot과 Few shot 비교
Few shot이란 모델이 예측을 할 때 Train dataset의 일부를 보여주는 것이다. 그러면, 직관적으로는 1개라도 보여주면 성능이 Zero shot보다 좋아야하지만 아래의 결과를 보면 특정 임계치를 넘어 few shot을 줘야 향상이 된다.
이유로는 Few shot을 진행할 때 Layer를 따로 만들기 때문에 이를 학습하는데 최소 train data가 필요한 것이다.
- Robustness to natural distribution shift
CLIP의 일반화 성능에 대한 강건성을 보여주는 실험이다.
현재, 널리 사용되고 있는 ImageNet은 Test set이 진정한 Test set이 아니다 많은 파라미터 튜닝을 통해
오염되었다. 따라서, ImageNetV2와 같이 Test set을 변형하거나 데이터셋 자체에 분포를 Shift 시킨 데이터셋을
통해서 모델을 다시 검증해보았다.
이때, 아래의 결과를 보면 CLIP이 예측하는 지표가 일반화 성능이 좋은 것을 확인할 수 있다.
추가적인 실험들이 많이 있지만 궁금한 것은 아래의 논문을 확인하면 좋을 것 같다.
CLIP arxiv 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
'Paper Review' 카테고리의 다른 글
[Paper Review] BERT (2) (2) | 2024.02.15 |
---|---|
[Paper Review] BERT (1) (0) | 2024.02.15 |