来源:
https://www.bilibili.com/video/BV17r4y167Bz?spm_id_from=333.337.top_right_bar_window_history.content.click
1. GAN的介绍
1.1 引入
Generative Adversarial Networks,是一种无监督的深度学习模型,2014提出。
1.2 模型的主要组成
- 生成器G(generator)
- 判别器D(discriminator)
1.3 GAN训练的主要目的
希望生成器G,能学习到样本的真实分布
P
d
a
t
a
(
x
)
P_{data}(x)
Pdata(x),那么G就能生成之前不存在的却又真实的样本
取噪声
z
z
z
学习,调整生成器的参数
使得
G
(
z
)
G(z)
G(z)~
P
G
(
x
)
P_G(x)
PG(x)≈
P
d
a
t
a
(
x
)
P_{data}(x)
Pdata(x)
使得学得分布与原始数据分布尽可能类似
1.4 GAN网络结构
将生成的图片与真实图片送入D中二分类比较判别
where,
D
(
⋅
)
∈
[
0
,
1
]
D(·) \in [0,1]
D(⋅)∈[0,1] SoftMax变换压缩后
- 内层。调整D, D ( x ) − > 1 D(x)->1 D(x)−>1, D ( G ( z ) ) − > 0 D(G(z))->0 D(G(z))−>0
- 外层。调整G,
D
(
G
(
z
)
)
−
>
1
D(G(z))->1
D(G(z))−>1,调整生成器,欺骗判别器,蒙混过关,实现假数据生成。
KL散度(相对熵)
2. 常见的GAN
2.1 DCGAN
DCGAN(Deep Convolutional Generative Adversarial Networks)基于深度卷积生成对抗性网络的无监督表示学习
将判别器和生成器中原始GAN的MLP模型换为CNN
- 用步长卷积(D)和小步长卷积(G)替换池化层
- 在D和G中使用batchnorm
- 移除隐层的全连接
- ReLU激活函数,最后一层用Tanh
- 在D中用LeakyReLU