AE&VAE&VQ-VAE

AE

在这里插入图片描述

  • 无监督训练的方式,对于输入的x经过一个Encoder层后得到一个特征向量z
  • 再将该向量 z通过一个Decoder层得到最终输出 x’,通过最小化重构模型的输入x和模型的输出x’
    的误差来训练一个好的低维特征向量z
  • 缺点:模型在训练的时候并没有显性对中间变量的z分布进行建模P(z),在模型训练时所采用的f(z)是有限的
  • 在全月和半月中采样一个点,大概率得到不能够生成有效图片的点。因为模型没有很好的建模z空间外的点

VAE:Auto-Encoding Variational Bayes

在这里插入图片描述

  • Encoder模块获得对于该样本的均值和方差,即对于每一个xi而言,获取其对应的分布zi
  • 给定Z一个简单的分布,从这个分布中采样得到zi送给生成器

VQ-VAE:Neural Discrete Representation Learning

  • 样本的分布P(z)并不是很好学,VQ-VAE就使用了一个codebook去替代了VAE中学习样本分布的过程,我们假设codebook是KxD维的,其中K是指codebook的长度,一般设定为8192维,而D则是每一维向量的长度,一般设为512
  • codebook的长度可以简单的理解为codebook对应于k个聚类中心
    在这里插入图片描述
  • 流程:
    1. 将图片送入encoder提取特征图HxWxD
    2. 将特征图每一个像素点的向量与codebook作比较将codebook中与之最相似的向量ei的索引i存入HxW的特征矩阵q(z|x)中
    3. 将特征矩阵中的每个index用ei来表示得到新的feature map—zq(x),维度为HxWxD
    4. 该特征图作为Decoder的输入,最终通过Decoder得到重构后的图片
  • 损失函数:
    在这里插入图片描述
    1.第一部分为重构损失,将原本能够正常计算出来的codebook身上的梯度dL/dzq直接作为Encoder的梯度;仅用这个reconstruction loss就实现了Encoder、Decoder一起进行训练
  1. 第二部分用来训练codebook,最小化ze(x)和embedding e之间的距离。公式中sg表示stopgradient operator,即在前向计算的时候保持相应的量不变,但在后向计算的时候使得梯度为0
  2. 第三部分训练模型的Encoder部分,目的是为了让Encoder的输出稳定在一个codebook聚类,而不是在codebook内乱跳
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值