译者 | 王红成
出品 | AI科技大本营(ID:rgznai100)
本文作者提出了一种自检督方式的生成对抗网络,通过辅助性的旋转损失来达到目的。因为通常主流方法来生成自然图像都是通过条件GAN来完成,但是这就需要很多的标签数据。这些标签数据会需要耗费大量时间和精力。因此无监督方法的提出,能有效提升效率节省大量时间和精力。作者探索了两个主流的无监督的学习方法,分别是对抗训练和自监督。进一步的,这两种方法会拉近无监督学习和监督学习的距离。
实验得出的结论是:在同样的实验条件下,作者提出的方法与目前与基于监督条件下相比,能取得近似的效果,值得提出的是在对生成图像的评分(FID)上,取得了23.4的评分,值越小,表示与真图更加接近,这个分数是很不错。综合表明作者提出的基于旋转损失的自监督生成对抗网络能与目前在监督条件下能取得相近的结果,说明方法是很值得借鉴在非监督领域,同时省去了很多时间和精力为数据标注。
接下来我们来看看方法部分:
方法
figure -1
figure -2
figure -3
先通过一张图来看看作者的方法的思想,这个生成器是基于旋转自检督,它扮演两个角色:1、利用没有经过翻转图像用来分类 2、根据所有照片的旋转程度给它们进行分类。这是文章大概告诉我们的东西,接下来我们来聊聊他的具体内容,怎么实现,等一些详细的过程。
关键问题—判别器的遗忘
作者先指出一个关键的问题,即判别器的遗忘,作者用两个实验来证明了判别器的确会存在遗忘,同时还表明加入了自监督,能解决判别器遗忘的问题。说明这种遗忘与GAN的训练不稳定有关,为了避免判别器的遗忘,加入自监督能有效避免遗忘带来的寻训练不稳定。作者花费了大量篇幅来介绍判别器的遗忘,说明内容是值得说明的,对于为什么这样,读者感兴趣的话可以自行去了解。因为篇幅有限就不详细展开了。
自检督生成对抗网络
受到判别器遗忘这个大挑战的启发,作者的目的是给判别器灌输一种机制,这种机制能学习到有用的表征,与当前生成器的生成的质量是分别独立的。于是作者探索出了用于表征学习的自监督的方法,它主要的思想是训练一个在Pretext Task上--为模型提前设计要解决的任务,然后通过这个任务的学习的目标函数来学习图形特征。给出的链接有详细的说明,推荐大家去看看。类似的pretext task的任务比如:预测旋转图像的角度或者相关图像块的位置,然后从结果网络提取表征。
Pretext Task解释链接 :
https://stats.stackexchange.com/questions/404602/pretext-task-in-computer-vision
特别的,作者采用的目前最好的自监督学习方法,它是基于图像旋转。此方法主要将图像旋转,然后将图像旋转的角度作为人工标注,如figure -1所示。于是用这种自监督来预测图像的旋转角度,其取得的结果可以由figure-3(b)所示,当运用了自检督损失后,网络模型学习到多任务转换和模型的表现都得到提升的表征。在第二个任务的循环中,在10k的迭代下,模型的表现提升。从直觉上看,这个损失激励分类器学习游泳的图像表征用于检测旋转角度,这种旋转角度是转移到图像分类问题中去的。作者通过增加基于旋转的损失来扩充判别器,它的损失函数如下所示:
其中的V(G,D)是来自原始的方程,r代表旋转角度,其中包括有0,90,180,270°,
代表图像x的旋转角度,
表示在样例的旋转角度上判别器预测的分布。
协作性生成对抗训练
什么是协作性的对抗训练呢?文章提出的方法是根据真假预测损失V(G,D)来使得生成器与判别器进行对抗学习,但是呢,他们要根据旋转任务来相互协作。首先考虑生成器的值函数,它使得生成的结果偏向图像。当发生旋转的时候,判别能检测出相应图像的旋转角度。需要指出的一点是,生成器是非条件的,它是用来生成直立的图像,即翻转角度为0的图像。这些图像随后旋转和放入判别器来判别的。
在另外一方面,训练用于检测旋转角度的判别器的图像是用真实的图像,换句话说,就是判别器的参数更新是基于真实图像的旋转损失。凭借生成器生成的图像在随后的旋转角度能易于检测,这样能得到满意的协作的解决方法。最后的结果是,生成器被激励用于生成图像,这些生成的图像是旋转可检测的,因为他们与真实的图像共享特征。这些真是的图像是用来旋转分类。
实际上,作者利用了单一判别器网络,它包括两个部分来计算分类的概率和旋转角度的分布,如figure -1所示,作者分别在四个主要的角度旋转真实和生成的图像。在没有经过旋转的图像上,判别器的目标是预测输入的的图像是否真实,在旋转的真实的图像上,判别器相应的作用是检测图像的旋转角度,生成器的目标是生成能与观测图像匹配的图像,这些观测图像的在特征空间的判别器的表征是能够用来检测旋转角度。当
下,对于真实数据分布下的
的收敛是不能保证的,但是呢,在训练期间,将
退火接近0是能得到保证。
退火解释:
https://www.zhihu.com/question/24761931
方法细节就如上文所描述,我在方法观念上是认同作者的,觉得这样是合理的,但是对于方法到底有什么缺陷或者效果可能没有那么好,我觉得需要跑过代码才能给出自己的判断,接下来我们来聊聊论文简介部分。
简介
生成对抗网络是一种非监督的生成模型,它是基于判别器与生成器之间的对抗学习。但是呢,GAN的训练是很难的,因为该学习需要在高维空间下找到非凸博弈的纳什均衡,这是一个挑战。
实际上GAN的训练主要使用梯度下降的方式训练,这种方式通常不稳定和缺乏理论依据。相应的GAN的训练会不稳定、发散、循环表现或者模式崩塌,于是有很多人提出了相应的应对和解决方法。但作者认为主要的导致训练不稳定是生成器和判别器在不稳定中的环境训练。
尤其是,在训练过程中,随着生成器的变化,判别器对一个样本的分布的判别也随之变化。有一些论文指出在一些不稳定的线上环境、神经网络会遗忘掉之前的任务。如果判别器遗忘了之前分类的边界定义,它的训练会变得不稳定和变得循环性。通常解决这个问题的方式是重新使用以前用过的实例或者利用持续性学习技术,感兴趣的可以找到论文当中相应的链接。
当在一些有着复杂数据集下的背景下,这些个问题会变得更加的明显。解决这个问题主要的方法是利用条件,就是生成对抗网络这种无监督的学习方式下利用标签数据。通过监督信息的方式判别器能学到更加稳定的表征,这些表征是可以应对灾难性的遗忘,这是可以通过论证得到的。进一步说,为每一个类学习这种条件模型相比于学习联合分布式更加简单。但这种方法最大的缺点是需要标注数据,甚至当标注的数据是可用的情况下,这些数据通常比较稀疏和仅仅覆盖在高维抽象空间的有限的一部分。
基于以上的描述的内容作者想要实现在给GAN模型加入条件下,稳定训练时能不需要标注的数据,为了确保判别器能学到稳定和有用的表征信息,作者加入了一个辅助性,自监督损失给判别器,方法表明取得的结果是不错的,训练稳定和判别器对于生成器生成的输出的依赖性降低了。这个方法主要是生成器和判别器协同工作和完成生成任务。
接下来看看作者带来的什么贡献,提出了一个非监督生成模型,这种模型是整合了有自监督的学习的对抗训练,不仅具备了条件GAN的优点同时还不需要标注数据,实际上,这种方法拉近了条件模型和非条件模型在生成自然图像的距离。判别器的表征信息的质量有着很大的提升,这可能会分散大家在迁移学习领域的关注。这种方式的学习取得了不错的结果在非条件自然图像的生成上,过去非条件自然图像的生成是很难进行研究的,有了这次方法的提出能极大给大家带来启发,作者也相信,这是很关键的一步,不久的将来能生成更高质量,完全非监督的自然图像。
接下来看看实验部分。
table -1
table -2
figure -4
figure -5
figure -6
table -3
table -4
table -5
通过对上述的实验结果观察发现,作者提出的通过辅助性旋转损失的自监督的生成对抗方法实验取得的表现是很不错的,不需要标注数据,并且取得表现能在部分数据集上甚至超过或者近似,说明方法是有效的,并且这种方法强调了取得的表征质量与图像的质量是有关联。也表明作者提出的方法是的确学到了相关强大的图像表征信息。
实验也是论文主要的一部分,很多论文的完成都是需要大量的实验结果支撑,毫不夸张的说,实验室论文最关键的部分,谁先做出实验,谁就能发paper。但是呢,作为对论文的研究,我个人认为不需要过于细致深究实验,知道这种方法即可,感兴趣的可以自己去了解。
接下来按照论文的行文顺序看到相关工作部分。
相关工作
GAN forgetting
灾难性的遗忘是最主要导致GAN训练的不稳定,作者分别指出了一些论文解决这种灾难性的方法:1、通过重复展示之前生成的图像给判别器使其记住2、重复使用之前的模型 ,通过计算checkpoint的平均来增强记忆3、维护一段序列模型,在每个迭代周期使用一次,4、增加记忆去维护关于之前样例的信息5、还有些方法将GAN的训练过程看作持续的学习任务。可以在论文中找到相应的论文链接。
条件GAN
条件GAN是当前最好的应用在复杂数据集上的生成模型,并且介绍AC-GAN是最早引入辅助性分类损失,作者指出自己的方法与AC-GAN的不同之处在于,自己的方法是自监督的不需要标注数据。更近一步说明,它们之间的区别在于AC-GAN是对类别加入条件,而自己的方法是无条件的并且通过对图像的旋转加入了人造的标签,还有不同的一点作者指出,自监督损失是判别器用在真实的图像上,而AC-GAN应用在真和假的图像上。
最近也提出了P-cGAN模型,其为每个类被引入了一个真假头,这个结构式优于AC-GAN的。训练在GPU或者TPU上最好的GAN的表现是使用P-cGAN风格的对判别器添加条件限定。同样作者指出现在的方法要不是对生成器加上一个标签或拼接一个潜在向量,或者通过FiLM模块。
FiLM解释:
https://arxiv.org/pdf/1707.00683.pdf
自监督学习
自监督学习是一类方法的总称,其主要目的是通过解决替代的任务来学习高维的语义表征。广泛的应用在视频领域、机器人领域和图像领域。例如有论文提出通过旋转图像来预测其旋转角度,这种方法看上去简单但是却能产生有用的表征,比如由上往下的图像分类任务上。
除了能试着预测旋转角度,还可以编辑给定的图像和要求网络去预测被编辑的部分。还有其他的替代的任务,包括图像修复、通过一张灰度图像预测颜色通道和预测监督的聚类。最近还有学者通过现代神经结构进行自监督学习。读者可以找到相应的部分阅读,这样会帮你开拓视野或者提供全新的想法和思路。
好了,终于来到了结论部分和作者对未来学习的规划部分了。
结论与未来工作
因为作者受到解决判别器遗忘性这一特点的启发,提出了基于辅助性旋转损失的自监督生成对抗学习方法。方法取得的结果是有很大意义的,不需要标注数据和能取得与条件方法取得类似的表现,并且能取得FID23.4的最好分数,无疑方法是优秀和值得学习。
同时作者指出对一些工作能起到促进的作用,首先使用最好的自监督结构应用在判别器上,并且优化取得可能更好的表征,其次自监督GAN可以应用在半监督条件下,可以用小部分的标注数据用于微调模型。最终可能应用一下的方法,在非条件图像生成中,比如使用自注意力,正交正则化和规范化和采样截断来取得更好的表现。
作者最后希望通过这个方法为生成高质量的,完全非监督的和复杂数据生成建模的自然图像生成实现铺路,启发大家。
论文链接:
https://arxiv.org/abs/1811.11212arxiv.org
代码链接:
https://github.com/zhangqianhui/Self-Supervised-GANs
(*本文为AI科技大本营编译文章,转载请微信联系 1092722531)