当前位置: 首页 > news >正文

苏剑林“闭门造车”之多模态思路浅谈思考

原文来自科学空间苏剑林 “闭门造车”之多模态思路浅谈(一):无损输入和“闭门造车”之多模态思路浅谈(二):自回归,学习后总结。

文章目录

    • “闭门造车”之多模态思路浅谈(一):无损输入
      • 文本和图像生成的区别
      • 图像离散化,套文本生成框架
      • 压缩序列造成信息损失
      • 将图像视为连续型向量无损压缩
      • Patch输入后的操作
    • “闭门造车”之多模态思路浅谈(二):自回归

“闭门造车”之多模态思路浅谈(一):无损输入

文本和图像生成的区别

文本生成的研究方向是设计语言模型,建模条件概率 p ( x t ∣ x 1 , . . . , x t − 1 ) p(x_{t}|x_{1},...,x_{t-1}) p(xtx1,...,xt1)。不同的语言模型都是为了与该条件概率近似。对于离散的句子 ( x 1 , x 2 , . . . , x l ) (x_{1}, x_{2},..., x_{l}) (x1,x2,...,xl)每个 x t x_{t} xt都来自有限词表,条件概率本质是分类,在神经网络拟合之下,任何分类任务都能精确建模。

词表(Vocabulary):有限的集合,包含了所有可能的token,词表将文本中token映射到唯一的索引
码本(codebook):有限的集合,包含了所有可能的向量,码本将连续的潜在表示映射到离散的向量索引

图像生成并无清晰的研究方向,不同的模型建模理论也并不相同。造成图像生成手段多样化的根本原因,是对连续变量进行概率建模的困难性。若以文本的思路对图像进行建模,图像可看作连续型向量 ( x 1 , x 2 , . . . , x l ) (x_{1}, x_{2},..., x_{l}) (x1,x2,...,xl),概率密度必要条件是非负且 ∫ p ( x t ∣ x 1 , . . . , x t − 1 ) d x t = 1 \int p(x_{t}|x_{1},...,x_{t-1})dx_{t}=1 p(xtx1,...,xt1)dxt=1。神经网络可以拟合函数,但不能拟合概率密度。

图像离散化,套文本生成框架

图像在像素空间上可以看作离散的, n × n n\times n n×n的图像可以看作长度 3 n 2 3n^{2} 3n2,vocab_size是256的句子,套用文本生成框架能work,比如PixelRNN、PixelCNN和Sparse Transformer。

在像素空间操作序列长生成慢,考虑“先压缩,后生成”。利用AutoEncoder压缩序列长度,同时要保证离散性就不能用VAE而要用VQ-VAE、VQ-GAN等。VQ-VAE/GAN就相当于“图像Tokenizer”的角色,压缩后可通过Decode恢复原始图片,比如LWM和AnyGPT。

VAE压缩序列:潜在空间是连续的,使用正态分布的推断来生成潜在变量。
VQ-VAE压缩序列:潜在空间是离散的,使用向量量化来替代VAE中的连续潜在表示,避免了VAE中可能存在的潜在空间重参数化问题。文本tokenizer将连续文本转换为离散的符号序列,图像tokenizer将连续的像素空间映射到离散的符号空间。

图像生成中的VQ和tokenizer

压缩序列造成信息损失

对于 64 × 64 64\times 64 64×64的ImageNet图像,平均总信息熵 64 × 64 × 3 × 3 64\times64\times3\times3 64×64×3×3bit,对于vocab_size为V的词表,想要将编码长度压缩为L,实现无损压缩至少满足 L × l o g 2 V ≥ 64 × 64 × 3 × 3 L \times log_{2}V \ge 64\times64\times3\times3 L×log2V64×64×3×3,在实际应用中,若压缩到 16 × 16 16\times16 16×16那么V至少是 1 0 43 10^{43} 1043量级,必然会产生信息损失。

无损压缩需要精益探索

将图像视为连续型向量无损压缩

离散型和连续型生成有所不同,离散型自回归生成的熵源是seq_len和vocab_size,而vocab_size的贡献是对数增长的(贡献小)所以主要靠seq_len,但是seq_len等价于成本(序列越长熵越大,计算步骤和推理时间更多),所以离散型的熵源是昂贵的;基于变换的连续型生成的熵源是高斯噪声,原则上可以无穷无尽,是廉价且可并行的。因此,扩散模型导出可逆ODE方程将标准高斯分布映射为目标分布可获取等多熵源。

高斯噪声从正态分布中采样的随机数,连续分布有无穷多的取值

任何编码手段都可能会造成失真,因此将原始图像切成patch输入是较为稳妥的方法(输入原图才能保证信息的完整)。要让模型具备图像生成能力,还需考虑到语义一致下细节差异,通过加噪和去噪调节。

多模态生成的做法。值得注意的是

多模态生成。文本生成token by token,图像生成并行。比如,Transfusion、Show-o

Patch输入后的操作

直接用原始patch作为输入
保留更多信息。避免特征间的孤立。

用预训练的编码器特征作为输入
在LDM的自编码器降维后的特征空间进行扩散

“闭门造车”之多模态思路浅谈(二):自回归

根据(一)可知离散化有严重的信息损失,输入连续性特征是更有前景的方案,但是连续性输入会增加图像生成的难度。只有离散化才能套用文本的自回归框架。

目标:1. 寻找更好的离散化方式(信息损失少) 2. 设计适合图像连续型输入的自回归框架

