IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> VAEGAN:理解 VAE 与 GAN【图像生成】 -> 正文阅读

[人工智能]VAEGAN:理解 VAE 与 GAN【图像生成】

标准VAE(Variational Autoencoder)的原理:

在autoencoder模型中,我们加入一个编码器,它能帮我们把图片编码成向量。然后解码器能够把这些向量恢复成图片。

标准自编码器

我们现在获得了一个有点实际用处的网络了。而且我们现在能训练任意多的图片了。如果我们把这些图片的编码向量存在来,那以后我们就能通过这些编码向量来重构我们的图像。我们称之为标准自编码器。

?但是,我们想建一个产生式模型,而不是一个只是储存图片的网络。现在我们还不能产生任何未知的东西,因为我们不能随意产生合理的潜在变量。因为合理的潜在变量都是编码器从原始图片中产生的。

这里有个简单的解决办法。我们可以对编码器添加约束,就是强迫它产生服从单位高斯分布的潜在变量。正式这种约束,把VAE和标准自编码器给区分开来了。现在,产生新的图片也变得容易:我们只要从单位高斯分布中进行采样,然后把它传给解码器就可以了

这里有一些使用VAE好处,就是我们可以通过编码解码的步骤,直接比较重建图片和原始图片的差异,但是GAN做不到。

另外,VAE的一个劣势就是没有使用对抗网络,所以会更趋向于产生模糊的图片。

VAEGAN的原理

我们知道 VAE 可以实现从原始分布编码到一个 normal 的分布,再从 normal 的分布解码回原始分布的功能,然后这个解码用到的 decoder 就可以单独被提取出来作为生成器使用。但是,VAE 有一个很大的问题就是,解码产生的图片往往都比较模糊。那为什么产生的图片会模糊?我会在之后学习 VAE 的过程中再去研究,目前我们只是知道,VAE 产生的图片是容易模糊的。于是就出现了 VAEGAN,它的作用,就是给 VAE 加上了 GANs 的架构, 通过判别器使得 VAE 产生的图片变得清晰。因此我们可以理解为,VAEGAN 就是利用 GANs 去提升了 VAE 的图片生成质量。

?我们来说明一下这个架构。首先输入一张真实图像X𝑖𝑛,通过一个 encoder 变成一个 normal 的分布 z,然后 z 再输入到 decoder 中产生生成图像X𝑜𝑢𝑡这时 VAE 希望X𝑜𝑢𝑡与X𝑖𝑛 之间的 loss 越小越好,但是 loss 小不见得图片就清晰,于是X𝑜𝑢𝑡又会被放入一个判别器中, 去让判别器判断输入的图片属于P𝑑𝑎𝑡𝑎还是P𝐺,这样最终X𝑜𝑢𝑡就会与X𝑖𝑛不仅相似还清晰。

而关于 VAEGAN,有趣的一点是,我们不仅可以用 GANs 来提升 VAE,也可以用 VAE 来 提升 GANs。如果是被用作后者的话,“GANVAE”其实就等效为 CycleGAN 的一部分,如下图 所示。

?这两者的差别在于,把 X?encode 成 z 的过程是放在生成器的前面还是后面,如果放在前面,就是 VAEGAN;如果放在后面,就是 CycleGAN。

VAEGAN的变种

上一节的 VAEGAN 存在一个问题,就是 Encoder 编码出的 z 不一定完全符合我们期望的 normal z 的样式,也就是编码出的 z 和我们输入的 z 可以存在细微的不同,但是通过生成器的处理,它们产生的输出都能够骗过判别器。 为了解决这一问题 VAEGAN 提出了一个变种,它改变了判别器,使得判别器能更精细的鉴别输入图像的种类,共包括三个种类:真实图片,重构图片,与生成图片。

其中重构图片与生成图片的差异是,重构图片X𝑟𝑒𝑐是真实图片通过 encoder 与 decoder 之后产生的图片 ,如下图所示:

而生成图片X𝑔仅仅是一个初始分布 z 通过 decoder 之后产生的图片 ,如下图所示:

?于是现在X𝑟𝑒𝑐与X𝑔的差异能够被判别器学到,又因为生成器是共用的,那为了消除这种 差异只能让输入 z 接近一致,也就是 encoder 编码出的 z 不断逼近我们给定的输入 z,最终几乎完全一样。结果证明,这种模型在实验中比 VAEGAN 有少量的提升。

VAE(Variational Autoencoder)的原理 - Shiyu_Huang - 博客园

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-11-05 00:28:48  更:2022-11-05 00:31:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 20:38:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码