【提示学习论文】CPL:Concept-Guided Prompt Learning for Generalization in Vision-Language Models

Concept-Guided Prompt Learning for Generalization in Vision-Language Models(AAAI 2024)

  • 概念引导的提示学习(CPL)
  • 哈工大、南科大、卡内基梅隆大学
  • 代码:https://github.com/rambo-coder/CPL,未公开

Abstract

  • 之前的方法只投影全局特征到prompt,忽略了多样视觉概念,比如颜色、形状、大小
  • 利用CLIP的丰富知识来创建一个可视化的概念缓存,实现概念引导提示。

Concept-Guided Prompt Learning

概念引导的提示学习
![[CPLf3.png]]

Overview

  • 先创建一个文本概念列表,描述主要的视觉概念。
  • 利用CLIP找到与文本概念相似度最高的图像特征vj,将这些matched对保存在Visual Concept Cache。
    - ![[CPLf3.1.png]]
  • 图像特征作为keys
  • 对应的文本概念作为values

Visual Concept Cache

  1. 创建一个文本综合列表
    文本从现有数据集中收集,包括材料、颜色、形状等共2000个
  2. 生成文本特征cit
    手工提示=The photo is + {text concept},输入text encoder,得到cit
  3. 生成图像特征v
    图像输入image encoder,得到vj
  4. 计算相似度分数St
    对于每个文本,都计算它与所有视觉特征的相似度分数St
  5. 视觉概念缓存
    找到最高相似度得分的图像作为key,其对应的文本概念词作为value,保存在visual concept cache。
    例如文本“红色”,以及相似度最高的图像特征,存储在缓存中。

Projector for Vision-to-Language Prompting

  • 低层产生低级特征,如边缘和颜色;高层产生高级特征,如特定于类的特征。
  • 作者使用每多层的图像特征,与text embedding一起输入到投影层。
    ![[CPLg1.png]]
  • ft:text features
  • E(x):编码器多层输出的集合

Task Adapter

  • 任务适配器A
  • 可学习的矩阵
  • 加在text features后面,进行调节

训练阶段

![[CPLf3.png]]

image

输入图像进入image encoder,得到image feature。提取encoder中多个层的输出,作为多层特征fv,输入投影层。

概念引导提示

输入图像进行image encoder,得到image feature,计算与visual concept cache里相似度最高的top-k个图像特征,找到对应的values,得到一个完整的prompt,A + concepts + photo of a class。

text

首先进行概念引导提示,输入“A + concepts + photo of a class到text encoder,得到text embedding,输入到投影层,再将text embedding和投影层输出ftv作为task adapter A的输入,得到最终文本部分的输出。
![[CPLg2.png]]

预测给定图像x为标签i的概率,计算交叉熵损失,梯度反传。

推断阶段

前面过程一样,最后不计算交叉熵损失,直接计算最可能的y:
![[CPLg5.png]]

Work

  • 文本提示增加了描述概念信息
  • 使用了visual encoder多层的特征和全局特征
  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值