灵活视图变换器:为扩散模型设计的革新图像生成架构

在自然界中,图像的分辨率是无限的,而现有的图像生成模型在跨任意分辨率泛化方面存在困难。虽然扩散变换器(DiT)在特定分辨率范围内表现出色,但在处理不同分辨率的图像时却力不从心。为了克服这一限制,来自上海人工智能实验室的研究团队及其合作者提出了灵活视图变换器(Flexible Vision Transformer,简称FiT),这是一种专为生成任意分辨率和纵横比的图像而设计的变换器架构。与传统方法不同,FiT将图像视为动态大小的令牌序列,这种视角使得FiT在训练和推理阶段都能灵活适应不同的纵横比,从而促进分辨率的泛化,并消除了由图像裁剪引入的偏见。

FiT-XL/2模型在不同分辨率下生成的图像样本

方法

论文首先介绍了一些关键的预备概念和技术,特别强调了1-D Rotary Positional Embedding(1-D旋转位置嵌入,简称RoPE)的概念。RoPE是一种新颖的位置编码方式,它通过将绝对位置编码和相对位置编码结合在一起,为大型语言模型(LLMs)提供了一定程度的序列长度外推能力。

RoPE通过在复数向量空间中对关键向量和查询向量应用偏置,实现了位置编码。这种方法利用了一个旋转频率矩阵,该矩阵定义了一系列的旋转角度,这些角度与位置编码的维度有关。在实际空间中,这种旋转矩阵可以被看作是一个由余弦和正弦函数组成的矩阵,它能够根据位置信息调整关键向量和查询向量。

其次注意力分数的计算方式也很重要,即如何结合使用RoPE的查询向量和关键向量来得到注意力分数。这涉及到利用RoPE编码后的查询向量和关键向量之间的复数实部内积,以确定模型在不同位置编码下的注意力权重。

最后是NTK-aware Interpolation(NTK感知插值)和YaRN(Yet another RoPE extensioN,另一种RoPE扩展)插值技术。这些技术主要用于处理大型语言模型在面对测试时上下文长度超过训练时最大长度的情况。通过调整RoPE的旋转基,NTK-aware Interpolation能够适应更长的上下文。而YaRN技术则引入了一个额外的超参数来调整旋转频率,从而更有效地扩展上下文窗口。

为了处理不同分辨率的图像,FiT采用了一个灵活的预处理步骤。与传统的将所有图像调整到固定分辨率的方法不同,FiT在预处理阶段避免了裁剪或过度缩放图像。FiT仅将高分辨率图像调整到一个预设的最大分辨率限制,确保图像的原始纵横比不变,从而避免了引入不必要的失真或信息损失。

接下来,FiT的训练流程包括将图像编码为潜在代码,然后将这些潜在代码分割成固定大小的潜在令牌。由于不同图像的潜在令牌序列长度可能不同,FiT通过填充令牌将所有序列统一到一个最大长度,这样就可以将不同长度的序列打包到同一个批次中进行并行处理。在训练过程中,模型只计算去噪输出令牌的损失,而忽略填充令牌。

在推理阶段,FiT首先根据目标图像的分辨率定义一个位置图,然后从高斯分布中采样噪声令牌作为输入。通过一系列的去噪步骤,模型逐步改善这些噪声令牌,最终根据位置图将去噪后的令牌重塑并解码成最终的图像。

FiT的训练和推理流程还特别考虑了GPU硬件的特性,确保数据以统一形状的批次进行处理,以优化并行计算效率。这种灵活的训练和推理流程使得FiT能够生成各种分辨率和纵横比的高质量图像,同时保持了图像的细节和完整性。

为了评估FiT生成的图像质量,研究者们采用了多种评估指标,如Frechet Inception Distance(FID)、Inception Score(IS)、以及改进的精确度和召回率等。这些指标能够全面评估生成图像的质量和多样性,确保FiT在不同分辨率下都能产生高保真度的图像输出。通过这些评估,研究者们能够验证FiT在训练分布内外的分辨率上都具有出色的图像生成能力。

DiT和FiT在处理数据时的流程差异。(a)部分展示了DiT的流程,包括固定分辨率的处理方式;(b)部分展示了FiT的流程,突出了其灵活处理不同分辨率的能力

