三种生成模型(GAN,VAE,FLOW)
什么是生成模型?
图像、文本、语音等数据,都可以看做是从一个复杂分布中采样得到的。
一个简单的分布随机分布,经过一系列复杂的变换(Generator)之后变成复杂分布.
从简单分布中随机采样一个z,经过G后生成一个复杂样本X,这个过程就叫做生成。
GAN模型(样本近似)
GAN的作用:使生成的采样数据和真实分布的采样数据尽可能相似。
竞争训练:①更新D时,固定G,令D能区别输入的是真实/real或者虚假/fake的数据
②更新G时,固定D,令G生的虚假数据能够欺骗鉴别器D
VAE(Variational Auto-encoder)变分自编码器(分布近似)
数据x符合复杂分布P(x)。根据x直接建模P(x)比较困难,因此引入一个较为简单的先验分布P(z)先从简单分布中采样z,再利用z生成x。
令encoder生成的分布和先验分布尽可能相似从encoder生成的分布的分布中采样z,再用z生成x期望最大
flow(直接构建两个分布之间的映射函数)
直接构建 分布A到分布B的转换函数
考虑复杂分布,在一个小的区间内可以看成是均匀分布的
考虑多维情况
至此,我们得到了一个比较重要的结论:如果z与×分别满足两种分布,并且z通过函数f能够转变为x,那么z与x中的任意一组对应采样点z与x’之间的关系为:
flow训练过程(是一个双向的过程)
G的内部结构
接下来开始具体考虑G的内部设计,为了让G-1可以计算并且G的Jacobian行列式也易于计算, Flow-based Model 采用了一种称为耦合层(Coupling Layer)的设计来实现。
det设计
实现复杂建模
将多个模块进行耦合以及copy以及交替