从论文中看AI绘画

个人博客:Sekyoro的博客小屋
个人网站:Proanimer的个人网站
主要看是看Diffusion Models,CLIP,ControlNet,IP-Adapter这种经典论文,尝试总结论文写作的一些方式以及图像生成模型的一些内在思想. 对于其中的数学原理和代码不过深究.

DDPM

使用扩散模型得到高质量图像,证明了这种方法在训练时与多种噪声等级下的去噪分数等同,在采样时与退火朗文动力学等价.

image-20240503150540112

有forward precess和reversed process,

image-20240503152315412

对于正向过程,就是对图像的一个加噪过程, 逆向过程需要通过神经网络拟合,论文中没有考虑方差.

image-20240503164248521

image-20240503164900128

使用了重参数化,类似VAE中的思想.在加噪声时,通过使用高斯噪声和均值、方差.

image-20240503174343480

这样只要知道x_0以及超参数α和β就能得到后面加噪的数据.计算概率密度函数

image-20240503180338927

对于优化目标,需要让p和q的分布尽量接近,相当于让均值和方差类似.
∑ t = 2 T E q ( x t ∣ x 0 ) [ D K L ( q ( x t − 1 ∣ x t , x 0 ) ∣ ∣ p θ ( x t − 1 ∣ x t ) ] \sum_{t=2}^TE_{q(x_t|x_0)}[D_{KL}(q(x_{t-1}|x_t,x_0)||p_\theta(x_{t-1}|x_t)] t=2TEq(xtx0)[DKL(q(xt1xt,x0)∣∣pθ(xt1xt)]
而方差是定值,对于均值
μ q = α ˉ t − 1 β t x 0 + α t ( 1 − α ˉ t − 1 ) x t 1 − α ˉ t = α ˉ t − 1 β t x t − 1 − α ˉ t ϵ α ˉ t + α t ( 1 − α ˉ t − 1 ) x t 1 − α ˉ t = 1 α t ( x t − 1 − α t 1 − α ˉ t ϵ ) \begin{aligned} \mu_{q}& =\frac{\sqrt{\bar{\alpha}_{t-1}}\beta_{t}x_{0}+\sqrt{\alpha_{t}}(1-\bar{\alpha}_{t-1})x_{t}}{1-\bar{\alpha}_{t}} \\ &=\frac{\sqrt{\bar{\alpha}_{t-1}}\beta_{t}\frac{x_{t}-\sqrt{1-\bar{\alpha}_{t}}\epsilon}{\sqrt{\bar{\alpha}_{t}}}+\sqrt{\alpha_{t}}(1-\bar{\alpha}_{t-1})x_{t}}{1-\bar{\alpha}_{t}} \\ &=\frac{1}{\sqrt{\alpha_{t}}}(x_{t}-\frac{1-\alpha_{t}}{\sqrt{1-\bar{\alpha}_{t}}}\epsilon) \end{aligned} μq=1αˉtαˉt1 βtx0+αt (1αˉt1)xt=1αˉtαˉt1 βtαˉt xt1αˉt ϵ+αt (1αˉt1)xt=αt 1(xt1αˉt 1αtϵ)

模型使用了Unet和attention,残差连接预测噪声.得到噪声后可以得到 p θ ( x t − 1 ∣ x t ) p_\theta(x_{t-1}|x_t) pθ(xt1xt)
x t − 1 = 1 α t ( x t − 1 − α t 1 − α ˉ t ϵ θ ) + σ q z x_{t-1}=\frac{1}{\sqrt{\alpha_{t}}}(x_{t}-\frac{1-\alpha_{t}}{\sqrt{1-\bar{\alpha}_{t}}}\epsilon_{\theta})+\sigma_{q}z xt1=αt 1(xt1αˉt 1αtϵθ)+σqz

论文http://arxiv.org/abs/2006.11239 深入浅出扩散模型(Diffusion Model)系列:基石DDPM(人人都能看懂的数学原理篇) - 知乎 (zhihu.com)

Improved DDPM

对DDPM做了改进.

  • 学习方差会让生成效果更好(DDPM 中只学习了均值,方差是一个常数)
  • 提出了余弦加噪方法,比线性加噪效果更好

image-20240503192352123

DDIM 2020

为了加快采样速度,提出了去噪扩散隐含模型(DDIMs),这是一类更有效的迭代隐含概率模型,其训练过程与 DDPMs 相同。在 DDPMs 中,生成过程被定义为特定马尔可夫扩散过程的反向。

我们通过一类能实现相同训练目标的非马尔可夫扩散过程来推广 DDPM。这些非马尔可夫过程可以对应于确定性的生成过程,从而产生能更快地生成高质量样本的隐式模型。

image-20240503193245982

关于 DDIM 采样算法的推导 | Ze’s Blog (zeqiang-lai.github.io)

上面三个数学公式涉及比较多,比较偏学术,我的目的是想介绍一个脉络和抽象的概念和作用,使得使用一些开源AI绘画这类应用时更加得心应手,下面更多涉及到一些AI绘画功能层面上的东西.

img

Latent Diffusion Models 2022

Stable Diffusion产品的背后模型

将图像形成过程分解为一系列去噪自编码器的顺序应用,扩散模型(DMs)在图像数据及更广泛范围内实现了最先进的合成结果。此外,它们的表达允许一种引导机制来控制图像生成过程而无需重新训练。然而,由于这些模型通常直接在像素空间中操作,优化强大的DMs通常需要消耗数百个GPU天,论文提出的方法将它们在latent space中进行并使用预训练的autoencoder.并使用了cross-attention结构,现在看来也是非常经典了.

image-20240503210656442
A t t e n t i o n ( Q , K , V ) = s o f t m a x ( Q K T d ) ⋅ V Q = W Q ( i ) ⋅ φ i ( z t ) , K = W K ( i ) ⋅ τ θ ( y ) , V = W V ( i ) ⋅ τ θ ( y ) \mathrm{Attention}(Q,K,V)=\mathrm{softmax}\left(\frac{QK^{T}}{\sqrt{d}}\right)\cdot V\\ Q=W_Q^{(i)}\cdot\varphi_i(z_t),K=W_K^{(i)}\cdot\tau_\theta(y),V=W_V^{(i)}\cdot\tau_\theta(y) Attention(Q,K,V)=softmax(d QKT)VQ=WQ(i)φi(zt),K=WK(i)τθ(y),V=WV(i)τθ(y)

$$
L_{DM}=\mathbb{E}{x,\epsilon\sim\mathcal{N}(0,1),t}\Big[|\epsilon-\epsilon\theta(x_t,t)|_2^2\Big] \

L_{LDM}:=\mathbb{E}{\mathcal{E}(x),y,\epsilon\sim\mathcal{N}(0,1),t}\Big[|\epsilon-\epsilon\theta(z_t,t,\tau_\theta(y))|_2^2\Big]
$$

CLIP 2021

OpenAI用于DALLE的文字与图像匹配 利用不同的encoders将文字和图像联系了起来

计算机视觉系统经过训练可以预测一组固定的预定对象类别。这种受限的监督形式限制了其通用性和可用性,因为要指定任何其他视觉概念,都需要额外的标记数据。

image-20240503203723416

主要是解决利用文本信息监督图像,并实现zero-shot transfer.

image-20240503204548844

ControlNet 2023

开创性的有价值的工作,使用pose,edge maps,segmentation map作为监督信息控制图像布局. 技术上利用微调技术并利用额外的pose等信息引导图像生成.

Adding Conditional Control to Text-to-Image Diffusion Models

随着文字到图像扩散模型的出现,我们现在只需输入文字提示,就能创作出视觉效果极佳的图像。

然而,文本到图像模型对图像空间构成的控制能力有限;仅靠文本提示很难精确表达复杂的布局、姿势、形状和形态。要生成与我们的心理想象精确匹配的图像,往往需要反复编辑提示、检查生成的图像,然后重新编辑提示。

ControlNet利用了微调技术,冻结原始块,然后使用原本的权重处理额外信息c,c通过零卷积再加回去得到 y c y^{c} yc

image-20240503224707489

为了给这样一个预训练的神经块添加一个controlnet网络,锁定(冻结)原始块的参数Θ,同时将该块克隆到一个参数为Θc的可训练拷贝

image-20240503225434997

可训练副本以外部条件向量c作为输入。当这种结构应用于诸如稳定扩散( Stable Diffusion )这样的大型模型时,锁定的参数保留了用数十亿张图像训练的生产就绪模型,而可训练的副本则重用了这种大规模预训练的模型,以建立处理各种输入条件的深度、鲁棒和强大的骨干。
y c = F ( x ; Θ ) + Z ( F ( x + Z ( c ; Θ z 1 ) ; Θ c ) ; Θ z 2 ) y_{\mathfrak{c}}=\mathcal{F}(x;\Theta)+\mathcal{Z}(\mathcal{F}(x+\mathcal{Z}(c;\Theta_{\mathfrak{z}1});\Theta_{\mathfrak{c}});\Theta_{\mathfrak{z}2}) yc=F(x;Θ)+Z(F(x+Z(c;Θz1);Θc);Θz2)
训练目标
L = E z 0 , t , c t , c f , ϵ ∼ N ( 0 , 1 ) [ ∥ ϵ − ϵ θ ( z t , t , c t , c f ) ) ∥ 2 2 ] \mathcal{L}=\mathbb{E}_{\boldsymbol{z}_0,\boldsymbol{t},\boldsymbol{c}_t,\boldsymbol{c}_\mathrm{f},\epsilon\sim\mathcal{N}(0,1)}\left[\|\epsilon-\epsilon_\theta(\boldsymbol{z}_t,t,\boldsymbol{c}_t,\boldsymbol{c}_\mathrm{f}))\|_2^2\right] L=Ez0,t,ct,cf,ϵN(0,1)[ϵϵθ(zt,t,ct,cf))22]
在训练过程中,我们用空字符串随机替换50 %的文本提示ct。这种方法增加了controlnet网络在输入条件图像(例如,边缘,姿态,深度等。)中直接识别语义的能力,作为提示的替代。在训练过程中,由于零卷积不会给网络添加噪声,所以模型应该始终能够预测高质量的图像。我们观察到,模型并没有逐步学习控制条件,而是突然成功地跟随输入条件图像;通常在小于10K的优化步数。