FiT模型视图:
(a) 灵活的训练流程,展示了如何将图像编码、分块、填充和计算损失。(b) 灵活的推理流程,展示了如何定义生成图像的位置、去噪和重塑。(c) FiT块,展示了模型的基本构成元素,包括2D位置嵌入、掩码多头自注意力(Masked MHSA)、SwiGLU等

FiT模型的架构基于DiT(Diffusion Transformer)进行了改进,特别是针对分辨率外推的局限性进行了优化。为了适应不同大小的图像,FiT采用了2D Rotary Positional Embedding(2D旋转位置嵌入,简称2D RoPE),这是从1D RoPE演变而来的技术,它通过在两个维度上分别应用旋转频率,增强了模型对空间位置信息的编码能力。

FiT模型中传统的多层感知器(MLP)被替换为Swish-Gated Linear Unit(SwiGLU),这是一种新型的激活函数,它结合了Sigmoid线性单元(SiLU)和Hadamard乘积,能够提供更有效的非线性变换,有助于提高模型的表达能力。

为了更有效地处理填充令牌,FiT使用了Masked Multi-Head Self-Attention(Masked MHSA)机制。这种机制通过掩码操作,区分了实际的令牌和填充令牌,确保在自注意力计算过程中,只有实际的令牌之间进行交互,而忽略填充令牌,从而避免了不必要的计算和潜在的错误信息传播。

FiT模型还引入了一种灵活的训练策略,允许模型在训练过程中动态调整序列长度,以适应不同分辨率的图像。这种策略通过将图像编码为不同长度的潜在令牌序列,并使用填充操作将它们统一到最大序列长度,使得模型能够处理任意长度的输入。

FiT模型的设计还包括了对网络架构的细致调整,如层数、隐藏尺寸和注意力头数的配置,以及对训练过程中的正则化和优化策略的选择。这些细节共同构成了FiT模型的核心,使其能够在保持高效率的同时,生成高质量的图像。

FiT模型在设计时考虑到了在不同分辨率下生成图像的能力,特别是在训练数据中未出现的分辨率。为了实现这一点,研究者们采用了一种无需额外训练的方法来扩展模型的分辨率适应性。

FiT模型在训练期间能够处理各种分辨率和纵横比的图像,但为了在推理时生成更高或更低分辨率的图像,需要一种有效的外推技术。论文提出了几种不同的外推方法,包括但不限于:

  • Vanilla NTK和YaRN实现:直接将大型语言模型中的外推技术应用于2D RoPE,通过调整旋转基来适应不同的分辨率。
  • VisionNTK和VisionYaRN:这是两种针对视觉任务改进的外推方法,它们利用了2D RoPE的解耦特性,分别对高度和宽度的旋转频率进行独立调整,以适应不同的纵横比。

这些方法通过修改模型的位置编码来适应新的分辨率,而不需要对模型权重进行任何调整或额外的训练。这样,FiT模型能够灵活地在不同的分辨率下生成图像,即使是在训练时未曾遇到的分辨率。

实验

研究者们遵循DiT-B和DiT-XL的设置,为基本模型FiT-B和xlarge模型FiT-XL设置了相同的层数、隐藏尺寸和注意力头数。研究者们采用了与DiT相同的预训练VAE编码器来编码和解码图像/潜在令牌。

研究者们通过一系列消融实验来检验和优化FiT模型的各个组成部分。这些实验包括对位置编码方式、前馈网络(FFN)中的激活函数,以及多头自注意力(MHSA)机制的调整。通过在特定的训练步骤后评估不同模型变体在多个分辨率上的性能,研究者们确定了哪些架构设计对于提升模型在不同分辨率图像生成任务上的表现最为关键。结果表明,引入2D旋转位置编码(2D RoPE)和SwiGLU激活函数,以及使用Masked MHSA代替传统的MHSA,能够有效提高模型对分辨率变化的适应性和生成图像的质量。

从DiT-B/2到FiT-B/2模型的消融研究结果

研究者们评估和改进了FiT模型在生成训练分布之外分辨率图像的能力。他们探索了多种分辨率外推技术,包括基于RoPE的插值方法,如NTK和YaRN,以及为FiT专门设计的VisionNTK和VisionYaRN方法。这些方法允许模型在不经过额外训练的情况下,有效地生成不同分辨率的图像,从而显著提高了模型的灵活性和应用范围。通过这些技术,FiT能够在保持图像质量的同时,处理更广泛的分辨率,包括那些在训练时未遇到的分辨率。

