What the DAAM: Interpreting Stable Diffusion Using Cross Attention

news/2024/7/10 20:24:24 标签: stable diffusion, 人工智能, 计算机视觉

What the DAAM: Interpreting Stable Diffusion Using Cross Attention (Paper reading)

Raphael Tang, Comcast Applied AI, ACL2023 best paper, Code, Paper

1. 前言

大规模扩散神经网络是文本到图像生成中的一个重要里程碑,但人们对其了解甚少,缺乏可解释性分析。在本文中,我们对最近开源的模型Stable Diffusion进行了文本-图像归因分析。为了生成像素级归因图,我们在去噪子网络中提升并聚合交叉注意词-像素得分,将我们的方法命名为DAAM。我们通过测试其对名词的语义分割能力以及对所有词性的广义归因质量来评估其正确性,并由人类进行评分。然后,我们应用DAAM来研究语法在像素空间中的作用,表征十种常见依赖关系的头部相关热图交互模式。最后,我们使用DAAM研究了几种语义现象,重点是特征纠缠,我们发现同音同源词恶化了生成质量,描述性形容词出现的范围太广。据我们所知,我们是第一个从视觉语言学的角度解释大型扩散模型的人,这有助于未来的研究。

2. 整体思想

将Stable Diffusion中的交叉注意力可视化,对文本中的词的对生成图像的影响做了全面的分析,建议看原文。

3. 方法

3.1 Diffusion Attentive Attribution Maps

给定一个用于文本到图像合成的大规模潜在扩散模型,每个单词对图像的哪些部分影响最大?实现这一点的一种方法是归因方法,主要是基于扰动和梯度的,其中显著性图是根据输出相对于输入的一阶导数构建的,或者根据输入扰动构建的,以查看输出如何变化。不幸的是,梯度方法被证明是难以处理的,因为在所有T个时间步长内,每个像素都需要反向传播,在我们的试点实验中,即使是微小的扰动也会导致显著不同的图像。

具体来说,给定一个latent变量 l t ∈ R w × h l_t\in R^{w\times h} ltRw×h,扩散模型的U- Net的下采样块输出一系列向量 { h i , t } i K   ∈ R w / c i , h / c i \{h_{i,t}\}^K_i \ \in R^{w/c^i,h/c^i} {hi,t}iK Rw/ci,h/ci。通常在多头交叉注意力层添加文本条件,Stable Diffusion的网络结构请点击这里,可以表示为:
h i , t = F t i ( h ^ i , t , X ) ⋅ ( W v i X ) ,   F t i ( h ^ i , t , X ) = s o f t m a x ( ( W q i h ^ i , t ) ( W k i X ) T / d ) h_{i,t}=F^i_t(\hat h_{i,t}, X)\cdot (W^i_v X),\\ ~\\ F^i_t(\hat h_{i,t}, X)=softmax((W^i_q \hat h_{i,t})(W^i_k X)^T / \sqrt{d}) hi,t=Fti(h^i,t,X)(WviX), Fti(h^i,t,X)=softmax((Wqih^i,t)(WkiX)T/d )
这里 F F F表示注意力得分,这个分数表现在空间层面,也就是文本和特征的分数,会影响最终的输出。下图搬运上述链接,防丢失。


在这里插入图片描述


在这里插入图片描述

3.2 Spatiotemporal aggregation

F t i [ x , y , l , k ] F^i_t[x, y, l, k] Fti[x,y,l,k]被归一化为[0,1],并将第 k k k个字(word)连接到第 i i i个下采样块和第 l l l个头的中间坐标 ( x , y ) (x,y) (x,y)。由于U-Net(和VAE)的完全卷积性质,中间坐标局部映射到最终图像中周围受影响的正方形区域因此得分将每个单词与该图像块相关联。然而,不同的层产生不同尺度的热图,最深的层是最粗糙的,需要空间归一化来创建单个热图。为此,我们使用双三次插值将所有中间注意力得分数组提升到原始图像大小,然后在头部、层和时间步长上对它们求和:
在这里插入图片描述

其实就是单词k对应的所有时间步,所有上下采样块,所有heads,所有通道的特征图插值到原图大小合并为一张图片,这样就得到了软热力图,如果是硬热力图就设定一个阈值变为0-1。

4. 归因分析

4.1 目标归因

对我们的方法进行定量评估具有挑战性,但我们可以尝试利用现有的注释数据集和方法,看看我们的方法有多一致。一个流行的视觉语义任务是图像分割,其中区域(即分割掩码)被赋予语义上有意义的标签,通常是名词。如果DAAM是准确的,那么我们的注意力图应该可以说与这些任务的图像分割标签对齐——尽管没有经过执行这项任务的训练。