在inference部分介绍了CFG以及组合多个controlnet.
ϵ p r d = ϵ u c + β c f g ( ϵ c − ϵ u c ) \epsilon_{\mathrm{prd}}=\epsilon_{\mathrm{uc}}+\beta_{\mathrm{cfg}}(\epsilon_{\mathrm{c}}-\epsilon_{\mathrm{uc}}) ϵprd=ϵuc+βcfg(ϵcϵuc)

T2I-Adapter 2023

T2I-Adapter: Learning Adapters to Dig out More Controllable Ability for Text-to-Image Diffusion Models

大规模文本到图像( T2I )模型令人难以置信的生成能力已经显示出强大的学习复杂结构和有意义语义的能力.

Motivation:然而,仅仅依靠文本提示并不能充分地利用模型学习到的知识,尤其是需要灵活准确地控制(例如,颜色和结构)时.

具体来说,提出学习简单轻量级的T2I - Adapters来将T2I模型中的内部知识与外部控制信号对齐,同时冻结原始的大型T2I模型

在本文中探讨是否有可能通过某种方式"挖掘出" T2I模型隐含学习到的能力,特别是高层结构和语义能力,然后明确地使用它们来更精确地控制生成。作者认为一个小型的适配器模型可以达到这个目的,因为它不是学习新的生成能力,而是学习T2I模型中从控制信息到内部知识的映射。也就是说,这里的主要问题是"对齐"问题,即内部知识和外部控制信号应该对齐。

