Announcing our new Course: AI Red-Teaming and AI Safety Masterclass

Check it out →
🧠 Advanced
🌱 New Techniques👀 For Vision-Language Models (VLMs)◆ Conditional Prompt Learning (CoCoOp)

◆ Conditional Prompt Learning (CoCoOp) for Vision-Language Models

Last updated on October 1, 2024 by Valeriia Kuka

What is Conditional Prompt Learning (CoCoOp)?

Conditional Prompt Learning (CoCoOp)1 is a technique that adapts pre-trained vision-language models like CLIP for new tasks. Vision-language models map images and text to a shared space, enabling open-world visual recognition. However, fine-tuning these models for specific tasks can be tricky.

A prior approach, Context Optimization (CoOp), introduced prompt learning by converting static words in a prompt into learnable vectors. This helps pre-trained models better adapt to new datasets, but it faces a problem—overfitting to the training classes. CoOp’s static prompts struggle to generalize to unseen categories, making them less useful when class distribution changes.

CoCoOp improves this by generating conditional prompts based on each input image. It adds a lightweight neural network (Meta-Net) that creates a dynamic token tailored to each image. These dynamic prompts are more flexible and can adapt better to unseen classes, enhancing generalization across tasks.

How does CoCoOp differ from existing techniques?

CoCoOp builds on CoOp by addressing the generalization problem. Here’s a comparison:

TechniqueApproachKey FeatureGeneralization
CoOpStatic prompts with learnable vectorsTrained with specific base classesOverfits to base classes
CoCoOpConditional prompts (dynamic)Uses input-specific tokensBetter for unseen/new classes

Key Differences:

  • CoOp uses static context vectors optimized during training. Once trained, these prompts don’t change, making them sensitive to class shifts.
  • CoCoOp generates instance-specific tokens, meaning the prompt adapts to each image, improving performance on unseen data. This reduces overfitting and allows for better generalization, even beyond the dataset it was trained on.

How to use CoCoOp

CoCoOp is useful for tasks like image classification where data distributions change or where you need to apply the model to unseen categories. The technique can be applied to various visual recognition tasks, such as:

  • Fine-grained classification: Differentiating between similar categories (e.g., dog breeds).
  • Scene recognition: Recognizing different types of scenes (e.g., wind farm, train railway).
  • Cross-dataset transfer: Applying a model trained on one dataset (e.g., ImageNet) to a completely different dataset (e.g., OxfordPets).
Tip

For open-source code, check this link.

Results of CoCoOp

CoCoOp significantly improves generalization across multiple benchmarks compared to CoOp. It shows better performance in unseen classes and even in domain generalization scenarios. Here’s a summary of key results:

Base-to-New Class Generalization:

MethodBase AccuracyNew AccuracyHarmonic Mean (H)
CLIP69.34%74.22%71.70%
CoOp82.69%63.22%71.66%
CoCoOp80.47%71.69%75.83%
  • Harmonic Mean highlights the balance between generalization on base and unseen classes. CoCoOp consistently outperforms CoOp, with better accuracy on unseen classes.

Cross-Dataset Transfer (From ImageNet to 10 other datasets):

MethodAverage Transfer Accuracy
CoOp63.88%
CoCoOp65.74%

CoCoOp demonstrates better transferability, particularly when the datasets have different categories or domain shifts.

Domain Generalization:

MethodImageNet SketchImageNet-AImageNet-R
CLIP46.15%47.77%73.96%
CoOp47.99%49.71%75.21%
CoCoOp48.75%50.63%76.18%
  • CoCoOp improves robustness against domain shifts, outperforming both CLIP and CoOp on challenging benchmarks.

Conclusion

CoCoOp is a powerful extension of prompt learning for vision-language models, designed to tackle overfitting and enhance generalization. Its dynamic, input-conditional prompts adapt to unseen categories and tasks, offering more flexible and robust performance.

Footnotes

  1. Zhou, K., Yang, J., Loy, C. C., & Liu, Z. (2022). Conditional Prompt Learning for Vision-Language Models. https://arxiv.org/abs/2203.05557

Edit this page
Word count: 0
Copyright © 2024 Learn Prompting.