在分布外分辨率下,不同模型在ImageNet数据集上生成图像的性能比较。它包括了使用不同插值方法的FiT-B/2和DiT-B/2模型

研究者们训练了最高Gflops的模型FiT-XL/2,并在1.8M步数下进行了实验,以评估FiT在三种训练分布内的分辨率下的表现:256×256、160×320和128×384。他们将FiT与其他最先进的类条件生成模型进行了比较,包括BigGAN、StyleGAN-XL、MaskGIT、CDM、U-ViT、ADM、LDM、MDT和DiT。

实验结果表明,FiT-XL/2在所有评估的分辨率上都展现出了卓越的性能,超越了其他所有模型,特别是在160×320和128×384分辨率上,FiT-XL/2显著降低了FID得分,显示出其在生成高质量图像方面的显著优势。FiT-XL/2在256×256分辨率上尽管训练步数较少,但与其他经过更长时间训练的模型相比,仍显示出了竞争力。

在ImageNet数据集上,使用类条件图像生成模型在分布内和分布外分辨率生成图像的性能比较。表格中列出了不同模型在不同分辨率下的性能指标,如FID、sFID、IS、Precision和Recall

究者们评估了FiT-XL/2在三种训练分布外的分辨率下的表现:320×320、224×448和160×480,并与U-ViT、ADM、LDM-4、MDT和DiT等其他最先进的类条件生成模型进行了比较。他们发现FiT-XL/2在所有评估的分辨率和纵横比设置下都实现了最佳性能。

通过这些实验,研究者们展示了FiT模型在不同分辨率和纵横比下生成高质量图像的能力,证明了其在图像生成任务中的优越性和灵活性。

论文链接:https://arxiv.org/abs/2402.12376

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/781762.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

java 栅栏(CyclicBarrier)

Java中的栅栏(CyclicBarrier)是一种用于协调多个线程并发工作的同步辅助类。与CountDownLatch不同,CyclicBarrier允许一组线程相互等待,直到所有线程都到达一个共同的屏障点(barrier)后,才继续执…

【qt】TCP 服务端怎么收到信息?

上一节,我已经讲了,TCP的监听,是基于上一节的,不知道的可以看看. 当我们的TCP 服务器 有 客户端请求连接的时候,会发出一个信号newConnection(). 在TCP服务端与客户端的通信中,我们需要使用到套接字 QTcpSocket类. 套接字相当于是网络通信的接口,服务段和客户端都要通过它进行通…

聚焦大模型应用落地,2024全球数字经济大会人工智能专题论坛在京举办

7月1日下午,2024全球数字经济大会人工智能专题论坛在中关村国家自主创新示范区会议中心举办。论坛紧扣大模型应用落地这一热点,以“应用即未来——大模型赋能千行百业,新生态拥抱产业未来”为主题,备受社会各界关注。 一、北京已…

STM32点灯闪烁

stm32c8t6引脚图 开发板引脚图 GPIO端口的每个位可以由软件分别配置成 多种模式。 ─ 输入浮空 ─ 输入上拉 ─ 输入下拉 ─ 模拟输入 ─ 开漏输出 ─ 推挽式输出 ─ 推挽式复用功能 ─ 开漏复用功能 配置GPIO端口步骤:开启时钟->使用结构体设置输出模式…

LabVIEW从测试曲线中提取特征值

在LabVIEW中开发用于从测试曲线中提取特征值的功能时,可以考虑以下几点: 数据采集与处理: 确保你能够有效地采集和处理测试曲线数据。这可能涉及使用DAQ模块或其他数据采集设备来获取曲线数据,并在LabVIEW中进行处理和分析。 特…

吉时利KEITHLEY KI-488驱动和说明

吉时利KEITHLEY KI-488驱动和说明

D1.排序

1.快速排序 双指针 采用分治的思想,基于一个数作为标准,进行分治 步骤: 确定分界点的值。x q[l]、q[(lr)/2]、q[r]、随机 都可以;划分区间:使得小于等于x的数放在数组的左边;大于等于x的数放在数组的右边…

系统级别的原生弹窗窗口

<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>原生的弹出窗口dialog</title><style>…

C语言指针函数指针

跟着这篇文章重新理解了一下&#xff1a;彻底攻克C语言指针 有一个例子感觉可以拿出来看看&#xff1a; char *(*c[10])(int **p); * 这段声明定义了一个长度为10的数组c&#xff0c;数组中的每个元素都是指向函数的指针。每个函数接受一个类型为int **&#xff08;指向指向…

