前言:
生成对抗网络(Generative Adversarial Nets,GAN)是一种基于对抗学习的深度生成模型。
2014年,蒙特利尔博士 lan Goodfellow 发表了论文《Generative Adaversarial Networks》,
一经提出便成为了学术界研究的热点,也将生成模型的热度推向了另一个新的高峰。
对该领域要深入了解,需要重点看一下
Yann LeCun 给于GAN 高度的评价
目录:
- VAE 缺陷
- GAN 简介
- GAN 损失函数
- 训练方法
- GAN 应用
- GAN 模型的缺陷
一 VAE 缺陷
无法产生新的风格图片
VAE 通过Decoder 产生的图片只是要尽可能的跟输入的图像相似,但是无法产生新的以假乱真的图片
二 GAN 简介
2.1 模型结构
GAN 由一个生成模型和一个鉴别模型 组成.
生成模型(enerative Model): 输入特征向量z,产生假的数据,试图欺骗判别模型.
判别模型(Discriminative Model): 对生成数据进行真伪鉴别,试图识别出所有的假的数据
在训练的过程中,两个模型持续的进化和对抗,最终两个网络达到一个动态均衡:
生成器生成的图像接近真实图像分布,判别器不能识别真假图像,对于
给定图像的预测为真的概率接近0.5
2.2 算法流程(forward)
s1: 输入特征z ,通过生成网络G 得到生成图片
s2 : 输入图片x(真实的图片或生成的图片),鉴别图片真假
三 GAN 损失函数
生成器G 和 判别器D 要分开来训练.
鉴别器D: 输出图片真假的概率,是一个二分类问题.用交叉熵来作为损失函数
真实的图片
: 通过生成器生成的假图片
3.1 针对判别器D
真实的图像的采样
我们期望 , 所以 最大化
生成的图像:
我们期望,则 , 所以最大化。
在训练的鉴别器的时候我们,把它转化为求极小值问题
3.2 针对生成器G
通过生成器生成的图片
我们期望.
则
所以最小化
四 训练方法
4.1 伪代码
先训练k轮鉴别模型,再训练生成模型
4.2 训练过程
如上图: 黑线 真实数据的分布,
绿线 生成模型产生的分布
蓝线 鉴别器鉴别真假的概率
图1:
生成模型很弱,绿线和黑线分布有较大的差异,鉴别模型很容易区分出真假.
图2
生成模型通过训练进化了,调整其参数,绿线和黑线分布接近了,鉴别模型还是能够分出真假
图3
生成模型通过训练进化了,调整其参数,绿线和黑线分布一致,鉴别模型无法给出真假
识别真假的能力为50%
五 GAN的应用
基于GAN 有大量的创新应用
GitHub - open-mmlab/mmgeneration: MMGeneration is a powerful toolkit for generative models, based on PyTorch and MMCV.
1: 图像生成
输入一段文字,通过生成模型得到图像。
2: 图像风格迁移(CycleGAN)
把一种图像的风格转换为另一种
3 图像翻译——pix2pix模型
有一类任务叫做image-to-image translation。也就是输入和输出是来自两个不同集合(设为A和B)的图片,且我们一般认为它们是有对应关系的。比如输入黑白照片(A)输出彩色照片(B),输入轮廓照片(A)输出色彩填充照片(B)等(如图1),本文介绍的pix2pix模型所处理的就是这类任务。并且原文作者通过一系列实验,证明了conditional GAN在这类问题上的有效性,也就是说,pix2pix本质上是一种特殊的conditional GAN。
5 声音的转换(CycleGAN-VC2)
将自己的声音风格转换
六 GAN 问题
问题:
JS散度值有一个缺陷,当两个分布完全不重叠时,其JS散度值都是一个常数,以至于梯度为0
6.1 优化目标
假设:
真实的图像服从 的分布
生成的图像服从的分布
6.2 固定生成模型G, 判别模型D优化目标
对D求微分
6.3 固定判别模型D,生成模型优化目标
JS 散度度量了两个概率分布的相似度 。一般地,JS散度是对称的,其取值是 0 到 1 之间 ( “JS散度” 是基于 “KL散度” 的变体,解决了KL散度非对称的问题)。
而JS散度值有一个缺陷,当两个分布完全不重叠时,即便两个分布的中心距离有多近,其JS散度值都是一个常数,以至于梯度为0
所以
6.4 问题
如上图,当p(x) 和q(x) 分布完全不重叠的时候
参考:
偏理论类(创新性更高,意义更大):ICLR,NIPS,ICML
偏重应用类(一般来说创新性有限):AAAI,IJCAI
计算机视觉:CVPR,ICCV,ECCV
自然语言处理:ACL,EMNLP,NaACL
使用 CycleGAN-VC2 实现【人声音色转换】!! - 知乎
https://www.cnblogs.com/Edison-zzc/p/17621424.html
GAN的语音翻译和音频样式传输如何使用频谱图和GAN将爵士乐转换为古典音乐_频谱图 风格转换-CSDN博客
吹爆!GAN生成对抗网络原理解读+论文讲解+代码实现被计算机博士由浅入深讲明白了!—人工智能/深度学习/机器学习/AI_哔哩哔哩_bilibili
AE CSDN
VAE CSDN
https//cs.stanford.edu/people/karpathy/gan/
MMGeneration开源图像生成算法库【OpenMMLab】_哔哩哔哩_bilibili
Hung-yi Lee
Adverarial Nets
GAN论文逐段精读【论文精读】_哔哩哔哩_bilibili
精读CycleGAN论文-拍案叫绝的非配对图像风格迁移_哔哩哔哩_bilibili
https://www.bilibili.com/video/BV1Ya411a78P/?spm_id_from=333.337.search-card.all.click&vd_source=a624c4a1aea4b867c580cc82f03c1745
GAN代码实战和原理精讲 PyTorch代码进阶 最简明易懂的GAN生成对抗网络入门课程 使用PyTorch编写GAN实例 2021.12最新课程_哔哩哔哩_bilibili