9.10. GAN¶
https://atcold.github.io/pytorch-Deep-Learning/en/week09/09-3/
Generator 实际在做的事情就是,对于给定样本分布 Pdata(x),我们希望的我们 PG(x;θ),能够尽可能地接近 Pdata(x),这里的 θ 就是控制 G 的参数,如果是神经网络的话,对应就是各层的 Weights。衡量接近的指标就是上面的 L,其含义就是如果我们从 Pdata(x) 中 采样 m 个 x_i,那么在给定 θ 的情况下,我们可以计算出从 PG 中 采样出 x_i 的几率,将它们连乘得到 L。我们的目的就是找到一个 θ_star,使得 L 能够最大。
将 log(1-D(x)) 改换为 -log(D(x))
9.10.1. DCGAN¶
去掉了G网络和D网络中的pooling layer。
在G网络和D网络中都使用Batch Normalization
去掉全连接的隐藏层
在G网络中除最后一层使用RELU,最后一层使用Tanh
在D网络中每一层使用LeakyRELU。 2
生成对抗网络在各领域应用研究进展: http://www.aas.net.cn/cn/article/doi/10.16383/j.aas.c180831
9.10.2. GAN为什么在文本上效果不佳?¶
图像和文本的核心区别在于图像的 Pixel 表示是连续的,而文本是由离散的 token 组成
参数的微小改变不能对结果产生影响,或者说影响的方向也不对,这就导致 Discriminator 的梯度回传变得没有意义