从\(\mathbf{X}_{T}\to\mathbf{X}_{o}\)是扩散模型的逆过程,这是在生成数据的时候是从一个随机的高斯分布采样一个信号,逐步通过去噪声恢复目标信号,\(q(\mathbf{x}_{t-1}|\mathbf{x}_{t})\)这个过程的解析式是未知的。前向过程是从\(\mathbf{X}_{0}\rightarrow\mathbf{X}_{T}\),对一个真实信号逐步加噪声,通过选取合适的噪声尺度,理论上在一定步数以后真实信号也会变成高斯信号,可以把这个过程表示为\(q(\mathbf{x}_{t}|\mathbf{x}_{t-1})\)。
横轴是隐变量每个维度压缩的bit率,纵坐标是模型的损失。模型在学习的过程中,随着压缩率变大,刚开始模型的损失下降很快,后面下降很慢,但仍然在优化。模型首先学习到的是semantic部分的压缩/转换(大框架),这一阶段是人物semantic部分转变,然后学习到的是细节部分的压缩/转换,这是perceptual细节处的转变。
ConditioningMechanisms,这里的条件可以是文字、图像等。将不同模态不同大小的条件转换为一个中间表达空间。通过这种方法可以实现prompt指导图象生成。
ConsistencyModels假设存在一个函数\(f\),对于上述过程中的每个点,\(f\)都能输出一个相同的值,即$$\begin{aligned}\boldsymbol{f}(\mathbf{x}t,t)=\boldsymbol{f}(\mathbf{x},t')\text{forall}t,t'\in[\epsilon,T]\end{aligned}$$对于轨迹起点\(x_0=\epsilon\),有\(\boldsymbol{f}(\mathbf{x}_{\boldsymbol{\epsilon}},\epsilon)=\mathbf{x}_{\boldsymbol{\epsilon}}\).那么对于轨迹中任意一点,我们代入先验分布,即可得到\(f(x_{T},T)=x_{\epsilon}\)。这样也就完成了一步采样。
文字生成图片一个重要的前提条件是建立文字和图片的联系。CLIP首先通过对比学习的方式实现了文字图片联系。FLIP和A-CLIP对CLIP进行了改进。DALLE,GLIDE,DALLE2是OPENAI发布的文生图模型,GLIDE实现了无分类器引导的图片生成,DALLE2引入CLIP进行图片生成。Imagen主要使用文字内容进行训练,图片则先生成小图再超分放大。
做法是在原模型旁边增加一个旁路,通过低秩分解(先降维再升维)来模拟参数的更新量。训练时,原模型固定,只训练降维矩阵A和升维矩阵B,推理时,可将BA加到原参数上,不引入额外的推理延迟。此外这还是一个可拔插的模块,可以根据需要选择不同的rank
在训练过程中,作者随机的将50%的prompt换成了空的prompt,作者认为这可以增强模型从文本内容识别语义信息的能力。这主要是因为当stablediffusion模型看不到提示时,decoder倾向于从输入控制图中学习更多的语义作为提示的替代品。
ControlNet还给出了在个人电脑和大型计算集群上进行训练的方式。当计算设备有限时,作者发现部分打破ControlNet与stablediffusion之间的联系可以加速收敛。默认情况下是将ControlNet连接到“SDMiddleBlock”和“SDDecoderBlock1,2,3,4”(stablediffuion的模块)。作者发现,只连接MiddleBlock而不连接DecoderBlock1,2,3,4可以将训练速度提高1.6倍(在RTX3070TI笔记本电脑GPU上测试)。当模型在结果和条件之间表现出合理的关联时,这些断开连接的链接可以在持续训练中再次连接,以促进精确控制。
openai在论文还比较了在不同的数据集上不同的编码器的效果
CascadeEF-GAN中的生成模型由一个ExpressionTransformer和一个Refiner组成。ExpressionTransformer执行带有局部焦点的表情编辑,Refiner融合表情转换器的输出并细化最终编辑。
ExpressionTransformer通过在全局和局部分支中处理面部图像来解决这个问题,其中全局分支捕获全局面部结构,局部分支专注于更详细的面部特征。Transformer将面部图像和目标表情标签作为输入。所有分支共享相似的网络架构,但不共享权重
每个分支输出颜色特征图M*C和注意图M_A。对于原始输入图像I_in,每个分支的初始输出通过以下方式生成
Refiner负责融合表情转换器不同分支的输出,生成最终的表情编辑。如图2所示,三个局部分支的输出首先根据它们在面部图像中的各自位置缝合成单个图像。缝合的图像然后与全局分支的输出连接,并馈送到细化器以生成最终的表情编辑。
但这种方法也有一些局限,例如需要用户给一个合理的prompt,细节的生成不太好,不能对图中的物体进行移位操作。
多模态学习是指从多个模态表达或感知事物。多模态可归类为同质性的模态,例如从两台相机中分别拍摄的图片,异质性的模态,例如图片与文本语言的关系。JeffDean在2019年年底NeurIPS大会上的一个采访报道,讲到了2020年机器学习趋势:多任务和多模态学习将成为突破口。
AudioCLIP在原本的CLIP架构中加入了声音的模态。
Inflate是模型的核心操作,含义是将一个2d模型"膨胀"成3d模型,做法很简单,就是把一个\(N*N\)的层变成\(N*N*N\),同时也将参数复制了\(N\)遍。
ImageBind的目标是通过使用图像将所有模态绑定在一起,学习所有模态的单一联合嵌入空间。通过使用Web数据将每个模态的嵌入与图像嵌入对齐,例如使用带有IMU的自我中心相机捕获的视频数据将文本对齐到图像,将IMU对齐到视频,最后可以获得zero-shot的能力。然而,一个模态的不能直接应用于其他两个模态的组合,例如视频不能直接在图片-IMU上使用。
尽管ImageBind只是用了六种模态进行训练,但是未来可以使用更多的数据和模态进行训练,将实现更丰富的以人为中心的AI模型。
prompt提示可以给文字生成图片提供语义信息。
作者团队从直接与摄影师一起工作的提供商那里获得了一组新的高分辨率的11M图像。即使在下采样之后,这些图像的分辨率也明显高于许多现有的视觉数据集。
Dataengine分为三个阶段:(1)模型辅助手动注释阶段,(2)混合自动预测掩码和模型辅助注释的半自动阶段,以及(3)全自动阶段,
在第一阶段,类似于经典的交互式分割,一组专业注释者通过使用由SAM驱动的基于浏览器的交互分割工具点击前景/背景对象点来标记掩码。可以使用像素精确的“刷”和“擦除”工具来细化掩码。模型辅助注释直接在浏览器内实时运行(使用预先计算的图像嵌入),从而实现真正的交互体验。标注不受语义约束,可以自由地标注"stuff"and"things"
注释者被要求按突出顺序标记对象,一旦掩码需要超过30秒进行注释,便鼓励继续下一个图像。
这个阶段的主要目的是解决歧义
这个过程作者使用\(32*32\)网格的点对图像进行预测,并为每个点预测一组可能对应于有效对象的掩码。如果说一个点位于一个部件或子部件上,我们的模型将返回子部分,部分和整个对象(subpart,part,andwholeobject)。利用模型中的IoU预测模块来选择confidentmask,IOU阈值是0.7,那么这个掩码就被认为是是稳定的。为了进一步提高小mask的质量,还处理了多个重叠的放大mask。