自学内容网 自学内容网

生成模型初认识

生成模型初认识

参考学习资料:李宏毅-机器学习

以下为课程过程中的简易笔记

生成模型

  • 为什么要用生成模型?——创造力:同一个输入,产生不同的输出(distribution),有一定概率发生某种随机事件
  • 输入:X;从简单分布中随机sample出的向量z;
  • 输出:distribution

AE

自编码器

原始输入特征是有大量冗余的,要重建出原图不需要那么多特征,只要用low dim的中间特征就可以了

image-20241009115046481

VAE

  • 在AE的decoder的输入中增加噪声,噪声的方差是 e σ e^\sigma eσ,其中 σ \sigma σ也是由神经网络学习到的
  • 因为原始的AE不存在噪声,它的预测是不可理解的,满月和弦月的内插不一定得到比弦月满,比满月弦;但是VAE中加了噪声后,因为噪声的存在,就要求满月和弦月之间内插的点既和满月接近,又和弦月接近,因此就会产生比弦月满,比满月弦的结果
  • VAE和GAN不一样,VAE说白了就是要不断地重建出训练数据集中有的样本,最多是训练集中样本的组合,是一个不断提高模仿力的过程,要产生和训练集中的样本相像的图像,最好能一模一样,这样重建错误就会最小;但是GAN是要生成以假乱真的图片,产生的新图像并不是要和训练集图片一模一样,而是要产生图像的分布和训练集图像的分布尽可能接近

在这里插入图片描述
image-20241009111444553

GAN

Unconditional GAN

image-20241009113439067

无条件生成,只输入从简单分布sample的向量z

  • 问:Divergence用于衡量2个分布的距离,然而 P G P_G PG P D a t a P_{Data} PData的formulation(公式)都不知道,怎么计算Divergence?

  • GAN:只要能分别从 P G P_G PG P D a t a P_{Data} PData两个分布中进行sample(也就是分别从Generator产生的数据和收集到的真实训练数据中做sample),就可以利用Discriminator估算出2者的Divergence

image-20241009095701250

公式理解:

  • 要找一个G,让红框里面的值越小越好(代表 P G P_G PG P D a t a P_{Data} PData两个分布的Divergence越小,两个分布越像);
  • 然而由于两个分布的Divergence的公式并不能直接计算,所以把 P G P_G PG P D a t a P_{Data} PData两个分布的Divergence转化为另一个优化问题,通过引入一个Discriminator,在Generator给定的情况下,想要找到一个D,让V(G,D)越大越好

Conditional GAN

有条件生成

image-20241009113507882

image-20241009114353637

Latent Diffusion Model

主要创新:

Difussion Model是在pixel space进行加噪和去噪,训练成本高昂,Latent Diffuion Model将加噪和去噪都搬到了latent sapce,训练成本减少,能接受的condition也变多了

组成部分:

  1. Autoencoder:包括encoder和decoder
  2. Denoiser:将encoder的输出加噪后,还原成decoder的输入
  3. Conditioning Encoder:可以是任意产生一个序列tokens的encoder

输出加噪后,还原成decoder的输入
3. Conditioning Encoder:可以是任意产生一个序列tokens的encoder

3个部分可以分开训


原文地址:https://blog.csdn.net/m0_51619560/article/details/143079890

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!