图像生成中的“无损”是什么要求

不同的Patchify可能会有不同程度的信息损失,其中VQ的信息损失往往是最严重且最明确的。如果图像在输入模型之前就有明显信息损失,那么必然会限制模型的图像理解能力。所以,为了更好地适应各种图像理解任务,多模态模型理想的图像输入方式应该就是尽可能无损的连续型特征,由模型自己在计算过程中根据上下文决定要损失什么。
自适应、动态地选择

图像自回归生成(AutoRegressive)

DDPM本质是自回归模型,将单个图像设定为 x T , x T − 1 , . . . , x 1 , x 0 x_{T},x_{T-1},...,x_{1},x_{0} xT,xT1,...,x1,x0,建模 p ( x t − 1 ∣ x t ) p(x_{t-1}|x_{t}) p(xt1xt),这一过程本质上也是Teacher Forcing,所以也有Exposure Bias问题。
可能解决Exposure Bias的方法:Scheduled Sampling、Curriculum Learning、Reinforcement Learning和Beam Search

为什么Teacher Forcing存在Exposure Bias问题?
Teacher Forcing模式在训练过程中输入是真实的前 t−1个元素(来自训练数据)预测第t个数据,与真实值计算损失。但在推理时,需要根据生成的内容逐步预测下一个元素。导致训练和推理的输入分布不一致,推理时受生成的低质量内容干扰,导致错误累积生成效果变差,这就是Exposure Bias。

因此,对于图像来说,问题并不是该不该做自回归,而是以何种方式来更好地去做自回归。它的作用不仅是为多模态模型赋予图像生成能力,而且还是一个重要的无监督学习途径。

加入噪声让 p ( x t ∣ x < t ) p(x_{t}|x_{<t}) p(xtx<t)接近高斯分布

扩散模型的核心思想正是“通过渐进式加噪让平方误差成为合理的损失函数”,对整张图片加噪,当然,也有对patch加噪的。
在这里插入图片描述

加噪后的效率问题和解决思路

学习效率这种t−1时刻的加噪图预测t时刻的加噪图的训练目标,需要对噪声进行双重采样,这会导致更大的训练方差,需要更多的训练步数才能把这个方差降下来,经过一系列降方差技巧后,更高效的方式是直接预测原图。

计算效率假如每个Patch通过加噪变成T个Patch,那么序列长度就变为原来的T倍,这样一来训练成本和推理成本都会显著增加。

1、扩散模型的理论和实践告诉我们,要预测xt的话只用xt−1就够了,可以忽略更早的输入,这意味同一个Patch的不同加噪结果之间不需要相互Attend;2、出于减少冗余的考虑,对于不同Patch之间的预测以及后面文本Token的预测,我们只需要Attend到没加噪的Patch。
在这里插入图片描述

如果允许两个不同的模型串联(但仍然可以端到端训练),那么我们还可以把扩散模型单独分离出来,Transformer只负责处理没有噪声的Patch,Transformer的输出则作为扩散模型的条件,如下图所示:

在这里插入图片描述

分patch排序方便自回归学习

大部份Patchify方法的输出特征依然保留了这个二维性质,而自回归生成则是单向的,所以需要指定一个生成顺序。常见的顺序比如 1)从左往右再从上往下 2)从中心到四周螺旋 3)从左上角出发走“Z”字 等等。“分Patch排序”是将图像解构为一个可供自回归学习的一维序列的过程,更通俗点就是将图像从二维序列转成一维序列。

相关文章:

  • PageHelper分页插件
  • C语言题目:链表数据求和操作
  • 【系列教程】Python第三课:用前两课知识解决实际问题
  • “mysqld --initialize --console ”执行不成功情况总结和解决措施
  • vue3-04vue3中ref函数( 定义一个响应式的数据)
  • 设计模式14:职责链模式
  • 普通报表入门
  • 使用html css js 开发一个 教育机构前端静态网站模板
  • Show 『Picture Add + Crosee Line ROI
  • 【ISO 14229-1:2023 UDS诊断(ECU复位0x11服务)测试用例CAPL代码全解析④】
  • 《StyleID:一种无训练的方法将大规模扩散模型适配于风格迁移》
  • Mistral Saba:为中东和南亚量身打造的AI模型
  • npu 瑞芯微rk系列,rknn模型转换以及npu使用
  • ES8字符串填充用法总结:padStart(),padEnd(),rest剩余参数的用法{name,...obj},扩展运算符的用法,正则表达式命名捕获组
  • 聚焦地灾防治,助力城市地质安全风险防控
  • 基于STM32的智能交通信号控制系统
  • Windows环境打印文档的同时自动生成PDF副本的方法
  • SpringBoot中自动装配机制的原理
  • Pytorch实现论文之一种基于扰动卷积层和梯度归一化的生成对抗网络
  • 2024年GESP09月认证Scratch一级试卷
  • 中国乒协坚决抵制恶意造谣,刘国梁21日将前往多哈参加国际乒联会议
  • 陈吉宁龚正黄莉新胡文容等在警示教育基地参观学习,出席深入贯彻中央八项规定精神学习教育交流会
  • 乌拉圭前总统何塞·穆希卡去世
  • 刘国中:持续加强护士队伍建设,更好保障人民身体健康
  • 《淮水竹亭》:一手好牌,为何打成这样
  • 重庆一高校75万采购市价299元产品?工作人员:正在处理