《Visual Prompting: Modifying Pixel Space to Adapt Pre-trained Models》论文阅读笔记

前言


始于NLP

  • 灵感: 正如随着attention机制和transformer在NLP成为主流,attention+CNN、Vit、Swin-transformer、ShiftVit等基于attention和transformer的CV模型不断涌出一样;在看到prompting在NLP变得越来越火时,作者自然问道:Why not visual prompting?

  • Prompt in NLP: Prompt目前在NLP领域有很多工作,在《Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing》这篇survey里面,作者大佬系统地介绍了NLP的发展历程(如下图)qzZ91g.png 从依赖特征工程的传统机器学习,到大量依赖数据集的深度学习,再到基于预训练模型的Fine-tune类型算法,再到现在的基于预训练模型的Prompt类型算法。作者在文章中系统地介绍了Formulation、Pre-trained models、Prompt engineering、Answer Engineering 等相关问题,写得非常的简介明了,推荐感兴趣的去阅读一下。

  • NLP中的Prompt: 那么,prompt到底是什么呢?简单来讲,就是对原来的输入文本进行一定的处理,使得在不改变预训练模型参数的情况下,相应任务的performance变高。例如,原输入文本为:I received the offer from ETH. ,对于文本分类,我们将其修改为I received the offer form ETH, I’m so [MASK];[MASK]可以为一些表示情绪的词,比如happy,那么相对于原文,修改后的句子更容易被分为happy类。如果将其改为I received the offer from ETH. Chinese:[MASK],则对于翻译任务来讲,更容易取得正确的翻译效果。所谓的修改方式在大佬论文中提到的有(如下图)在这里插入图片描述

  • NLP中的Prompt算法步骤:

    • Prompt Addition: 这一步就是如何修改原文本。
    • Answer Search: 构建相应的answer空间,例如,文本分类,设置为(happy, good, terrible等)。
    • Answer Mapping: 在某些时候answer并不是我们最终想要的结果,比如我们最终想要的结果为positive和negative;那么则需要将happy,good映射为positive,将terrible映射为negative。

Visual Prompting

  • Why Visual Prompting: 在前言中提到过,作者文章的目的是证明在CV领域,Prompt是可行的,并且在某些任务和数据集上效果是不错的。
  • 使用(迁移)预训练模型的方法: 在CV中,将一个预训练模型迁移到新任务上的方法主要包括Fine-tuning,Linear Probe,Visual Prompting ;三种方法的不同如下图qzQwJ1.png Fine-tuning会修改预训练模型参数,Linear Probe不会修改预训练模型参数,但是会在预训练模型后增加和任务相关的线性层,Visual Prompting则是不修改预训练模型参数,只修改原图像。

Methods

  • Prompt形式: 对于图片,给原图增加prompt,自然想到的是添加一些像素;其实以像素形式添加prompt的好处就是可以做到task-special和input-agnostic;也就是因为prompt中含有大量数据中学到的信息,所以是任务相关的;因为对于同一个任务,在测试时,直接使用得到的prompt就可以,不管你输入哪张图片,因此时输入无关的。
  • 如何添加: 作者提到了三种方式:1)在随机位置添加像素块(pixel patch);2)在固定位置添加像素块(pixel patch);3)在图像内部边缘pad一些像素(类似卷积中的padding)第三种方式效果最好
  • Padding: 使用pad方式添加,添加的宽度为 p p p;图像的尺寸为 C , H , W C,H,W C,H,W;则一共需要添加 2 ∗ C ∗ p ∗ ( H − p ) + 2 ∗ C ∗ p ∗ ( W − p ) 2*C*p*(H-p)+2*C*p*(W-p) 2Cp(Hp)+2Cp(Wp),如图qzN5SH.png
  • 如何得来: 对于一个任务,需要通过训练得到于该任务相关的prompt,得到之后就可以直接应用了。

效果

  • 直接上图,正如作者提到的,文章的目的不是达到state-of-the-art,只是为了证明visual prompting的有效性,不过从作者提供的结果来看,效果还是不错的(如下图)qza5qI.png

疑问

  • 在文章的What Properties Make for a Good Visual Prompt?部分,我觉得他没有在原理上讲清楚到底是什么使得一个prompt是一个有效的prompt,对此有比较清楚的看法的小伙伴欢迎评论交流。

参考文献

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值