本文目录
1 FreeU:扩散 U-Net 模型的免费午餐
(来自南洋理工大学 S-Lab)
1 FreeU 论文解读
1.1 扩散 U-Net 中的低频和高频分量
1.2 扩散 U-Net 是如何执行去噪过程的?
1.3 扩散 U-Net 的 "免费午餐"
1.4 实验设置
1.5 文生图实验结果
1.6 文生视频实验结果
1.7 下游任务实验结果
1.8 消融实验结果
太长不看版
本文作者发现了
扩散 U-Net 模型的一个未开发的潜力
,即:一种
"免费的午餐"
,可以即时地,显著地提高生成的质量。
作者一开始研究了 U-Net Backbone 对去噪过程的主要贡献,并确定其 Backbone 部分有利于去噪,而其 Skip connection 部分会在 Decoder 中引入高频特征,导致网络忽略掉 Backbone 语义信息。利用这一发现,作者提出了一种简单有效的方法:FreeU,在不增加训练或微调的情况下提高模型的生成质量。本文关键的 insight 是对来自 Skip connection 和 Backbone 特征图的贡献进行加权,以利用 U-Net 中这两个组件的优势。作者进行了图像和视频的生成任务,结果表明,FreeU 可以很容易地集成到现有的扩散模型中,仅仅使用几行代码来提高生成质量,比如:Stable Diffusion[1], DreamBooth[2], ModelScope[3], Rerender[4]以及 ReVersion[5]等等。
在推理过程中调整两个 scaling factor is all you need!
图1:FreeU,一种在不成本的情况下大幅提高扩散模型样本质量的方法:没有训练,没有引入额外的参数,也没有增加内存或采样时间
本文做了哪些具体的工作
-
研究并揭示了 U-Net 架构去噪的潜力,并确定其 Backbone 主要有助于去噪,而 Skip connection 将高频特征引入到了 Decoder 模块中。
-
引入了一个简单有效的方法,称为 "FreeU"。它通过利用 U-Net 架构的两个组件的优势来增强 U-Net 的去噪能力。同时,它大大提高了生成质量,且不需要额外的训练或微调。
-
FreeU 框架是通用的,且可以与现有的 Diffusion 模型无缝集成。作者展示了各种基于扩散的方法的生成质量的显著的改进,且没有额外的成本,证明了 FreeU 的有效性。
1
FreeU:扩散 U-Net 模型的免费午餐
论文名称:FreeU: Free Lunch in Diffusion U-Net (CVPR 2024 Oral)
论文地址:
https//arxiv.org/pdf/2309.11497
项目链接:
https//chenyangsi.top/FreeU/
1.1 扩散 U-Net 中的低频和高频分量
扩散概率模型是生成模型的类别之一,已成为研究的焦点。它提出了一种新的生成范式,使用马尔科夫链来映射 Latent Space。扩散模型具有令人印象深刻的生成能力,从高水平的生成图像的细节到丰富的结果,推动了图像生成[6],图像编辑[7],文生视频[8]等等各种计算机视觉应用的突破性进展。
扩散模型由
扩散过程
和
去噪过程
组成。在扩散过程中,高斯噪声逐渐添加到输入数据中,最终将其破坏为近似纯高斯噪声。在去噪过程中,通过可学习的逆扩散操作,从噪声逐渐恢复为原始输入数据。一般而言,扩散模型会训练一个 U-Net 来迭代地在每个步骤中去噪。现有的工作侧重于直接使用预训练的扩散 U-Net 模型进行下游的应用,而 U-Net 的内部特性在很大程度上仍未得到充分的探索。
除了扩散模型的应用之外,本文作者的兴趣在研究 U-Net 架构本身对于去噪过程的有效性。为了更好地理解去噪过程,作者首先提出在傅里叶域中研究扩散模型,以更好地观察生成过程。如图2所示,最上面一行是图像在不同 iteration 的渐进式去噪过程。下面两行分别是每个 step 在傅里叶逆变换之后的低频和高频分量。
图2:去噪过程。上:图像随着 iteration 的逐渐去噪过程;中:每个 step 在傅里叶逆变换之后的低频分量;下:每个 step 在傅里叶逆变换之后的高频分量
在图2中,低频分量表现出了较低的变化率,但是高频分量在整个的去噪过程中表现出了更加明显的变化。这些发现进一步在图3中得到了证实。
图3:不同 backbone scaling factor b 的 Fourier 对数幅频曲线。增加 b 会导致模型生成结果的高频信息被压缩
这个现象可以直观解释:
-
低频分量体现了图像的全局结构,包括全局的布局和平滑的颜色。这些全局的元素构成了图像的本质。对于去噪的过程,这些快速变化其实是不合理的。因此,低频分量的快速变化会重塑图像的本质,这也与去噪的目标是矛盾的。
-
高频分量包含图像的边缘和纹理信息。这些精细的细节对噪声非常敏感。而噪声被引入图像时,通常表现为随机的高频信息。因此,去噪过程需要在擦除噪声的前提下,同时保持重要且复杂的细节。
1.2 扩散 U-Net 是如何执行去噪过程的?
鉴于去噪过程中低频分量和高频分量之间的这些观察结果,作者扩展了调查,确定 U-Net 架构在扩散框架内的具体贡献,以探索去噪网络的内部属性。如下图4所示,U-Net 的整体架构包括 Backbone,它包括 Encoder 和 Decoder,以及促进二者之间的信息传输的 Skip connection。
图4:FreeU 框架示意图。(a):U-Net 架构的 backbone 特征以及 skip connection 特征;(b):FreeU 操作,包含两个 factor,针对于 backbone feature 的 b,以及针对于 skip connection 的 s
U-Net 的 Backbone
为了评估去噪过程中主干和横向连接的显着特征,作者进行了一个对照实验:引入了两个乘法 scaling factor 分别用 bb 和 ss 表示,分别在连接之前调制 Backbone 和 Skip connection 的特征图。
如下图5所示,很明显,提高 Backbone 的 scaling factor bb 可以显著提高生成图像的质量。相反,调节 Skip connection 的 scaling factor ss 对生成的图像的质量的影响可以忽略不计。
图5:调节 Backbone 和 Skip connection 的 scaling factor 对生成图像质量的影响
基于这些观察,作者继续探索了当增强 Backbone 的 scaling factor bb 时,图像生成质量提升的潜在机制是什么。本文的分析表明,这种质量改进从根本上来讲,与 U-Net 架构 Backbone 的去噪能力有关。
如下图6所示, bb 的相应增加相应地导致扩散模型生成的图像中高频分量的抑制。这意味着增强 Backbone feature 有效地增强了 U-Net 架构的去噪能力,从而提升了模型生成结果的保真度和细节。
图6:不同 backbone scaling factor b 的 Fourier 对数幅频曲线。增加 b 会导致模型生成结果的高频信息被压缩
U-Net 的 Skip Connection
为了评估去噪过程中主干和横向连接的显着特征,作者进行了一个对照实验:引入了两个乘法 scaling factor 分别用
和
表示,分别在连接之前调制 Backbone 和 Skip connection 的特征图。
如下图5所示,很明显,提高 Backbone 的 scaling factor
可以显著提高生成图像的质量。相反,调节 Skip connection 的 scaling factor
对生成的图像的质量的影响可以忽略不计。
图7:backbone, skip 以及融合特征的 Fourier 对数幅频曲线
1.3 扩散 U-Net 的 "免费午餐"
上节的研究表明,
U-Net 的 Backbone 的主要贡献是去噪,而 Skip connection 将高频特征引入 Decoder 模块,使其更容易恢复输入数据
。但是,一个意想不到的结果是在推理阶段,Backbone 固有的去噪能力减弱了。这可能会导致异常图像细节的生成,如图1所示。
利用这些发现,作者引入了一种新的策略,称为
"FreeU"
,可以有效地增强 U-Net 架构的去噪能力。它大大提高了生成样本的质量,而不需要额外的计算训练或者微调的开销。
对于 U-Net 解码器的第
个 Block,令
表示其前一个 Block 的 Backbone 特征,
表示通过 Skip connection 转发的特征。为了调制这些特征图,作者引入了两个标量因子: 为调制
的 Backbone 的 scaling factor
,以及为调制
的 Skip connection 的 scaling factor
。具体而言,
旨在放大 Backbone 的特征,从而增强去噪过程; 而
旨在衰减 Skip connection 的特征。
对于 Backbone 特征,作者首先沿着 channel 维度计算平均特征:
式中,
代表特征
的第
个 channel,
代表特征
的 channel 数。然后,backbone factor 计算为:
式中,
为 backbone factor,
是标量常数。然后,实验中作者发现给所有的 channel 不加区别地乘以
会在生成的合成图像中产生过度平滑的纹理。其原因是增强的 U-Net 在去噪时损害了高频细节信息。因此,作者将 scaling 操作限制在特征
的一半通道:
事实上,如图8所示,平均特征图
包含了有价值的结构信息。这种方法旨在缓解过度平滑的问题。这个策略的好处有两点:
第1,它增强了 Backbone 特征的去噪能力,使其能够更有效地滤除噪声。第2,它避免了在整个特征图中全部使用 scaling factor 所带来的不利影响
,从而在降噪和纹理保存之间实现更好的平衡。
图8:平均特征图的可视化结果
为了
进一步缓解由于增强去噪而导致的过度平滑纹理问题
,作者进一步在傅里叶域中使用光谱调制来减少 Skip 特征的低频分量:
式中,
和
是 Fourier 和 Inverse Fourier 变换,
是一个 Fourier mask,是一个 Fourier 系数,用来实现频率依赖的 scaling factor
:
式中,
是半径,
是阈值频率。然后,调制之后的 Skip 特征
再与调制之后的 Backbone 特征
Concat 在一起,输入给 U-Net 架构的后续层,如上图4所示。
值得注意的是,所提出的 FreeU 框架不需要任何特定于任务的训练或微调。只需几行代码即可为 Backbone 和 Skip connection 添加缩放因子。本质上,架构的参数在推理阶段可以自适应地重新加权,这允许更灵活和有效的去噪操作,而无需添加任何计算负担。这使得 FreeU 成为一个高度实用的解决方案,可以无缝集成到现有的扩散模型中以提高其性能。
1.4 实验设置
作者把所提出的 FreeU 方法与其他方法进行对齐,比如:Stable Diffusion[1], DreamBooth[2], ModelScope[3], Rerender[4]以及 ReVersion[5]等等。FreeU 可以直接集成到这些已有方法中,且不产生额外的训练和微调的计算开销。作者仔细地遵守这些方法的设置,并在推理过程中专门介绍 Backbone scaling factor 和 Skip scaling factor。
1.5 文生图实验结果
Stable Diffusion[1]是一个在 Latent 空间的文生图扩散模型,基于文本输入可以生成逼真的图像。它在各种图像合成任务中始终表现出卓越的性能。通过将 FreeU 增强集成到 Stable Diffusion 中的实验结果如图9所示,可以看出模型的生成能力表现出显著的增强。