GAN的介绍

GAN基本概念

​ GAN的全称是Generative adversarial network,中文翻译过来就是生成对抗网络。生成对抗网络其实是两个网络的组合:生成网络(Generator)负责生成模拟数据;判别网络Discriminator)负责判断输入的数据是真实的还是生成的。生成网络要不断优化自己生成的数据让判别网络判断不出来,判别网络也要优化自己让自己判断得更准确。二者关系形成对抗,因此叫对抗网络。

GAN的基本架构图

https://s2.loli.net/2022/10/26/2EpoujvZOQ8cC9F.png

生成器(Generator):通过机器生成数据,最终目的是“骗过”判别器“

判别器(Discrimiator):判断这张图象是真实的还是机器生成的,目的是找出“假数据”

GAN基本原理

​ 通俗的讲,GAN类似一个银行与造假币的犯罪团伙之间的关系,团伙造假币,银行检测是否是假币,这样双方不断进行训练,提升自身的能力,最终两边的实力都得到了极大的提升。

​ 详细内容见

[https://easyai.tech/ai-definition/gan/]:

GAN的优缺点

3个优势

  1. 能更好建模数据分布(图像更锐利、清晰)
  2. 理论上,GANs 能训练任何一种生成器网络。其他的框架需要生成器网络有一些特定的函数形式,比如输出层是高斯的。
  3. 无需利用马尔科夫链反复采样,无需在学习过程中进行推断,没有复杂的变分下界,避开近似计算棘手的概率的难题。

2个缺陷

  1. 难训练,不稳定。生成器和判别器之间需要很好的同步,但是在实际训练中很容易D收敛,G发散。D/G 的训练需要精心的设计。
  2. 模式缺失(Mode Collapse)问题。GANs的学习过程可能出现模式缺失,生成器开始退化,总是生成同样的样本点,无法继续学习。

GAN的实际应用

​ 生成图像数据集、生成人脸照片、生成照片、动漫人物、图像转换、文字到图像的转换、语义-图像-照片的转换、自动生成模特、照片转emojis、照片编辑等等。

​ 具体内容见

[https://easyai.tech/ai-definition/gan/]:

自编码器简介

​ 自编码器是指使用自身的高阶特征编码自己。自编码器是一种神经网络,他的输入和输出时一致的,目标是使用稀疏的告诫特征重新组合来重构自己。

​ 自编码器是一种数据的压缩算法,其中数据的压缩和解压缩函数是数据相关的、有损的、从样本中自动学习的。在大部分提到自编码器的场合,压缩和解压缩的函数是通过神经网络实现的。

自编码器架构

https://s2.loli.net/2022/10/31/mhjZpK7GfezX98s.png

​ 相当于有两部分:前半为压缩器后半为解压缩器

自编码器应用

数据去噪、降维、图像生成

变分自编码器(VAE)

​ 变分自编码器可以随机生成隐含变量,提高网络的泛化能力,比普通的自编码器要好,缺点是生成的图片会有点模糊