生成模型基础 08 Diffusion Model
Difussion ModelWhy we introduce diffusion in generative modeling
x为复杂分布无法表达,但是可以通过“扩散”,形成可以建模的简单分布z~N(0, I)
核心思路:如果能够逆转这一过程,则可以重新得到x,完成生成模型的目标
问题:
高维image如何变成噪声
如何逆转这一过程z -> x
如何训练模型
Forward process
forward pass:image -> noise
标记法:
image -> x0
image(data)服从的分布:q(x0)
随机变量x服从高斯分布:N(𝑥; 𝜇, 𝜎²𝐼)
从高斯分布中采样:𝑥 = 𝜇 + 𝜖𝜎
前传的过程不断加噪,一共加T次,每次加一点
可以从中sample中x1:
式子的前项可以理解为减弱x0中原来含有的信息,而后一项可以认为加入噪声信息𝜖1
后续的加噪过程与q(x1|x0),相似,可以依次计算q(x2|x1),采样出x2,……
从而可得递推公式:
计算和上上 ...
生成模型基础 07 Normalizing Flow
Normalizing FlowLooking back
VAE特点:
浅层网络
非序列化
重建进行复原image
Autoregressive特点:
深层网络
序列化
可以通过MLE优化
GAN特点:
深层网络
非序列化
通过近似距离用神经网络评估
希望非序列化(image 难以表征为序列),但是可以通过MLE进行优化 -> Normalizing Flow
Normalizing Flow的特点:
深层网络
非序列化
可以通过MLE优化
normalizing flow和AR的区别:normalizing flow是非序列的;换相比于VAE和GAN,可以计算密度,从而可以使用MLE方法优化
标记法:
image -> x
noise -> z
generator -> g(z)
目标:学习g(z),使得g(z)生成结果接近于x
生成模型的流程可由下图所示,我们希望设计一个方法使得给定任意x,我们都能计算出使用生成模型生成出这个sample的概率密度p(x; θ)
若似然函数已知,则可以用MLE进行优化
思路:若g( ...
生成模型基础 06 GAN
Generative Adversarial NetworksMetricsFrom complex distribution to simple distribution
生成模型的核心:给定随机噪声,生成想要的结果形式 e.g. text、image
假设随机变量X服从一个非常复杂的无法显示表示的分布Q,我们该如何从Q中生成数据?
假设我们已知Q的累计概率密度函数F(x),F(x)有如下性质:
假设我们可以算出F(x)的逆函数F(x)^(-1),则可通过下面的算法采样Q:
从均匀分布中采样Z
X = F(Z)^(-1)服从Q
代入X=F(Z)^(-1)后,X的随机性变为Z的随机性。再对等式两侧同时作用F可得𝑃(𝑍 < 𝐹(𝑡)) = 𝐹(𝑡)
从而如果Q的反函数可求,可利用均匀分布采样出复杂分布Q
问题:Q未知,F(x) 和 F(x) 的反函数都不可求,因而需要神经网络来解决
VAE问题:VAE较浅,用小网络做image generation任务时,image真实性和质量较差
解决方法:可以使用GAN来实 ...
生成模型基础 05 Debugging
DebuggingDebug通常是一件比较麻烦的事情
深度神经网络是复杂、不可解释的
超参数极多(模型结构,网络层数、宽度、学习率,batch size,优化器,dropout)
非线性模型,没有优化方法可以收敛到全局最优
如何debug训练问题 —— 训练
说明数据对应的代码和处理任务是正确的,优化器是正确的
迭代输入数值溢出:例如方差为0,经过 layer norm 后造成÷0,溢出
迭代步长过大:例如从一个极小值点跳到了另一个极小值点,且出不来
学习率问题:不同的优化器所要求的学习率不同
如何debug训练问题 —— 测试
模型参数:可以使用LoRA低秩分解可以降低可改变的参数
生成模型基础 04 Autoregressive models
Autoregressive modelsProbabilistic model in high-dimensional space
概率建模,生成模型:希望采样数据分布达到真实数据类似的效果
问题:高维数据
Image:sample出image = 给定image的概率为sample出每个像素概率 = 给定image概率的联合概率
Sentence:sample出句子的概率 = 给定句子的概率等于sample出每个词的概率 = 给定每个词的联合概率
General setting
高维数据可以由一个高位向量表示:Data 𝑥 = (𝑥1,𝑥2,…,𝑥𝑑):
Image:d表示image的大小(pixel x pixel),xi代表每个pixel的三通道RGB值
Language:d表示句子长度,xi表示对应位置的每个词
目标:model 𝑃(𝑋 = 𝑥) -> 联合概率分布:𝑃(𝑋1 = 𝑥1,…,𝑋𝑑 = 𝑥𝑑)
可以通过条件概率的chain ...



