变分自编码器(VAE)(一)

这篇具有很好参考价值的文章主要介绍了变分自编码器(VAE)(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

说来惭愧,VAE接触很久了,一直想把VAE好好的总结一下,一直拖到现在。

闲话少说,关于VAE的文章网上也有不少,解释的最好最清楚的还是苏剑林老师的这篇文章文章链接,还有B站白板推导系列中关于变分推断跟变分自编码器链接。大家可以多看看这两个资料,或者直接看我这次的总结肯定也不错的。


一、理解VAE前需要了解的知识点

1.极大似然估计

关于极大似然估计可以看我这篇文章,理解极大似然估计的原理,因为VAE中也用到了极大似然估计的原理。https://blog.csdn.net/zeronose/article/details/122437636?spm=1001.2014.3001.5501https://blog.csdn.net/zeronose/article/details/122437636?spm=1001.2014.3001.5501

2.高斯混合模型(GMM)

理解高斯混合模型主要是想让GMM跟VAE进行对比,更容易理解,因为GMM和VAE都属于是隐变量模型,其中都有隐变量这个概念。

这篇之前的文章是介绍EM算法的,里面的例子就是用EM算法去解决高斯混合模型的参数估计问题。可以通过这篇文章来理解高斯混合模型。https://blog.csdn.net/zeronose/article/details/122465732?spm=1001.2014.3001.5501https://blog.csdn.net/zeronose/article/details/122465732?spm=1001.2014.3001.5501

3.变分推断

变分推断是想办法找到一个分布去逼近无法计算得出解析解的后验分布。这也是VAE中用来求解后验分布的方法。可以看B站白板推导关于变分推断部分https://www.bilibili.com/video/BV1aE411o7qd?spm_id_from=333.999.0.0https://www.bilibili.com/video/BV1aE411o7qd?spm_id_from=333.999.0.0

二、AE的基本认识

这里的图全部来源于网络,侵权必删,其中下面关于月亮的一部分,来源于这篇文章,侵权必删。

这篇文章也非常的不错http://www.gwylab.com/note-vae.htmlhttp://www.gwylab.com/note-vae.html

AE就是自动编码器,VAE是在AE的基础上来的,所以这里先介绍一下AE。 

先看一下下面两个图:

变分自编码器(VAE)(一)

变分自编码器(VAE)(一)

如上面两个图所示,AE主要有encoder和decoder两个部分组成,其中encoder和decoder都是神经网络。其中encoder负责将高维输入转换为低维的code,decoder负责将低维的code转换为高维的输入,其中输出要跟输入尽可能的相似,最好是能完全一样。

看第二个图的中间部分,就代表了code,我们经过训练,最终得到了一个6维的code,且每个维度有一个具体的值代表。因为AE就是想生成跟输入相同的图像,所以AE是不会产生新的图像的,就像上面第二个图,最后生成的这个大叔,不会是一个闭嘴不笑,红头发的大叔。

再举一个例子,如下图:

变分自编码器(VAE)(一)

如上图,经过训练我们的AE已经能还原这两张图片。接下来,我们在code空间上,两张图片的编码点中间处取一点,然后将这一点交给解码器,我们希望新的生成图片是一张清晰的图片(类似3/4全月的样子)。但是,实际的结果是,生成图片是模糊且无法辨认的乱码图。

为什么我们在code的中间取一点,无法生成3/4月亮的图呢????

还是因为,AE就是要生成跟输入尽可能相同的图,类似与压缩与解压缩的过程,你想让AE生成一个相似但全新的图,它是做不到的。

那如果我就是想生成3/4月亮的图怎么办?有一种方法,我们可以引入噪声,使得图片的编码区域得到扩大,从而掩盖掉失真的空白编码点。如下图所示:

变分自编码器(VAE)(一)

如上图所示,现在在给两张图片编码的时候加上一点噪音,使得每张图片的编码点出现在绿色箭头所示范围内,于是在训练模型的时候,绿色箭头范围内的点都有可能被采样到,这样解码器在训练时会把绿色范围内的点都尽可能还原成和原图相似的图片。然后我们可以关注之前那个失真点,现在它处于全月图和半月图编码的交界上,于是解码器希望它既要尽量相似于全月图,又要尽量相似于半月图,于是它的还原结果就是两种图的折中(3/4全月图)。

由此我们发现,给编码器增添一些噪音,可以有效覆盖失真区域。不过这还并不充分,因为在上图的距离训练区域很远的黄色点处,它依然不会被覆盖到,仍是个失真点。为了解决这个问题,我们可以试图把噪音无限拉长,使得对于每一个样本,它的编码会覆盖整个编码空间,不过我们得保证,在原编码附近编码的概率最高,离原编码点越远,编码概率越低。在这种情况下,图像的编码就由原先离散的编码点变成了一条连续的编码分布曲线,如下图所示。

变分自编码器(VAE)(一)

那么上述的这种将图像编码由离散变为连续的方法,就是变分自编码的核心思想。VAE中间的code不是具体的值,而是一种分布。如下图所示:

变分自编码器(VAE)(一)

三、VAE的基本认识

上面介绍完了AE,接着就来介绍一下VAE。VAE是从AE的基础上来的,其中我们知道,AE类似于一种压缩解压缩的过程,只能生成与输入图像尽可能一样的图像,而不会生成与输入图像相似但不同的图像,这是AE本身所限制的。在这个基础上,VAE中间的code是一个分布,从分布中采样然后输入到decoder中,VAE可以生成与输入图像相似但不同的图像

如下图所示,为VAE的基本结构图:

变分自编码器(VAE)(一)

如下图所示,为VAE原文中给出的VAE的图模型,从VAE的图模型我们可以看到,z是服从标准正太分布的

变分自编码器(VAE)(一)

如下图所示,为VAE原文中给出的VAE的结构图。其中分为左右两个部分,右边才是最终的VAE结构。右边比左边就多了一个从标准正太分布中采样的过程,称为重参数化技巧,后面会说到为什么要有这个重参数化技巧。

变分自编码器(VAE)(一)

感觉东西有点多,一篇文章写下来比较臃肿,大家看到后面会没有兴趣,所以将VAE分为(一)、(二)两个部分去介绍,(二)会介绍如下内容:

三、VAE公式推导

四、补充说明

 (二)部分是重中之重,理解了公式的推导,基本上就算彻底理解了VAE。https://blog.csdn.net/zeronose/article/details/122660359

​​​​​​​文章来源地址https://www.toymoban.com/news/detail-419582.html

​​​​​​​

到了这里,关于变分自编码器(VAE)(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 变分自编码器(VAE)PyTorch Lightning 实现

    ✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 变分自编码器 (Variational Autoencoder,VAE)是一

    2024年02月21日
    浏览(50)
  • AIGC实战——变分自编码器(Variational Autoencoder, VAE)

    我们已经学习了如何实现自编码器,并了解了自编码器无法在潜空间中的空白位置处生成逼真的图像,且空间分布并不均匀,为了解决这些问题#

    2024年02月05日
    浏览(37)
  • 理解 Stable Diffusion、模型检查点(ckpt)和变分自编码器(VAE)

            在探索深度学习和人工智能领域的旅途中,理解Stable Diffusion、模型检查点(ckpt)以及变分自编码器(VAE)之间的关系至关重要。这些组件共同构成了当下一些最先进图像生成系统的基础。本文将为初学者提供一个详细的概述,帮助您理解这些概念以及它们是如何协同工作

    2024年01月21日
    浏览(44)
  • 简要介绍 | 生成模型的演进:从自编码器(AE)到变分自编码器(VAE)和生成对抗网络(GAN),再到扩散模型

    注1:本文系“简要介绍”系列之一,仅从概念上对生成模型(包括AE, VAE, GAN,以及扩散模型)进行非常简要的介绍,不适合用于深入和详细的了解。 生成模型在机器学习领域已经成为了一个热门的研究领域。它们的主要目标是学习数据的真实分布,以便能够生成新的、与真

    2024年02月14日
    浏览(49)
  • AI绘画——Stable Diffusion模型,变分自编码器(VAE)模型 , lora模型——调配设置与分享

    目录 Stable Diffusion模型 模型调配 模型设置  变分自编码器(VAE)模型  模型调配 模型设置   lora模型(原生)(插件) 模型调配 模型设置   AI生成prompt及模型分享 Stable Diffusion模型 pastel-mix+对应的VAE  Stable Diffusion模型国风+Lora模型 墨心+疏可走马 Stable Diffusion模型国风+Lo

    2024年02月04日
    浏览(58)
  • 变分自编码器生成新的手写数字图像

    变分自编码器(Variational Autoencoder,VAE) 是一种生成模型,通常用于学习数据的潜在表示,并用于生成新的数据样本。它由两部分组成:编码器和解码器。 编码器(Encoder) :接收输入数据,并将其映射到潜在空间中的分布。这意味着编码器将数据转换为均值和方差参数的分

    2024年04月11日
    浏览(42)
  • AIGC实战——使用变分自编码器生成面部图像

    在自编码器和变分自编码器上,我们都仅使用具有两个维度的潜空间。这有助于我们可视化自编码器和变分自编码器的内部工作原理,并理解自编码器和变分自编码潜空间分布的区别。在本节中,我们将使用更复杂的数据集,并了解增加潜空间的维度时,变

    2024年02月05日
    浏览(41)
  • AE(自动编码器)与VAE(变分自动编码器)的区别和联系?

    他们各自的概念看以下链接就可以了:https://blog.csdn.net/weixin_43135178/category_11543123.html  这里主要谈一下他们的区别? VAE是AE的升级版,VAE也可以被看作是一种特殊的AE AE主要用于数据的 压缩与还原 ,VAE主要用于 生成 。 AE是将数据映直接映射为数值 code(确定的数值) ,而

    2024年02月03日
    浏览(70)
  • 图像生成模型【自编码器、RNN、VAE、GAN、Diffusion、AIGC等】

    目录 监督学习 与 无监督学习 生成模型 自编码器 从线性维度压缩角度: 2D-1D 线性维度压缩: 3D-2D 推广线性维度压缩 流形 自编码器:流形数据的维度压缩 全图像空间 自然图像流形 自编码器的去噪效果 自编码器的问题 图像预测 (“结构化预测”) 显式密度模型 RNN PixelRNN [van

    2024年02月10日
    浏览(41)
  • 在 CelebA 数据集上训练的 PyTorch 中的基本变分自动编码器

    摩西·西珀博士         我最近发现自己需要一种方法将图像 编码到潜在嵌入中, 调整 嵌入,然后 生成 新图像。有一些强大的方法可以创建嵌入 或 从嵌入生成。如果你想同时做到这两点,一种自然且相当简单的方法是使用变分自动编码器。

    2024年02月05日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包