【自监督GAN】Self-Supervised GANs via Auxiliary Rotation Loss(SS-GAN)

使用辅助旋转损失的自监督GAN(CVPR 2019)

paper:Self-Supervised GANs via Auxiliary Rotation Loss | Papers With Code

pytorch implement:https://github.com/vandit15/Self-Supervised-Gans-Pytorch

official implement(TensorFlow) : https://github.com/google/compare_gan


前置知识:条件GAN(CGAN)

1、CGAN的思想:

CGAN(可以根据标签生成特定类别的图像):

最开始的GAN是没办法根据标签来生成特定种类的数据的,比如我训练GAN生成猫狗的图片,但是现在我只想获得猫的图片, 经典的GAN才不管那么多,它还是会一直生成又有猫又有狗的图片。 

 比如用上面的正常生成逻辑,是用随机噪点生成猫狗,我们能用什么方法来控制到底要生成猫呢还是生成狗呢? 这时,CGAN :把标签一起送进生成器和判别器,让他们根据标签来生成/判别结果。

如果从动态训练的角度来看,mnist 训练的整个过程都可以按照标签顺序来生成了:

2、怎么训练

这个很简单,只需要在训练和预测的时候,在 Generator 和 Discriminator 的输入端多给一个 input,这个 input 作用就是提供一个标签。 让 Generator 知道这张照片该生成什么,让 Discriminator 知道这张照片我应该判别是:它是否是此标签类别

所以改动经典GAN的程度相对比较少,而我们在 mnist 数据加工的时候,还要额外做一道工序,除了拿出手写数字图片,还要将数字标签也拿出来。

具体的介绍和代码在:https://mofanpy.com/tutorials/machine-learning/gan/cgan/


SS-GAN

作者指出,SS-GAN将对抗训练与自监督学习相结合,实现了CGAN的优势,而不需要任何标注数据。SS-GAN实现了大规模无条件 ImageNet 图像生成,这项目工作是向着高质量、无监督的自然图像合成方向迈出的重要一步。用最先进的模型替换鉴别器可以帮助进一步改进。作者还提出了在半监督环境中使用少量标签以进一步改进的想法。


一、问题及怎么解决: 

问题:GAN经常使用的是随机梯度下降的方法->  表现在训练不稳定、分歧、循环结果、模式崩溃等
原因:generator和discriminator都在一个非稳定的环境下。例如:discriminator需要动态判断generator随机产生的sample,在这种不稳定的情况下,神经网络会忘掉之前的任务,出现循环的情况。

 情况一:判别器遗忘问题

作者举了两个例子来说明当前模型的问题(判别器的遗忘问题),在下图中,蓝色虚线是当前的GAN,由于对模型分布记忆出现混乱,导致准确率下降。

 情况二:在切换数据分布后,模型的分类精度下降

在下图中,左侧表示GAN在每1K数据后换一次数据分布。可以看到数据分布换了以后,原始的GAN会存在较大的误差,几乎又回到了原始未学习的状态。这个例子说明了分类器在不平稳环境中可能无法学习可泛化表示,但自监督有助于缓解这个问题。

 Figure 3: Image classification accuracy when the underlying class distribution shifts every 1k iterations. The vertical dashed line indicates the end of an entire cycle through the tasks, and return to the original classification task at t = 0.
Left: vanilla classifier.
Right: classifier with an additional self-supervised loss.
This example demonstrates that a classifier may fail to learn generalizable representations in a non-stationary environment, but self-supervision helps mitigate this problem.

解决办法:另一个办法就是使用conditional,就是generator和discriminator可以访问标签数据;
答案:我们的答案是希望可以希望在没有标签的情况下也拥有conditional的优点/优势;同时,为了保证我们discriminator的represent learning是可靠稳定的;我们加入了辅助、自监督的discriminator


二、方法:

SS-GAN的整体架构如下图所示,具体实现为:

  • 第一个判别器按照以前的方法,输出 true/false 的判断结果;
  • 第二个判别器为旋转角度分类器,加上线性分类器,预测真实图像以及生成的假图像的旋转的类型。
Discriminator with rotation-based self-supervision.

 Figure 1: The discriminator D performs two tasks: true vs. fake binary classification, and rotation degree classification. Both the fake and real images are rotated by 0, 90, 180, and 270 degrees. The colored arrows indicate that only the upright(垂直的) images are considered for true vs fake classification loss task. For the rotation loss, all images are classified by the discriminator according to their rotation degree.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Pengsen Ma

太谢谢了

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值