LSGAN
1.LSGANs(最小二乘GAN)
转自:https://blog.csdn.net/u013289254/article/details/97302883
https://zhuanlan.zhihu.com/p/25768099
LSGANs是用来解决原始GAN的两个缺陷:生成的图片质量不高以及训练过程不稳定。
上图中左边是生成器,右边是判别器,LSE损失替换了普通GAN的BCE损失。
那么最终的生成损失G:
判别损失D计算:
# Train the discriminator d_loss_real = self.discriminator.train_on_batch(imgs, valid) d_loss_fake = self.discriminator.train_on_batch(gen_imgs, fake) d_loss = 0.5 * np.add(d_loss_real, d_loss_fake)
D不再是原始GAN的最大化目标函数,而是最小化:
2.lsGAN训练比GAN更稳定
https://blog.csdn.net/victoriaw/article/details/60755698
sigmoid交叉熵损失很容易就达到饱和状态(饱和是指梯度为0),而最小二乘损失只在一点达到饱和。
但是评论区中提到,“对于Sigmoid函数,由于数据在远离0的情况下梯度会越来越小甚至趋于0,因为训练的时候会加batch Normlization将数据拉回来。”
也就是说批归一化能缓和sigmoid梯度消失的问题?