李宏毅2021 ML课程GAN部分学习


前言

学习资源:https://speech.ee.ntu.edu.tw/~hylee/ml/2021-spring.php


一、初识GAN

1.1 GAN的基本结构:

在这里插入图片描述

  1. x为condition,规定要生成的内容的特性;若无则为uncondition GAN
  2. 为什么要输入高斯分布空间的随机采样z,是因为现实场景中要生成的内容丰富多样,所以需要用z为GAN的生成内容指定了其中一种,如下图游戏场景中向左/由转向的选择:
    在这里插入图片描述

1.2 GAN的基本学习思路:

在这里插入图片描述
在这里插入图片描述
实质上是一个零和博弈的过程,G训练时固定住D的参数,根据D的结果计算梯度以学习生成可以欺骗D的内容,D训练是固定住G的参数,以正确的区分生产和真实的内容,通过不断的交替迭代训练最终让G生成逼真的内容

二、GAN的理论

2.1 基本概念

GAN实质上是做两域转化,从输入的分布转化到输出的分布,因此,GAN的学习目标是让输出的分布要目标分布就可能接近
## 1.引入库

原始的GAN算法中目标函数可以近视为JS散度在这里插入图片描述
但是JS散度对GAN训练并不友好,很容易出现梯度消失的问题,因此学术界在目标函数领域做了很多的尝试:
在这里插入图片描述

2.1 JS散度的推导

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三 GAN的技巧

3.1 JS散度的问题

我们的训练的输入维度(假设100)远小于目标的维度(至少256*256),因此真实分布与生成分布很难有交集,即使有也不一定能在训练时采样到,而JS散度在两个分布无空间交集时其距离为一常量log2,这样训练G时梯度往往会消失
在这里插入图片描述
在这里插入图片描述

3.2 WGAN

Wasserstein距离可以很好的解决这个问题,它的距离定义是一个分布变成另一个分布的平移代价在这里插入图片描述在这里插入图片描述
具体来看WGAN做了哪些改进:

  1. 判别器最后一层去掉sigmoid
  2. 生成器和判别器的loss不取log
  3. 每次更新判别器的参数之后把它们的绝对值截断到不超过一个固定常数c(目的是让目标函数符合1−𝐿𝑖𝑝𝑠𝑐ℎ𝑖𝑡𝑧,但是实质上并为做到,只是确保函数平滑)
  4. 不要用基于动量的优化算法(包括momentum和Adam),推荐RMSProp,SGD也行

在这里插入图片描述
在这里插入图片描述

WGAN GP的改进

WGAN GP不是通过限制weight的大小,而是限制weight的梯度更新变化大小,并通过增加类似惩罚loss实现,采样空间penalty是在真实样本和生成样本中间的连线的随机点

在这里插入图片描述
在这里插入图片描述

实验证明,现在限制weight的梯度更新在1附近效果更好

在这里插入图片描述

四 Conditional GAN

Conditional GAN多了一个x的输入,D需要判断生成的内容是否符合x的要求在这里插入图片描述
x也可为一张图片
在这里插入图片描述

在这里插入图片描述
infoGAN

在这里插入图片描述
VAE-GAN:
在这里插入图片描述
在这里插入图片描述
BiGAN
在这里插入图片描述

在这里插入图片描述

五 Cycle GAN

在这里插入图片描述
多域转化,starGAN:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
双decode-encode结构,一条路线用于重建原图,一条用于两域转化

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

六 评价指标

目前GAN普遍存在的问题

Collapse:生成的内容高度相似
在这里插入图片描述
Dropping:生成的内容分布仅为目标发布的一部分
在这里插入图片描述
GAN的各种评价指标

评价指标:IS
在这里插入图片描述
评价指标:FID
在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值