CLIP模型目标计数的零样本改进.
本文操纵CLIP模型的文本嵌入空间来提高CLIP模型的计数精度,不仅增强了CLIP的计数能力,而且还提高了Stable Diffusion等文本到图像生成模型生成具有精确目标计数图像的性能。
1. 自定义数据集
作者创建了一个自定义数据集,包含具有不同数量目标的图像,用于评估CLIP模型的计数能力。首先通过在互联网上手动搜索9个不同目标(“狗”,“猫”,“狮子”,“椅子”,“山羊”,“牛”,“樱桃”,“玫瑰”,“船”)的图像,对于每种类型的目标,为2-5目标计数各收集10个图像,然后使用十种不同的操作来修改每个图像(包括旋转、垂直和水平翻转,以及对图像亮度、对比度、颜色和色调的调整),产生了11张图像(包括原始图像)。数据集总共有$3960(= 9 × 10 × 4 × 11)$个样本。
2. 零样本文本嵌入编辑方法
作者提出了零样本文本嵌入编辑方法,从容易计数的目标中提取计数知识(表示为嵌入空间中的线性方向),然后通过向目标嵌入中增加特定计数向量,将该知识应用于目标对象。
使用$v^k$表示包含类别$k$的CLIP文本嵌入向量,$v_i^k$表示包含$i$个类别$k$的目标的文本嵌入,则从类别$k$中提取的计数方向为:
\[\Delta_{i}^{k} = (v_i^k - v^k) - \frac{\left< v_i^k-v^k,v^k \right>}{\left< v^k,v^k \right>}v^k\]计数方向$\Delta_{i}^{k}$与类别$k$的嵌入向量$v^k$正交,用于消除与类别的基本表示相关的信息。
假设有一种类别,CLIP模型可以准确地预测其计数,其文本嵌入表示为$v^{ref}$。使用提取的计数方向$\Delta_{i}^{ref}$作为参考方向。对于任意给定目标对象的嵌入表示$v^{target}$,修正其与$\Delta_{i}^{ref}$的正交性(消除与目标对象表示相关的信息):
\[\tilde{\Delta}_{i}^{ref} = \Delta_{i}^{ref}-\frac{\left< \Delta_{i}^{ref},v^{target} \right>}{\left< v^{target},v^{target} \right>}v^{target}\]最后向目标嵌入中加入修正的计数方向:
\[\tilde{v}^{target} = v^{target}+\tilde{\Delta}_{i}^{ref}\]3. 实验分析
考虑两个计数任务。第一个任务是零样本图像分类:旨在找出给定图像中特定目标的数量,这个任务测量分类精度。第二个任务是基于文本的图像检索:根据给定的文本查询从大型数据集中搜索和检索最相关的图像,这个任务计算成功检索具有正确目标计数的图像的概率。
结果表明CLIP模型的计数性能在不同目标之间存在显著差异。作者认为如果CLIP模型对某些类型的目标进行计数是有效的,那么它已经学习到一些计数知识,这种知识有可能被转移到其他难以计数的物体上,从而提高CLIP模型整体的计数精度。
实验中选择“猫”和“狗”作为后续嵌入编辑的参考对象,因为所有CLIP模型对它们的计数始终比对其他对象的计数更准确。实验表明,利用从“狗”或“猫”中提取的计数方向来调整目标对象的文本嵌入,可以提高CLIP模型的计数精度。
作者进一步探索了该方法在文本到图像生成模型中的应用。应用方法后,Stable Diffusion的计数保真度提高了,这意味着在不进行任何额外训练的情况下,生成计数正确的图像的可能性更高。结果表明,我们的技术可以引导模型生成具有正确数量的物体的图像。