提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
提示:这里可以添加本文要记录的大概内容:
记录一下学习AIGC,参考链接: 爆火的AIGC到底是什么
提示:以下是本篇文章正文内容,下面案例可供参考
一、stable diffusion
1.1 diffusion model
正向扩散:
x
t
=
α
ˉ
x
0
+
1
−
α
ˉ
t
ε
x_t=sqrt{bar{alpha}}x_0+sqrt{1-bar{alpha}_t}varepsilon
xt=αˉx0+1−αˉtε
逆向扩散:计算太复杂,训练网络来模拟
训练过程:为每个图像随机选择时间步长 t ,将高斯噪声应用于图像,将时间步长转换为嵌入向量。
训练步骤:随机选择一个时间步长编码,通过扩散公式向图像中添加噪声,将添加噪声后的图片输入,训练U-Net,比较预测的噪声和实际的差距,重复步骤。
采样
采样就是把噪声图像还原。
步骤:
- 采样一个高斯噪声,T确定。
- 利用训练的 U-Net 预测图像的噪声,利用如下公式一步一步推导出原图像:
x
t
−
1
=
1
α
t
(
x
t
−
1
−
α
t
1
−
α
ˉ
t
ε
θ
(
x
t
,
t
)
)
+
β
t
ε
x_{t-1}=frac{1}{sqrt{alpha _t}}left( x_t-frac{1-alpha _t}{sqrt{1-bar{alpha}_t}}varepsilon _{theta}left( x_t,t right) right) +sqrt{beta _t}varepsilon
xt−1=αt1(xt−1−αˉt1−αtεθ(xt,t))+βtε
- 输出去噪图像
这样一步一步太慢,所以有了stable diffusion。
1.2 stable diffusion
- 通过使用训练过的编码器 E ,压缩图像。
- 通过使用训练过的解码器 D ,还原图像。
将图像压缩以后,在潜在空间中进行正向和反向扩散。
stable diffusion可以根据文本生成图像。
- 先用语言模型(Transformer)将文本转换为嵌入向量,通过multi-Attention机制映射到U-net。
训练
和上面的训练过程差不多,不一样的地方:
- 输入的是潜在数据不是原图像。
- 添加了个条件输入
τ
θ
(
y
)
tau_{theta}(y)
τθ(y)(这个就是语言模型中用来把文本转换为嵌入的)。
总结
Stable Diffusion 要比 Diffusion Model 快很多。
二、Generative AI
2.1 单模态
只能接受单一类型的输入,产生对应类型的输出。
- 生成式语言模型:GPT-3
- 生成式视觉模型:GAN、VAE
2.2多模态
2.2.1 视觉语言Encoder:concatenated encoder(级联编码器)、cross-aligned encoder(交叉对齐编码器)
- concatenated encoder:将两个不同模态的模型连接起来
- cross-aligned encoder:使用tow-tower结构,各自单独学习,然后对两个模态的特征进行联合表达
文本音频生成
文本代码生成
三、回顾一下Transformer
3.1 Attention
- 计算相似性
S
i
m
i
=
Q
u
e
r
y
i
⋅
K
e
y
i
Sim_i=Query_icdot Key_i
Simi=Queryi⋅Keyi - 计算
a
i
a_i
ai
a
i
=
s
o
f
t
m
a
x
(
S
i
m
i
)
=
e
S
i
m
i
∑
j
=
1
L
x
e
S
i
m
j
a_i=softmax(Sim_i)=frac{e^{Sim_i}}{sum_{j=1}^{L_x}{e^{Sim_j}}}
ai=softmax(Simi)=∑j=1LxeSimjeSimi - 计算
A
t
t
e
n
t
i
o
n
Attention
Attention
A
t
t
e
n
t
i
o
n
=
∑
i
=
1
L
x
a
i
V
a
l
u
e
i
(
K
e
y
i
=
V
a
l
u
e
i
=
h
i
)
Attention=sum_{i=1}^{L_x}a_iValue_i (Key_i=Value_i=h_i)
Attention=i=1∑LxaiValuei(Keyi=Valuei=hi)
h
i
h_i
hi是Encoder里面的隐含层。
3.2 self-Attention
和上面一样,
Q
u
e
r
y
=
K
e
y
Query=Key
Query=Key。
文章来源于互联网:AIGC学习笔记
5bei.cn大模型教程网










