一般生成影像的需要三个component:
Encoder:最常用的就是text encoder,其实就是NLP了,像gpt、bert等等(encoder对生成的图片质量影响很大)
常用的encoder有CLIP(预训练模型),属于一对pair的text和image的向量相近,否则相反

Decoder:不需要标签数据,只需要原始图片即可
Decoder根据中间产物进行训练
● 中间产物是小图片:我们就把原始图片缩小,然后组成一对pair丢给Decoder进行训练
● 中间产物是representation,我们做如下流程:
image->encoder->representation->decoder->image(这个image和原始image距离越近越好)
Diffusion Model运作流程(生成流程):
首先通过高斯噪音分布进行取样,得到一个完全噪音的图像表示

通过denoise操作,较少噪音

不断重复下去直到获得最终的图像
Denoise操作并不是直接生成一张去噪后的图像,而是通过网络预测添加的噪音,然后再减去这个噪音

那么关键点就在于如何训练这个Noise Predicter了
Noise Predicter训练过程:
从网络上得到图片,然后做diffusion process,这样我们就有了noise信息了

我们利用(
ϵ
t
,
x
t
,
t
e
x
t
,
t
\epsilon_{t}, x_{t}, text, t
ϵt,xt,text,t )来进行训练

Diffusion Model的训练过程:

x
0
x_{0}
x0是我们从世界图片样本
q
(
x
0
)
q(x_{0})
q(x0)中抽样得到的图片;t也是1~T的一个数字;
ϵ
\epsilon
ϵ是生成的高斯噪声,是我们要加在图片上的。
我们训练的目标就是让我们预测的
ϵ
0
\epsilon_{0}
ϵ0与实际
ϵ
\epsilon
ϵ更相近
TODO:数学推导