Lab-LVM / awesome-VLM

Vision Language Model paper
5 stars 0 forks source link

[20230406] Weekly VLM1 - CoOp #2

Open kalelpark opened 1 year ago

kalelpark commented 1 year ago

Paper Learning Transferable Visual Models From Natural Language Supervision (a.k.a. CoOp)

Summary CLIP과 같이, VLM의 Contrastive Learning 방법론 중 하나임. 11가지 Dataset에서 높은 성능을 보여줌. 다만, Noise가 있는 데이터셋에서는 성능이 좋지는 않음 (ex Food101) learnable vector(Fig1의 learnable context)를 활용하여, Prompt Engineering을 도와주는 Context Optimizer를 제시함.

(Fig1) image

CLIP과 Image Encoder는 동일하지만, Text Encoder에서 learnable context를 사용하는데, 위의 Fig1은 Class가 우측에 놓여있지만, 유연하게 놓일 수 있음을 수식에서 설명함. image

Strength

Weakness

Speaker WongiPark

SoongE commented 1 year ago

CLIP을 더 improve 시킨 논문. CLIP과 가장 큰 차이점은 문맥을 바탕으로 text encoder의 input을 tokenization -> vectorization으로 바뀌었다는 점이다. Continuous prompt learning이라고 소개하며 text input을 learnable parameter를 포함하는 vectorization하여 문맥을 학습하게 했다고 주장하고 있으며, prompt learning에 대한 다양한 실험이 있어서, prompt learning에 관심이 많다면 한 번쯤 읽어볼만하다.

dh58319 commented 1 year ago

CLIP에서 조금 더 발전된 형태의 논문이다. 세미나 초반 학습 가능한 벡터에 대한 설명 부분에서 조금 헷갈리는 부분이 있어서 따로 읽어보았는데, NLP Prompt learning에 대해서는 따로 배워본 적이 없었는데 신선한 방법이라는 생각이 들었고, prompt learning에 대한 전반적인 이해가 앞으로 VLM을 연구하는데에 있어서 필요할 것 같다는 생각을 하게 해주었다.

gompaang commented 1 year ago

소감: Prompt learning 라는 것이 신선하게 다가왔다. prompt에 따라서 성능이 달라진다는 점이 신기했고, prompt learning을 통해서 최적의 prompt 를 찾아준다는 점이 인상적이었다. CLIP에 prompt learning을 접목시킨 논문의 아이디어가 놀랍다.

ddiyoung-x4 commented 1 year ago

CoOp(Context Optimization)

Prompt 정의 Input 문장에 특정한 template를 붙여서 정답을 예측할 수 있다. [MASK] 토큰을 포함한 형태의 탬플릿 문장이 들어가면, pre-trained 모델이 [MASK] 토큰 위치에 들어갈 단어를 맞추게 된다. 이 때 예측된 word는 사전에 특정 label에 매핑되어 최종적으로 label을 예측할 수 있고, 해당 단어를 label word라고 부른다. Prompt = Template + label word

Continous Prompt [MASK] -> [0.1, 0.2, 0.3 ... ] prompt 역할을 담당할 가상의 임베딩 vector를 배정

Prompt Engineering 한계점

  1. Word tuning 많은 시간 소요 Prompt를 구성함에 있어서 적절한 태스크와 관련된 context를 매우 세밀하게 추가해주어야 함
  2. 사전 지식(task, language model) 요구

CoOp은 Prompt Engineering이 학습 가능하도록 만드는 방법이다. prompt의 context words를 학습 가능한 vector로 모델링한다. 이 때, learnable context는 random 혹은 pre-trained된 word 임베딩으로 초기화되어 있다.

Unified Context 모든 class에 동일한 context 공유 Class Token의 위치가 prompt 중간 또는 끝에 위치

Class-specific Context 각 class마다 특정 context vector 학습

강점

단점