[Prompt_learning] Learning to Prompt for Vision-Language Models

서유리·2023년 5월 1일

AI_Study

목록 보기
25/33

🔴 논문

🟠 1. Introduction

  • ResNet/ViT
    : 비전모델에서 생성된 이미지를 고정 가중치 set와 일치시킴으로써, 데이터를 추가하여 새로운 학습이 어려움
  • CLIP/ALIGN (vision-language pre-training)
    : 주요 아이디어는 개별 인코더를 사용하여 이미지와 텍스트를 정렬함
    : ex. CLIP/ALIGN 모두 학습목표를 contrastive loss로 이미지와 텍스트 설명을 함께 가져오고, 기능 공간에서 일치하지 않는 쌍을 밀어냄
  • pre-training at a large scale
    : 다양한 시각적 개념을 학습할 수 있고, 프롬프트를 통해 모든 downstream task로 쉽게 전환할 수 있음
    : 특히, 새로운 classification task의 경우, 먼저 task 관련 범주를 설명하는 문장을 텍스트 인코더에 제공하여 classification weights를 합성한 다음 이미지 인코더에서 생성된 이미지 특징과 비교할 수 있음
  • pre-trained vision-language models의 경우, 프롬프트인 텍스트 입력이 다운스트림 데이터 세트에서 중요한 역할을 한다는 것을 관찰함
  • 그러나, 프롬프트의 정확한 식별은 쉽지 않으며, words tuning에 상당한 시간이 걸릴 수 있음 (문구를 조금만 변경해도 성능이 크게 달라질 수 있음)
    : ex. Caltech101 (a) 3번째 줄 a photo of a [class] "a"를 추가하면 정확도가 5% 이상 증가함
  • 문장 구조를 조정하면, Flowers102 class token 뒤에 "a type of flower"를 넣고, DTD "texture"만 유지하고, EuroSAT의 satellite photo 앞에 “centered”를 추가하여 개선 할 수 있음
  • 그러나, 광범위하게 조정하더라도 결과 prompts가 downstream tasks에 최적이라고 할 수 없음
  • 🔸 자동화를 위한 CoOp(Context Optimization) 방식 제안
    : CoOp는 학습 가능한 벡터를 사용하여 프롬프트의 context words를 모델링함
    : 이 벡터는 무작위 값 or pre-trained word embedding으로 초기화 될 수 있음
    (1) 모든 클래스와 동일한 컨텍스트를 공유하고 대부분의 범주에서 잘 작동하는 통합 컨텍스트를 기반으로 함
    (2) 각 클래스에 대한 특정 컨텍스트 토큰 집합을 학습하고 일부 세분화된 범주에 더 적합한 것으로 밝혀진 클래스별 컨텍스트를 기반으로 함
  • 훈련하는 동안 사전 훈련된 전체 매개변수를 고정하면서 학습 가능한 컨텍스트 벡터에 대한 cross entropy loss을 사용하여 prediction errors를 최소화함
  • gradients는 text encoder를 통해 모든 방식으로 역전파되어 작업 관련 컨텍스트를 학습하기 위해 매개 변수에 인코딩된 풍부한 지식을 추출할 수 있음

(1) Vision-Language Models

  • Vision-language models
    : prompt를 통해 다양한 downstream classification tasks으로 zero-shot transfer 가능하다는 것을 보여줌
  • vision-language learning
    : CLIP/ALIGN의 최근 발전은 주로 다음 3가지 영역의 발전에 의해 주도됨
    (a) text representation learning with Transformers (Vaswan et al., 2017)
    (b) large-minibatch contrastive representation learning
    (c) web-scale training datasets
    ➡ downstream datasets에서 이러한 모델의 적응 및 배포를 용이하게 하는 비전언어모델
    (2) Prompt Learning in NLP
  • fill-in the-blank (빈칸 채우기) cloze tests로서 최근 NLP의 prompt learning에 대한 관심을 불러일으킴
  • pre-trained language models을 유도하여 cloze-style prompts가 주어진 답변을 생성함
  • 이는 감정 분석과 같은 downstream tasks에 도움이 될 수 있음
    : Jiang et al. (2020) text mining and paraphrasing을 통해 후보 prompts를 생성하고, 가장 높은 교육 정확도를 제공하는 최적의 prompt 식별
    : Shin et al. (2020) label에서 gradient 변화가 가장 큰 tokens을 searches하는 gradient 기반 접근 방식 도입
    : 본 연구와 가장 관련있는 것은 word embedding space에서 continuous vectors를 최적화하는 continuous prompt learning
    : computer vision에서 large vision-language models에 prompt learning을 최초로 적용한 점이 주목할 점임
    : prompt learning이 transfer learning 측면에서 computer vision tasks을 크게 개선할 뿐 아니라, domain 이동을 처리할 수 있는 robust models을 생성함

🟢 Methodology

  • Vision-Language Pre-training
    : CLIP와 같은 vision language models에 적용할 수 있음
    : Models CLIP은 두 개의 인코더로 구성
    : (1) 이미지 인코더는 고차원 이미지를 저차원 embedding space에 매핑하는 것을 목표 (ResNet-50/ViT)
    : (2) 텍스트 인코더는 Transformer 위에 구축되며, 자연어에서 텍스트 표현을 생성하는 것을 목표

® [git 주소] https://github.com/KaiyangZhou/CoOp

profile
best of best

0개의 댓글