Hierarchical Text-ConditionalImage Generation with CLIP Latents(论文阅读小结)

摘要

这篇论文主要做的一件是就是利用扩散模型,实现text2image的过程。整个网络包含一个clip的文本编码器和图像编码器,还有一个prior和decoder。clip的文本编码器就是将输入的文字编码成一个embedding,clip图像编码器就是将图像编码成一个embedding,prior的作用就是将文本和图像的embeding以及一些其他的条件融合起来,使其可以表示既表示了文本信息,也表示了图像信息,再将其输入decode(使用扩散模型作为decode),最终得到生成的图像。

decode

1. 解码器采用了扩散模型(diffusion model)的框架,可以生成受CLIP图像embedding和文本的条件制约的图像。

具体做法

 (1) 将CLIP图像embedding投影后添加到原有的时间步嵌入中。

(这里的投影就是做了一个矩阵乘法,然后将其直接加到扩散模型的每个时间步embedding中)

 (2) 将CLIP图像编码器的输出embedding投影为4个额外的上下文token,连接到GLIDE文本编码器的输出序列中。(连接是直接concat)

4. 在训练中,随机将CLIP嵌入置零或替换为学习到的嵌入,以实现无分类器的指导。

(论文中将随机将CLIP图像嵌入置零或替换来实现“无分类器的指导”,这是相对于原始的分类器指导(classifier guidance)而言的。

分类器指导需要额外训练一个分类器来评价生成样本的质量,并用分类器的梯度来优化生成模型。这需要额外的数据集和计算资源。

而无分类器指导不需要训练分类器,是通过比较模型对有/无条件的预测,来推导指导模型的梯度。

具体来说,无分类器指导中:

1. 模型在有CLIP条件时,可以预测出无噪声的图像。

2. 在随机移除CLIP条件时,模型无法有效预测,产生困惑。

3. 通过比较这两种情况下模型的预测目标,可以得到指导模型提高有条件下预测的梯度。

4. 沿着这个梯度优化模型,就能在有CLIP条件时,预测出更好的图像。)

5. 训练了两个上采样的扩散模型,将图像从64x64分辨率上采样到256x256和1024x1024。

6. 在训练中损坏条件图像以提高上采样模型的鲁棒性。

7. 根据Rombach等人的工作,在训练时使用目标大小的1/4裁剪,提高稳定性。

8. 在上采样模型中只使用空间卷积,不使用注意力层,但可以推广到更高分辨率。

(空间卷积(spatial convolution)与普通卷积(regular convolution)主要有以下几点区别:

1. 输入形状不同

- 普通卷积的输入通常是CHW格式,即(通道,高,宽)。

- 空间卷积输入通常是HWC格式,即(高,宽,通道)。

2. 参数共享方式不同

- 普通卷积的卷积核在空间维度(H,W)上共享参数。

- 空间卷积的卷积核在通道维度C上共享参数。

3. 计算流程不同

- 普通卷积按CHW计算,优化了内存访问流程。

- 空间卷积按HWC计算,更适合GPU并行计算。

4. 使用场景不同

- 普通卷积更常用于提取空间特征。

- 空间卷积更适合像素级任务,如超分辨率、颜色增强等)

9. 上采样模型不需要文本条件,采用无指导的ADMNet。

Prior

(这里我只说明扩散模型作为先验模型的技术设计)

1. 使用只包含解码器的Transformer结构,并添加了因果注意力mask。(这里我感觉有点懵,我之前看vision transformer的时候没注意到有解码器这个架构)

2. 输入序列包含:编码文本、CLIP文本嵌入、时间步嵌入、噪声化图像imbedding以及预测嵌入。

(编码文本就是对文本进行某种编码如独热编码,噪声化图像imbedding添加噪声的方式与diffusion类似)

3. 在采样时生成两个样本,选择文本-图像相似度更高的那个。

4. 预测目标是非噪声化的图像embedding,而不是扩散模型中的ε预测。

(即直接预测去噪后的embedding,而不是预测噪声)

5. 使用均方误差作为损失函数。

6. 这种设计避免了额外的近似,更直接高效地进行了图像嵌入的预测。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值