机器学习笔记:VAE

1 VAE 介绍

  • 机器学习笔记:auto encoder_UQI-LIUWJ的博客-CSDN博客 中,我们知道了auto-encoder。但是auto-encoder有一个不足之处,就是因为auto-encoder不是一个概率模型,所以没法从学习的模型中生成新的数据,或者说我们train了一个模型,得到的输出是固定不变的。
  • 传统的auto-encoder的另一个问题是自编码器学习到的潜在空间不是连续的,所以空间中的点含义没有平滑的过度,即使一个小的扰动点也会导致垃圾输出。
    • 如果使用auto-encoder作为生成模型的话,会存在如下问题:
      • 不知道如何从一个不规则的、无界的空间中采样
      • 学习空间是不连续的
      • 一些类可能在潜空间中被过度表示

        在这种情况下VAE就诞生了:它引入随机性、约束潜在空间,以达到:

1)从原始数据中学习特征表示向量z

2)可以从模型中生成新的数据

        作用(2)是auto-encoder中所不具备的

 2 decoder介绍

训练完成后,decoder可以是这样的:

        我们知道z的先验概率,decoder又学习了一个从z到x的条件概率,那么我们就可以求得x的概率,然后进行采样即可

        更进一步说,decoder需要学习到x|z的均值和方差,这样才可以预测p(x|z)

 2.1 decoder 训练

那么,如何训练这个模型呢?基本想法是最大化数据的概率p_\theta(x) 

 

 其中p_\theta(x)的计算可以由下获得:

  • p_\theta(x|z)是由decoder获得

  • p_\theta(z)是由z的先验概率求得(我们这里认为z满足高斯分布)
  •  至于p_\theta(z|x),我们可以由encoder获得

 3 encoder 与 decoder

区别于AE,VAE不是将输入图像映射到潜在空间中的一个点,而是将其映射到一个分布中,准确地说是多元正态分布

于是我们有:

 

4 目标函数推导

 (贝叶斯法则) 

                        (分子分母同乘)

                        (log的规则)

而我们知道,x最终的分布和z是无关的。因此有:

 

 于是:

(取期望)

                        

 (KL散度见:NTU 课程 CE7454:信息论概述_UQI-LIUWJ的博客-CSDN博客 ) 

 而因为KL散度是大于等于0的,所以我们可以去掉最后一项,这样可以得到一个下界:

分别是encoder学习的效果和decoder学习的效果 

 5 VAE举例

 

 从 encoder的输出(均值,方差)到decoder的输入的过程,是一个采样的过程;decoder的输出也是一个采样的过程,因此每一次VAE的输出都不一样。这样就可以生成不同的新数据了

 6 VAE的流程

6.1 training

我们一步一步再看一遍:

 

 

 

 

 

 

通过最大化p_\theta(x)的概率,对encoder和decoder的参数进行优化

 6.2 generating data

Reparameterization Trick

VAE的损失函数中:

  • 期望项涉及z \sim q_\phi(z|x)生成的样本
    • 采样是一个随机的过程,因此我们不能反向传播梯度
    • 为了使其可训练,引入了重新参数化(reparameterization)的技巧
      • 将随机变量z表示为确定性变量z=T_\phi(x,\epsilon)
        • ε是一个辅助的独立随机变量

 

8 为什么VAE可以工作?

  • 对于一个相同的图像,每次都会在潜在空间中得到一个稍微不同的点(尽管它们都在均值附近)。这使得 VAE 了解该邻域中的所有点在解码时都应该产生类似的输出。这确保了潜在空间是连续的

                        

9 VAE的作用

9.1 异常检测

  • 在异常检测中,VAE被训练来重建正常数据的分布。当输入一个异常数据时,由于它与训练数据的分布不符,VAE重建的效果会较差。
  • 我们可以通过测量输入数据和重建数据之间的差异(例如,使用重建误差)来检测异常。
  • 差异较大通常表明输入数据是异常的

9.2 去噪

  • VAE也可以用于去噪。在这种情况下,VAE被训练以从带噪声的数据中重建干净的数据。
  • 训练过程中,模型学习如何识别并忽略输入数据中的噪声,从而能够生成去噪后的输出。

9.3 生成合成数据

  • 一旦训练完成,我们可以通过操纵潜在空间(即模型内部的隐含表示)来生成新的数据实例
  • 这种方法常用于生成逼真的图像、音频或其他类型的数据

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UQI-LIUWJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值