image-20240504225616342
{ Q = W Q ϕ ( Z t ) ; K = W K τ ( y ) ; V = W V τ ( y ) A t t e n t i o n ( Q , K , V ) = s o f t m a x ( Q K T d ) ⋅ V \left.\left\{\begin{array}{l}\mathbf{Q}=\mathbf{W}_Q\phi(\mathbf{Z}_t);\mathbf{K}=\mathbf{W}_K\tau(\mathbf{y});\mathbf{V}=\mathbf{W}_V\tau(\mathbf{y})\\Attention(\mathbf{Q},\mathbf{K},\mathbf{V})=softmax(\frac{\mathbf{Q}\mathbf{K}^T}{\sqrt d})\cdot\mathbf{V}\end{array}\right.\right. {Q=WQϕ(Zt);K=WKτ(y);V=WVτ(y)Attention(Q,K,V)=softmax(d QKT)V

L = E Z t , C , ϵ , t ( ∣ ∣ ϵ − ϵ θ ( Z t , C ) ∣ ∣ 2 2 ) \mathcal{L}=\mathbb{E}_{\mathbf{Z}_t,\mathbf{C},\epsilon,t}(||\epsilon-\epsilon_\theta(\mathbf{Z}_t,\mathbf{C})||_2^2) L=EZt,C,ϵ,t(∣∣ϵϵθ(Zt,C)22)

C表示条件信息,θ表示UNet去噪器的函数。

在推理过程中,输入的隐映射 Z T Z^{T} ZT由随机高斯分布生成。给定 Z T Z^{T} ZT ϵ θ \epsilon_{\theta} ϵθ在每一步t预测一个噪声估计,条件为C。噪声特征图通过减去它变得越来越清晰.

image-20240504224247416

在每个尺度下,利用一个卷积层和两个残差块( RB )来提取条件特征Fck.最终形成多尺度条件特征Fc = { F c 1 ^{1}_{c} c1,F c 2 ^{2}_{c} c2,F c 3 ^{3}_{c} c3,F c 4 ^{4}_{c} c4 }。注意到Fc的维度与UNet去噪器编码器中的中间特征 F e n c F_{enc} Fenc= { F e n c 1 ^{1}_{enc} enc1,F e n c 2 ^{2}_{enc} enc2,F e n c 3 ^{3}_{enc} enc3,F e n c 4 ^{4}_{enc} enc4 }相同,然后在每个尺度下,F c _{c} c F e n c F_{enc} Fenc相加。
F c = F A D ( C ) F ^ e n c i = F e n c i + F c i , i ∈ { 1 , 2 , 3 , 4 } \begin{aligned}&\mathbf{F}_{c}=\mathcal{F}_{AD}(\mathbf{C})\\&\hat{\mathbf{F}}_{enc}^{i}=\mathbf{F}_{enc}^{i}+\mathbf{F}_{c}^{i},i\in\{1,2,3,4\}\end{aligned} Fc=FAD(C)F^enci=Fenci+Fci,i{1,2,3,4}
C为条件输入。F A D _{AD} AD是T2I的适配器

除了使用单个适配器作为条件外,提出的T2I适配器还支持多种条件。注意这个策略不需要额外的训练。
F c = ∑ k = 1 K ω k F A D k ( C k ) \mathbf{F}_c=\sum_{k=1}^K\omega_k\mathcal{F}_{AD}^k(\mathbf{C}_k) Fc=k=1KωkFADk(Ck)

IP-Adapter 2023

IP-Adapter:Text Compatible Image Prompt Adapter for Text-to-Image Diffusion Models

背景目的与结论:近年来,大型文本到图像扩散模型因其出色的生成能力创造出高保真度的图像而表现出强大的能力。然而,仅使用文本提示生成想要的图像是非常困难的,因为它往往涉及复杂的提示工程。文字提示的一种替代方式是图像提示,俗话说:“一张图像值一千个字”。虽然现有的从预训练模型直接微调的方法是有效的,但它们需要较大的计算资源,并且与其他基础模型、文本提示和结构控制不兼容

在本文中提出了IP - Adapter,一种有效的、轻量级的适配器,以实现预训练的文本到图像扩散模型的图像提示能力。我们的IP - Adapter的关键设计是解耦的交叉注意力机制,将文本特征和图像特征的交叉注意力层分离

得益于解耦的交叉注意力策略,图像提示也可以很好地与文本提示协同工作,实现多模态图像生成。

也是使用图像作为提示信息的工作

image-20240504191157767

以往的工作通过替换text-encoder为image-encoder,本作强调在不修改原始模型的情况下实现图像提示功能.

image-20240504204508024

文章认为,上述方法的主要问题在于文本到图像扩散模型的交叉注意力模块.对预训练扩散模型中的交叉注意力层的key和value投影权重进行训练,使其适应文本特征.

因此,将图像特征和文本特征融合到交叉注意力层只完成了图像特征到文本特征的对齐,但这可能会遗漏一些图像特有的信息,最终导致仅与参考图像进行粗粒度可控生成(例如,图像风格)。

L s i m p l e = E x 0 , ϵ ∼ N ( 0 , I ) , c , t ∥ ϵ − ϵ θ ( x t , c , t ) ∥ 2 L_{\mathrm{simple}}=\mathbb{E}_{\boldsymbol{x}_0,\boldsymbol{\epsilon}\sim\mathcal{N}(\mathbf{0},\mathbf{I}),\boldsymbol{c},t}\|\epsilon-\epsilon_\theta(\boldsymbol{x}_t,\boldsymbol{c},t)\|^2 Lsimple=Ex0,ϵN(0,I),c,tϵϵθ(xt,c,t)2
在CFG下
ϵ ^ θ ( x t , c , t ) = w ϵ θ ( x t , c , t ) + ( 1 − w ) ϵ θ ( x t , t ) \hat{\epsilon}_\theta(x_t,c,t)=w\epsilon_\theta(x_t,c,t)+(1-w)\epsilon_\theta(x_t,t) ϵ^θ(xt,c,t)=wϵθ(xt,c,t)+(1w)ϵθ(xt,t)
目前的适配器很难匹配微调的图像提示模型或从零开始训练的模型的性能。主要原因是图像特征不能有效地嵌入到预训练模型中。大多数方法只是简单地将串联的特征输入到冻结的交叉注意力层中,阻止了扩散模型从图像提示中捕获细粒度的特征。为了解决这个问题,提出了一种解耦的交叉注意力策略,通过新增加的交叉注意力层来嵌入图像特征

插入图像特征的一种直接方法是将图像特征和文本特征进行拼接,然后将其输入到交叉注意力层中.然而,我们发现这种方法的有效性不足.相反提出了一种解耦的交叉注意力机制,其中文本特征和图像特征的交叉注意力层是分开的。
Z ′ ′ = Attention ( Q , K ′ , V ′ ) = Softmax ( Q ( K ′ ) ⊤ d ) V ′ \mathbf{Z}''=\text{Attention}(\mathbf{Q},\mathbf{K}',\mathbf{V}')=\text{Softmax}(\frac{\mathbf{Q}(\mathbf{K}')^\top}{\sqrt{d}})\mathbf{V}' Z′′=Attention(Q,K,V)=Softmax(d Q(K))V

Z n e w = S o f t m a x ( Q K ⊤ d ) V + S o f t m a x ( Q ( K ′ ) ⊤ d ) V ′ w h e r e   Q = Z W q , K = c t W k , V = c t W v , K ′ = c i W k ′ , V ′ = c i W v ′ \mathbf{Z}^{new}=\mathrm{Softmax}(\frac{\mathbf{Q}\mathbf{K}^{\top}}{\sqrt{d}})\mathbf{V}+\mathrm{Softmax}(\frac{\mathbf{Q}(\mathbf{K}^{\prime})^{\top}}{\sqrt{d}})\mathbf{V}^{\prime}\\\mathrm{where~}\mathbf{Q}=\mathbf{Z}\mathbf{W}_q,\mathbf{K}=c_t\mathbf{W}_k,\mathbf{V}=c_t\mathbf{W}_v,\mathbf{K}^{\prime}=c_i\mathbf{W}_k^{\prime},\mathbf{V}^{\prime}=c_i\mathbf{W}_v^{\prime} Znew=Softmax(d QK)V+Softmax(d Q(K))Vwhere Q=ZWq,K=ctWk,V=ctWv,K=ciWk,V=ciWv

由于冻结了原始的UNet模型,在上述解耦的交叉注意力中,只有W′k和W′v是可训练的.
L s i m p l e = E x 0 , ϵ , c t , c i , t ∥ ϵ − ϵ θ ( x t , c t , c i , t ) ∥ 2 ϵ ^ θ ( x t , c t , c i , t ) = w ϵ θ ( x t , c t , c i , t ) + ( 1 − w ) ϵ θ ( x t , t ) L_{\mathrm{simple}}=\mathbb{E}_{\boldsymbol{x}_0,\boldsymbol{\epsilon},\boldsymbol{c}_t,\boldsymbol{c}_i,t}\|\epsilon-\epsilon_\theta(x_t,c_t,c_i,t)\|^2 \\ \hat{\epsilon}_\theta(x_t,c_t,c_i,t)=w\epsilon_\theta(x_t,c_t,c_i,t)+(1-w)\epsilon_\theta(x_t,t) Lsimple=Ex0,ϵ,ct,ci,tϵϵθ(xt,ct,ci,t)2ϵ^θ(xt,ct,ci,t)=wϵθ(xt,ct,ci,t)+(1w)ϵθ(xt,t)
我们还在训练阶段随机丢弃图像条件,以便在推理阶段实现无分类器指导.

由于文本交叉注意力和图像交叉注意力是分离的,我们还可以在推断阶段调整图像条件的权重
Z n e w = Attention ( Q , K , V ) + λ ⋅ Attention ( Q , K ′ , V ′ ) \mathbf{Z}^{new}=\text{Attention}(\mathbf{Q},\mathbf{K},\mathbf{V})+\lambda\cdot\text{Attention}(\mathbf{Q},\mathbf{K}',\mathbf{V}') Znew=Attention(Q,K,V)+λAttention(Q,K,V)
为了训练IP - Adapter,从两个开源数据集LAION - 2B和COYO - 700M中构建了一个包含约1000万个文本-图像对的多模态数据集

InstantID 2024

image-20240504230014174

利用Textual Inversion、DreamBooth、LoRA等方法进行个性化图像合成已经取得了显著的进展。然而,它们的实际应用受到高存储需求、长时间微调过程以及需要多个参考图像的限制。相反,现有的基于ID嵌入的方法,虽然只需要单一的前向推断,但面临挑战:它们要么需要在众多模型参数之间进行广泛的微调,缺乏与社区预训练模型的兼容性,要么不能保持高的人脸保真度

我InstantID,这是一个的基于扩散模型的解决方案,即插即用模块只使用一张人脸图像就能很好地处理各种风格的图像个性化,同时保证了高保真度。

为了实现这一点,设计了一个新颖的IdentityNet,通过强语义和弱空间条件,将面部和地标图像与文本提示相结合,以引导图像生成.

生成精确保留人类主体错综复杂的身份细节的定制图像

它包含三个关键部分:( 1 )能够捕获鲁棒语义人脸信息的ID嵌入;( 2 )一个轻量级的自适应模块,具有解耦的交叉注意力,便于使用图像作为视觉提示;( 3 )提出了一种基于额外空间控制的编码参考人脸图像细节特征的IdentityNet。

首先采用人脸编码器代替CLIP提取语义人脸特征,并使用可训练的投影层将其投影到文本特征空间.

然后,引入解耦交叉注意力的轻量级自适应模块,以支持图像作为提示。

在IdentityNet中,生成过程完全由人脸嵌入引导,无需任何文本信息.只更新新增加的模块,而预训练的文本到图像模型保持冻结,以确保灵活性.

在训练过程中,只对Image Adapter和Identity Net的参数进行优化,而对预训练的扩散模型的参数保持冻结。我们在具有人类主题的图像-文本对上训练整个InstantID流水线,采用了类似于原始稳定扩散工作中使用的训练目标
L = E z t , t , C , C i , ϵ ∼ N ( 0 , 1 ) [ ∥ ϵ − ϵ θ ( z t , t , C , C i ) ∥ 2 2 ] \mathcal{L}=\mathbb{E}_{z_t,t,C,C_i,\epsilon\sim\mathcal{N}(0,1)}[\|\epsilon-\epsilon_\theta(z_t,t,C,C_i)\|_2^2] L=Ezt,t,C,Ci,ϵN(0,1)[ϵϵθ(zt,t,C,Ci)22]

C i C_{i} Ci为IdentityNet上的任务特定图像条件。值得注意的是,在训练过程中,我们不会随意丢弃文本或图片条件,因为我们已经去掉了IdentityNet中的文本提示条件。

上面四篇工作都是类似的,利用额外控制信息和改进一些模型进行微调使得捕获输入的图像.下面几篇工作是OPenAI与Google的文生图模型,已经作为产品级模型.

GLIDE 2021

GLIDE能够根据自然语言描述生成图像,这意味着用户可以用文本提示来生成相应的视觉内容。

论文比较了两种引导扩散模型的技术——CLIP引导和无分类器引导(classifier-free guidance)。研究发现,无分类器引导在照片真实感和标题相似性方面更受人类评估者的青睐。GLIDE不仅能够进行零样本(zero-shot)图像生成,还能通过图像修复(inpainting)进行细粒度的图像编辑,使得用户可以迭代改进模型样本以匹配更复杂的文本提示。

Ho & Salimans 提出了无分类器引导,一种用于引导扩散模型的技术,它不需要单独的分类器模型来进行训练。对于无分类器指导,在训练过程中,类条件扩散模型θ ( xt | y )中的标签y被一个固定概率的零标签∑所代替。为了用通用文本提示实现无分类器的指导,我们有时在训练过程中用空序列(其中,我们也称之为:)替换文本。
ϵ ^ θ ( x t ∣ c ) = ϵ θ ( x t ∣ ∅ ) + s ⋅ ( ϵ θ ( x t ∣ c ) − ϵ θ ( x t ∣ ∅ ) ) \hat{\epsilon}_\theta(x_t|c)=\epsilon_\theta(x_t|\emptyset)+s\cdot(\epsilon_\theta(x_t|c)-\epsilon_\theta(x_t|\emptyset)) ϵ^θ(xtc)=ϵθ(xt∣∅)+s(ϵθ(xtc)ϵθ(xt∣∅))

DALLE2 2022

image-20240504230111721

像CLIP这样的对比模型已经被证明可以学习到同时捕获语义和风格的图像的鲁棒表示。

为了利用这些表示进行图像生成,文中提出了一个两阶段模型:一个先验生成给定文本描述的CLIP图像嵌入,一个解码器生成以图像嵌入为条件的图像。

我们证明了显式地生成图像表示以最小的损失在照片真实性和字幕相似性中提高了图像的多样性。我们的解码器在图像表示的条件下也可以产生图像的变化,以保留其语义和风格,同时改变图像表示中不存在的非基本细节。此外,CLIP的联合嵌入空间可以在a z中实现语言引导的图像操作

Imagen 2022

我们提出了Imagen,我们的关键发现是,通用的大语言模型(如:T5 ),在纯文本语料上进行预训练,在编码图像合成的文本时取得了惊人的效果:增加Imagen中语言模型的大小比增加图像扩散模型的大小更能提高样本保真度和图像文本对齐度。Imagen在COCO数据集上取得了7.27的最新FID得分,而没有对COCO进行过训练,人类评分员发现Imagen样本处于标准状态

image-20240504235247964

Imagen使用冻结的文本编码器将输入文本编码成文本嵌入。条件扩散模型将文本嵌入映射成一个64×64的图像。Imagen进一步利用文本条件的超分辨率扩散模型对图像进行上采样,先是64×64→256×256,然后是256×256→1024×1024。

基模型采用IPPDMU - Net架构,用于我们的64 × 64文本到图像扩散模型。该网络通过池化嵌入向量对文本嵌入进行条件化,并加入类嵌入条件化方法的扩散时间步嵌入。我们进一步通过在多个分辨率的文本嵌入上添加交叉注意力来限定整个文本嵌入序列。

超分辨率模型:对于64 × 64→256 × 256的超分辨率,采用改编自PPDMU的U - Net模型。为了提高内存效率、推理时间和收敛速度(我们的变体比文献[ 40,58 ]中使用的U - Net快2 - 3倍步数/秒),我们对该U - Net模型进行了多次修改。我们称这种变体为Efficient U-Net

总结一下,关于DDPM的论文本身的数学理论还是挺强的,而相关的CLIP,Adapter作为某种辅助改进既是一种创新型的工作也很有价值,理论性研究起来也没有那么困难,这种工作做起来还是很舒服的.

参考资料

  1. mli/paper-reading: 深度学习经典、新论文逐段精读 (github.com)
  2. The recent rise of diffusion-based models | Maciej Domagała (maciejdomagala.github.io)

如有疑问,欢迎各位交流!

服务器配置
宝塔:宝塔服务器面板,一键全能部署及管理
云服务器:阿里云服务器
Vultr服务器
GPU服务器:Vast.ai

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

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

相关文章

三、Linux基础命令

章节目标 了解Linux系统注意事项掌握Linux基础命令知道vmware tools的作用 一、Linux系统使用注意 1. Linux严格区分大小写 Linux 和Windows不同,Linux严格区分大小写的,包括文件名和目录名、命令、命令选项、配置文件设置选项等。例如,在…

5.3 调制与解调

信号的调制与解调是通信系统中一对基本的概念,涉及将信息(语音、视频、数据等)在发送之前进行处理以便在传输介质(如无线电波、电话线等)上有效传输,以及在接收端恢复这些信息的过程。 一、调制&#xff0…

Leetcode—289. 生命游戏【中等】

2024每日刷题&#xff08;126&#xff09; Leetcode—289. 生命游戏 算法思想 实现代码 class Solution { public:void gameOfLife(vector<vector<int>>& board) {int rows board.size();int cols board[0].size();int neighbors[3] {0, 1, -1};vector<…

spring框架学习记录(2)

文章目录 注解开发bean相关注解开发定义bean纯注解开发纯注解开发中bean的管理 依赖注入相关依赖注入第三方bean管理第三方bean依赖注入 AOP(Aspect Oriented Programming)面向切面编程AOP简介AOP核心概念AOP工作流程AOP切入点表达式通知类型AOP通知获取数据 注解开发 bean相关…

Day19 代码随想录打卡|字符串篇---反转字符串II

题目&#xff08;leecode T541&#xff09;&#xff1a; 给定一个字符串 s 和一个整数 k&#xff0c;从字符串开头算起&#xff0c;每计数至 2k 个字符&#xff0c;就反转这 2k 字符中的前 k 个字符。 如果剩余字符少于 k 个&#xff0c;则将剩余字符全部反转。如果剩余字符小…

OceanBase 轻量级数仓关键技术解读

码到三十五 &#xff1a; 个人主页 为了更好地聚合和治理跨域数据&#xff0c;帮助企业用较低的成本快速聚合分析&#xff0c;快速决策&#xff0c;不断的让企业积累的数据产生价值&#xff0c;从全域海量数据抓取&#xff0c;高性能流批处理&#xff0c;元数据血缘治理等等方面…

数据分析从入门到精通 1.numpy 剑客修炼

会在某一瞬间突然明白&#xff0c;有些牢笼是自己给自己的 —— 24.5.5 一、数据分析秘笈介绍 1.什么是数据分析 是把隐藏在一些看似杂乱无章的数据背后的信息提炼出来&#xff0c;总结出所研究对象的内在规律。使得数据的价值最大化 案例&#xff1a; 分析用户的消…

Kotlin: Expecting a ‘>‘

数组值为任意类型&#xff0c;声明报错: Kotlin: Expecting a > var anyArr1: Array<Any?> arrayOf("a", "b", "c", true, 34)原因是&#xff1a; // var anyArr1: Array<Any?> arrayOf("a", "b", "c…

概念解析 | 威胁建模与DREAD评估:构建安全的系统防线

注1:本文系"概念解析"系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:威胁建模和DREAD模型 概念解析 | 威胁建模与DREAD评估:构建安全的系统防线 What Is Threat Modeling? Definition, Process, Examples, and Best Practices - Spic…

蓝桥杯-路径之谜

题目描述 小明冒充X星球的骑士&#xff0c;进入了一个奇怪的城堡。城堡里面什么都没有&#xff0c;只有方形石头铺成的地面。 假设城堡的地面时n*n个方格。如下图所示。 按习俗&#xff0c;骑士要从西北角走到东南角。可以横向或者纵向移动&#xff0c;但是不能斜着走&#x…

SpringBoot自定义定时任务

通常&#xff0c;在我们的项目中需要定时给前台发送一些提示性消息或者我们想要的定时信息&#xff0c;这个时候就需要使用定时任务来实现这一功能&#xff0c;实现也很简单&#xff0c;接下来具体来看看吧~ 简单定时任务 首先&#xff0c;你需要在你的启动类上加上开启定时任…

贪吃蛇(下)游戏的实现

感谢大佬的光临各位&#xff0c;希望和大家一起进步&#xff0c;望得到你的三连&#xff0c;互三支持&#xff0c;一起进步 个人主页&#xff1a;LaNzikinh-CSDN博客 文章目录 前言一.蛇和食物的打印二.游戏的运行逻辑三.结束游戏 &#xff08;善后工作&#xff09;四.游戏的测…

K8S-Dashboard安装并创建普通用户

参考&#xff1a;在centos stream 9上搭建k8s最新版本&#xff08;当前&#xff1a;v1.26.1&#xff09;集群环境 查找dashboard 对应的版本 https://github.com/kubernetes/dashboard/releases 下载 kubernetes-dashboard.yaml 使用的2.7.0 wget https://raw.githubuserconte…

mac安装虚拟机linux系统

需要下载的有&#xff1a;centos8镜像 , 虚拟器 VMware 软件包 , Termius 或者xshell 1. CentOS系统下载 linux系统一般有&#xff1a; CentOS、ubuntu、redhat&#xff0c;选择一种进行安装就可以 CentOS 2024 年开始停止维护和发布 CentOS8的下载与安装(windows下安装) 镜…

【网络安全产品】---应用防火墙(WAF)

what Web应用防火墙&#xff08;Web Application Firewall) WAF可对网站或者App的业务流量进行恶意特征识别及防护&#xff0c;在对流量清洗和过滤后&#xff0c;将正常、安全的流量返回给服务器&#xff0c;避免网站服务器被恶意入侵导致性能异常等问题&#xff0c;从而保障…

3.10设计模式——Template Method 模版方法模式(行为型)

意图 定义一个操作中的算法骨架&#xff0c;而将一些步骤延迟到子类中&#xff0c;Template Method 使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。 结构 AbstractClass&#xff08;抽象类&#xff09;定义抽象的原语操作&#xff0c;具体的子类将重定…

C++:set和map的介绍

目录 关联式容器 键值对 set介绍&#xff1a; set的模板参数列表 set的双向迭代器&#xff1a; insert的使用和set的特性&#xff1a; set的删除&#xff1a; set的find&#xff1a; lower_bound 、 upper_bound&#xff1a; multiset&#xff1a; map介绍&#xff…

C语言——指针的奥秘(1.0)

指针 一.内存和地址1.内存2.编址 二.指针变量和指针1.取地址操作符&#xff08;&&#xff09;2.指针变量和解引用操作符&#xff08;*&#xff09;1.指针变量2.拆解指针类型3.解引用操作符4.指针变量的大小 三.指针变量的类型和意义1.指针的解引用2.指针 - 整数3.void* 指针…

JVM笔记1--Java内存区域

1、运行时数据区域 从上图可以看出来&#xff0c;Java虚拟机运行时数据区域整体上可以分成5大块&#xff1a; 1.1、程序计数器 程序计数器是一块较小的内存空间。它可以看做当前线程所执行的字节码的行号指示器。在Java虚拟机的概念模型里&#xff0c;字节码解释器工作时就是…

OpenAI下周将发布ChatGPT搜索引擎,挑战谷歌搜索!

目前&#xff0c;多方位消息证实&#xff0c;OpenAI将会在5月9日上午10点公布该消息&#xff0c;大约是北京时间周五的凌晨2点。 5月3日&#xff0c;前Mila研究员、麻省理工讲师Lior S爆料&#xff0c;根据OpenAI最新的SSL证书日志显示&#xff0c;已经创建了search.chatgpt.c…
最新文章