我们使用DPM求解器运行Stable Diffusion 2.0基础模型,每张图像使用30个推理步骤。然后,我们使用COCO图像字幕数据集的验证集合成了一组图像,表示真实的提示,另一组图像通过随机交换同一组中的名词(固定词汇)来合成,表示不真实。第二组的目的是观察该模型在多大程度上适用于不真实的提示,而在训练时不太可能遇到这种提示。我们将这两个集合命名为“COCO-Gen”和“Unreal-Gen”,每个集合有100个提示-图像对。对于基本事实,我们从提示中提取所有可数名词,然后手工分割图像中的每个现在名词。下图中可以看到,分割效果比其他无监督方法好多了,这也体现了名词可以对应相应的文本

在这里插入图片描述

4.2 广义归因

我们将我们的准确性分析从名词扩展到所有词性,如形容词和动词,以表明DAAM更普遍地适用。高质量、可靠的分析需要人工注释;因此,我们要求人类评分者使用五点Likert量表来评估DAAM地图的归因质量。这种设置概括了上一节的设置,因为单词通常在视觉上是不可分离的,这妨碍了有效的分段注释。例如,在“人们在跑步”的提示中,不清楚在哪里可以直观地划分“跑步”。这只是跑步者的膝盖和脚,还是摆动的手臂?相反,如果给注释者提供建议的“运行”热图,他们可以判断这些热图在多大程度上反映了单词
在这里插入图片描述

4.3 视觉语法分析

有了DAAM,我们现在研究语法与生成的像素之间的关系。我们描述了头部相关DAAM图之间的成对相互作用,补充了前面的部分,并有助于形成进一步研究的假设。在图5中给出了示例。结论如下,请看图5从左到右,从上到下:

  1. 不相关的词容易区分
  2. 名词复合词没有优势,ice-cream,分为ice和cream没用
  3. 标点符号仅有少许语义信息,意义不大
  4. and连接两个名词,词意相似较难区分,反之容易
  5. 动词很直观,体现了shirt的整体
  6. 形容词分布广泛
  7. 相关词表现突出

在这里插入图片描述


在这里插入图片描述


http://www.niftyadmin.cn/n/5255165.html

相关文章

IBM Qiskit量子机器学习速成(二)

分类与回归 本章节介绍如何使用量子神经网络处理机器学习中的分类与回归任务。一般而言,我们将这两大内容归类为“监督学习(supervised learning)” 一般流程 使用量子神经网络处理分类与回归任务的一般步骤如下: 创建参数化电路,参数可以…

APP备案(Android) - 获取签名证书公钥、MD5

因为近期刚针对各应用平台对APP备案时间节点要求进行了统一整理,然后隔天就被要求提供一下app相关的的公钥和MD5,虽然很快就解决了这个事情,但忍不住又稍微衍生了一下,但行小步,莫问远方吧 关联Blog APP备案(Android)…

nginx的location与rewrite

1.location 2.rewrite 3.基于域名的跳转 4.基于ip的跳转 5.基于旧域名跳转到新域名后面加目录 一.location location / {},为精确匹配 / ,主机名后面不能带任何字符串,比如访问 / 和 /data,则 / 匹配,/data 不匹…

【docker】Hello World

搜索hello-world镜像 docker search hello-world拉去镜像 docker pull hello-world查看本地镜像 docker images 运行镜像 docker run hello-world查看所有的容器 docker ps -a查询start状态容器 docker ps 输出介绍 CONTAINER ID: 容器 ID。IMAGE: 使用的镜像。COMMAN…

springboot(ssmBBS论坛系统 论坛交流平台Java(codeLW)

springboot(ssmBBS论坛系统 论坛交流平台Java(code&LW) 开发语言:Java 框架:ssm/springboot vue JDK版本:JDK1.8(或11) 服务器:tomcat 数据库:mysql 5.7(或8.0)…

【C++】函数:函数默认参数,函数占位参数,函数重载

目录 函数提高1.1 函数默认参数注意事项 1.2 函数占位参数1.3 函数重载1.3.1 函数重载概述注意事项1.3.2 函数重载注意事项 函数提高 1.1 函数默认参数 在C中,函数的形参列表中的形参是可以有默认值的。 语法:返回值类型 函数名 (参数 默认…

散点图直方图折线图的替代

散点图直方图折线图的替代 seaborn官网 数据科学数据可视化,散点图 直方图 折线图的新方法 1.hexbinplot https://seaborn.pydata.org/examples/hexbin marginals.html相当于散点图做了聚合/分箱,使数据的分布展示更明显。Library: seaborn 2.瀑布图展示…

前端学习系列之JavaScript

目录 JavaScript 概述 优点 入门 引入 1.内部引入 2.外部引入 调试模式 数据类型 1.字符串 2.数组 3.对象 4.流程控制 if判断 while循环 for循环 forEach循环 for …in-------下标 5.Map和Set Map Set 6.iterator 函数 定义函数 方式一 方式二 调用…