CoOp, CoCoOp, KgCoOp

CoOp, CoCoOp, KgCoOp는 비전-언어 모델의 프롬프트 최적화와 일반화 성능을 개선해, 제로샷 전이와 unseen 클래스 대응력을 높이는 프레임워크입니다.
Inc Lomin's avatar
Dec 08, 2023
CoOp, CoCoOp, KgCoOp

CoOp (Context Optimization)

Motivation

  • Vision-language Pre-training (VLP)
    • CLIP-like 모델들이 등장하면서 feature representation의 성능이 증대되었고, 그에 따라 zero-shot transfer가 가능해짐.
    • VLP 모델을 사용하기 위한 prompt 설정 및 학습은 매우 소모적이고, 같은 내용이지만 prompt 형태가 달라지면 성능 차이가 많이 나는 경우도 존재.
    • 위의 문제점을 해결하고자 soft-prompting (learnable query)를 도입하여 학습 수행.
 

Architecture & Training

 
notion image
notion image
  • 모델
    • BPE Tokenizer (vocab: 49,152)
    • Text encoder: Transformer-like model
    • Image encoder: CNN-like (ResNet-50) or ViT-like model
  • Training
    • Phase 1: CLIP-like pre-training
    • Phase 2: CoOp
      • M x D 크기의 soft prompt를 init (M은 hyperparameter)
      • CLIP zero-shot task 수행 방법 처럼, 로 최종 prompt 제작
        • 저자는 중간에 넣는 방법도 제안(e.g. )
        • Soft prompt는 모든 클래스와 동시에 공유하는 것과, class-specific하게 정의한 soft prompt로 실험을 수행
      • Pre-trained 모델을 freeze 한 후, soft prompt만 fine-tuning
    • Text feature는 [EOS]에서 추출(clip-like prompt와 soft prompt + class prompt들 끝에 모두 [EOS]를 넣어서 학습한 것으로 보임)
    •  
       

Results

  • 기존 CLIP-like zero-shot inference 결과와 비교
    • CLIP-like 결과는 prompt에 따라서 결과가 변하는 것을 볼 수 있음 → 즉 prompt를 디자인 하는 것이 어렵다는 것을 시사
    • notion image
  • 모델 별 학습 결과
      notion image
 

Discussion

  • Interpretability가 떨어짐
    • Learned soft prompt와 각 데이터 셋에서 가장 가까운 word embedding 결과를 보면 전혀 관련 없는 결과를 보여줌
      • notion image
 
 
 
 

CoCoOp (Conditional Context Optimization)

Motivation

  • 기존 CoOp 모델의 일반화 성능이 많이 떨어짐
    • Soft prompt를 downstream task에 대해서 적용하다보니 in-class에서는 우수한 성능을 보이지만, unseen class에 대해 일반화가 되지 않음.
      • Overfitting
    • 일반화 성능이 떨어지는 원인으로써 제시한 증거가 바로 CoOp의 nearest neighbor word이며, 이 결과가 상당히 문맥적이지 않으며 text domain을 전혀 이해하지 못함.
    • notion image
    • CoOp의 static 설계 때문에 발생했다고 판단하여, dynamic한 soft prompting이 가능하도록 light weight network를 추가하여 학습.
 
 

Architecture & Training

notion image
notion image
  • Meta-Net: 2-layered MLP (Linear-ReLU-Linear)
    • 기존 text에 붙어서 text encoder로만 들어가던 방식에서 image-guide를 해줄 수 있는 방식으로 개선.
      • 기존 prompt를 최적화하는 과정에서 image representation이 약할 수 있던 문제점을 보완.
      • Context overfitting을 줄이기 위해 특정 class에 집중하는 것 대신 input 전체에 초점을 맞출 수 있어서 일반화가 잘 됨.
    • 처음에는 단순히 M개의(sequence-wise) context token을 각각 학습하는 M개의 nn을 두자고 했지만, CoOp와 비교하여 너무 무거워져서 context token에 공통으로 더해질 Meta-net 하나만 구성하는 concept으로 구성.
 
  • Training
    • Meta-net과 context token만 업데이트
 
 

Results

  • Seen / unseen class classification test (Base: seen class, New: unseen class, H: both)
    • Zero-shot에서는 CoOp보다 좋지만 여전히 CLIP이 우세함.
    • H의 경우 CLIP 보다 CoCoOp가 좋아서 seen + unseen class에 대해 사용할 경우 더 성능이 좋다는 점을 시사.
notion image
notion image
 
  • Cross-dataset transfer 및 domain generalization 결과
    • Source에 대해 학습한 모델을 다른 dataset/domain에 적용한 결과, CoOp보다 우세함.
notion image
notion image
 
 
 
 

KgCoOp (Knowledge-guided Context Optimization)

Motivation

  • 여전히 unseen class에 대해 CoOp, CoCoOp가 textual generalization에서 안좋다는 문제점을 제기
    • Hand-crafted prompt와 learnable prompt의 embedding discrepancy를 줄임으로써 지식 망각을 방지할 수 있음.
    • 이러한 방식의 classification에서는 contrastive loss를 사용하는데, 이때 KgCoOp는 seen / unseen class에 대해서 모두 차별적인 prompt를 구성할 수 있음.
 
 

Architecture & Training

notion image
notion image
  • → L2 loss
    • zero-shot 일반화 성능이 저하와 양의 상관관계가 있으며, 이는 unseen class에서 일반화를 더 잘 할 수 있게끔 해줌
 
  • → 일반적인 cross-entropy loss
  • 최종 loss:
 
 

Results

  • 성능 비교
    • unseen, base + unseen class 경우 좋은 결과를 보여줌
notion image
notion image
notion image
notion image
 
 
p.s. 개인적으로 리뷰하고싶은 논문
Share article

More articles

See more posts