Gitlab Fork Workflow(协作工作流)

Gitlab Fork WorkFlow&#xff08;协作工作流&#xff09; Fork WorkFlow用于团队间的协作开发。在开发过程中&#xff0c;我们都需要将最新修改的代码合并到代码库上&#xff0c;在代码合并之前&#xff0c;为了保证代码符合上传要求&#xff08;符合需求、代码规范等&#xf…

2024/7/7周报

文章目录 摘要Abstract文献阅读题目问题本文贡献问题描述图神经网络Framework实验数据集实验结果 深度学习MAGNN模型相关代码GNN为什么要用GNN&#xff1f;GNN面临挑战 总结 摘要 本周阅读了一篇用于多变量时间序列预测的多尺度自适应图神经网络的文章&#xff0c;多变量时间序…

ASP.NET Core----基础学习03----开发者异常页面 MVC工作原理及实现

文章目录 1. 开发者异常页面(1)Startup.cs 页面的基础配置(2)自定义显示报错代码的前后XX行 2. MVC 的原理3. MVC 的实现4.默认路由路径5.返回Json字符串 1. 开发者异常页面 (1)Startup.cs 页面的基础配置 namespace ASP.Net_Blank {public class Startup{private readonly IC…

Linux muduo 网络库

主要记录示意图和知识点框架&#xff1a; 1、阻塞、非阻塞、同步、异步 在处理IO的时候&#xff0c;阻塞和非阻塞都是同步IO&#xff0c;只有使用了特殊的API才是异步IO。 2、五种IO模型&#xff1a; 阻塞、非阻塞、IO复用、信号驱动、异步IO 3、muduo网络库 muduo网络库给用…

【python】python当当数据分析可视化聚类支持向量机预测(源码+数据集+论文)【独一无二】

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

windows 服务器安装svn服务端、迁移svn

svn服务器版本 因为要把旧svn迁移到新的svn&#xff0c;为了保证迁移后的稳定性&#xff0c;安装包使用的旧服务器的svn服务器版本 VisualSVN-Server-3.6.1-x64.msi 安装 配置仓库路径等 其他没截图的就默认配置下一步即可。安装完成先不要启动 迁移 旧的svn服务器直接把…

Windows远程桌面实现之十五:投射浏览器摄像头到xdisp_virt以及再次模拟摄像头(一)

by fanxiushu 2024-07-01 转载或引用请注明原始作者。 本文还是围绕xdisp_virt这个软件展开&#xff0c; 再次模拟成摄像头这个比较好理解&#xff0c;早在很久前&#xff0c;其实xdisp_virt项目中就有摄像头功能&#xff0c; 只是当时是分开的&#xff0c;使用起来…

【SpringBoot】IDEA查看spring bean的依赖关系

前因&#xff1a;在研究springcloud config组件时&#xff0c;我发现config-server包下的EnvironmentController不在扫描的包路径下却可以响应客户端的请求&#xff0c;这吸引了我的注意&#xff0c;我的问题是&#xff1a;EnvironmentController是怎么被添加进bean工厂的。本章…

Golang | Leetcode Golang题解之第218题天际线问题

题目&#xff1a; 题解&#xff1a; type pair struct{ right, height int } type hp []pairfunc (h hp) Len() int { return len(h) } func (h hp) Less(i, j int) bool { return h[i].height > h[j].height } func (h hp) Swap(i, j int) { h[i], h[j]…

26_嵌入式系统网络接口

以太网接口基本原理 IEEE802标准 局域网标准协议工作在物理层和数据链路层&#xff0c;其将数据链路层又划分为两层&#xff0c;从下到上分别为介质访问控制子层(不同的MAC子层&#xff0c;与具体接入的传输介质相关),逻辑链路控制子层(统一的LLC子层&#xff0c;为上层提供统…

CosyVoice多语言、音色和情感控制模型,one-shot零样本语音克隆模型本地部署(Win/Mac),通义实验室开源

近日&#xff0c;阿里通义实验室开源了CosyVoice语音模型&#xff0c;它支持自然语音生成&#xff0c;支持多语言、音色和情感控制&#xff0c;在多语言语音生成、零样本语音生成、跨语言声音合成和指令执行能力方面表现卓越。 CosyVoice采用了总共超15万小时的数据训练&#…