携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第31天,点击查看活动详情
前言
在上一篇文章中,我们介绍了COCO数据集、Detectron框架、coco数据集标注文件解析。
今天,我们来介绍GAN网络的基本概念,GAN网络的优化目标函数,常见的生成式模型, 常见的GAN网络, GAN的优缺点,如何训练GAN网络,GAN的重要应用。
-
1.1 GAN网络的基本概念
-
GAN(Generative Adversarial Networks)是一种生成式的,对抗网络。
- 生成网络尽可能生成逼真样本,判别网络尽可能区判别该样本是真实样本,还是生成的假样本。示意图如下
- GAN网络包含生成器和判别器两个部分。生成器主要完成的是生成逼真的样本;判别器区判别生成器生成的样本是真样本还是假样本,二者之间进行相互的博弈,直到达到一个平衡,就是各占50%,生成器生成的样本能够达到以假乱真的地步,这个时候去掉判别器,就可以利用生成器生成想要生成的样本。
-
1.2 GAN网络的优化目标函数
-
KL散度、JS散度、Wasserstein距离
-
1.3 常见的生成式模型
-
生成模型:给定训练数据,从相同的数据分布中生成新的样本
- PixelRNN/CNN:逐像素生成/从图像拐角处生成整个图像
- 自动编码器(AE):编解码重构输入数据
- 变分自动编码器(VAE):向自编码器加入随机因子获得的一种模型
- 生成对抗网络(GAN):采用博弈论的方法
-
1.4 常见的GAN网络:
-
DCGAN
- DCGAN的判别器和生成器都使用了卷积神经网络(CNN)来替代GAN中的多层感知器,同时为了使整个网络可微,拿掉了CNN中的池化层,另外将全连接层以全局池化层替代以减轻计算量,加入BN,使用激活函数RELU和LeakyReLU。
-
Pixel2pixel, conditional GAN
- L1和L2 distance的loss,经常产生blur的模糊的image(损失高频信息)
- UNet,l1 loss
- Maekovian Discriminator(PatchGAN)
-
CycleGAN
- CycleGAN本质上是两个镜像对称的GAN,构成了一个环形网络。
- 两个GAN共享两个生成器,并各自带一个判别器,即共有两个判别器和两个生成器。一个单向GAN两个loss,两个即共四个loss
-
StyleGAN
- 移除了传统的输入(remove traditional input)
- 映射网络(Mapping Network)
- 样式模块(style modules, AdaIN,自适应实例归一化)
- 随机变化(Stohastic variation,通过加入噪声为生成器生成随机细节)
- StyleGAN在面部生成任务中创造了新纪录
-
BigGAN
- 加大Batchsize
- 发现增加网络宽度可以提高IS分数,但加深网络的深度并没有明显的提升网络的效果
- Truncation trick 截断技巧
- Orthogonal Regularzation正交正则化
- 不稳定性的分析
-
1.4 GAN的优缺点
-
优点:
- GAN是一种生成式模型,相比较其他生成没模型(玻尔兹曼机和GSNs)只用到了反向传播,而不需要复杂的马尔科夫链
- 相比其他所有模型,GAN可以产生更加清晰,真实的样本
- 无监督的学习方式训练,可以被广泛用在无监督学习和半监督学习领域
- GANs是渐进一致的,但是VAE是由偏差的
- GAN应用到一些场景上,比如图片风格迁移,超分辨率,图像补全,去噪,避免了损失函数设计的困难
-
缺点
- 训练GAN需要达到纳什均衡,有时候可以用梯度下降法做到,有时做不到
- GAN不适合处理离散形式的数据,比如文本
- GAN存在训练不稳定、梯度消失、模式崩溃的问题
-
1.5 如何训练GAN网络?
- 输入规范化到(-1,1)之间,最后一层的激活函数使用tanh(BEGAN除外)
- 使用wassertein GAN的损失函数
- 如果有标签数据的话,尽量使用标签,也有人提出使用反转标签效果很好,另外使用标签平滑,单边标签平滑或者双边标签平滑
- 使用mini-batch norm,如果不用batch norm 可以使用instance norm 或者weight norm
- 避免使用RELU和pooling层,减少稀疏梯度的可能性,可以使用leakyrelu激活函数
- 优化器尽量选择ADAM,学习率不要设置太大,初始1e-4可以参考,另外可以随着训练进行不断缩小学习率
- 给D的网络层增加高斯噪声,相当于是一种正则
- 等
-
1.6 GAN网络的重要应用
- 图像数据生成
- 超分辨率重构
- 音乐生成
- 图像转换/翻译
- 图像合成
- 场景合成
- 人脸合成
- 文本到图像的合成
- 分格迁移
- 图像域的转换
- 图像修复
- MaskGAN
- 去雨/去雾
- 年龄仿真
- 等