无需标注数据,利用辅助性旋转损失的自监督GANs,效果堪比现有最好方法
作者 | Ting Chen
译者 | 王红成
出品 | 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)
◆
精彩推荐
◆
开幕倒计时3天!2019 中国大数据技术大会(BDTC)即将震撼来袭!豪华主席阵容及百位技术专家齐聚,十余场精选专题技术和行业论坛,超强干货+技术剖析+行业实践立体解读。
推荐阅读
一张图生成定制版二次元人脸头像,还能“模仿”你的表情
激辩:机器究竟能否理解常识?
阿里正式开源通用算法平台Alink,“双11”将天猫推荐点击率提升4%
最新单步目标检测框架,引入双向网络,精度和速度均达到不错效果
从拨号到 5G :互联网登录完全指南
测试小白必读!从0基础做到「大厂测试」,要掌握什么技能?
科技公司最爱的50款开源工具,你都用过吗?
OceanBase 的前世今生
想做好区块链数据分析?先来看看如何解决“去匿名化”这个大难题
把700元的单片机改造成以太坊节点, 9步get起新技能
你点的每个“在看”,我都认真当成了AI
相关文章:

iOS环信聊天界面中点击头像和消息的几种状态
/*环信自带头像点击事件*/ - (void)messageViewController:(EaseMessageViewController *)viewControllerdidSelectAvatarMessageModel:(id<IMessageModel>)messageModel {内容可以根据需要自己添加 }/*!methodbrief 点击了简历消息 (lyq添加)discussion 点击了简历消息,…

ASP.NET将Session保存到数据库中
因为ASP.NET中Session的存取机制与ASP相同,都是保存在进行中, 一旦进程崩溃,所有Session信息将会丢失,所以我采取了将Session信息保存到SQL Server中,尽管还有其它的几个方式(本文不作介绍)&…

iOS App上架流程
一、前言:作为一名iOSer,把开发出来的App上传到App Store是必要的。下面就来详细讲解一下具体流程步骤。 二、准备: 一个已付费的开发者账号(账号类型分为个人(Individual)、公司(Company&#…
不止Markov决策过程,全景式分析强化学习研究内容
作者 | 肖智清编辑 | 刘静来源 | CSDN(ID:CSDNnews)强化学习作为通用人工智能的希望,吸引了很多人工智能爱好者学习和研究。Markov决策过程是最知名的强化学习模型,强化学习教程也常以Markov决策过程作为起点。但是&am…

Windows下创建进程简介
正在执行的应用程序称为进程,进程不仅仅是指令和数据,它还有状态。状态是保存在处理器寄存器中的一组值,如当前执行指令的地址、保存在内存中的值,以及唯一定义进程在任一时刻任务的所有其他值。进程与应用程序的一个重要的区别在…

jQuery中鲜为人知的的几个方法
转来学习一下 jQuery中鲜为人知的的几个方法 jQuery近些年来仍旧是web开发中最受欢迎的类库,虽然大家褒贬不一,但是仍旧不失为一款最流行的Javascript,在今天这篇文章中,我们将介绍几个jQuery的相关方法,无论你是入门级…

Linux下创建进程简介
在博文https://blog.csdn.net/fengbingchun/article/details/108940548中简单介绍了Windows下通过函数CreateProcess创建进程的过程,这里简单介绍下Linux下通过fork函数创建进程的过程。很早之前在https://blog.csdn.net/fengbingchun/article/details/45690745中也…

热更新 FrameWork
工作中遇到想要绕过AppStore直接更新App的要求!这里友情提示下,看了很多资料只是是实现了功能,但在项目中并没有真正用到!资料大多都显示会被拒,这个说的是个人级的,好像企业级的不会这样,仅仅是项目需要做…
陆首群:评人工智能如何走向新阶段?
作者 | 陆首群,中国开源软件推进联盟名誉主席 出品 | AI科技大本营(ID:rgznai100) 编者按:近来,业内关于深度学习算法的潜力是否已达天花板的争论陆续发出。有人认为,基于深度学习算法的应用还有深度开拓空…

Mysql INSERT、REPLACE、UPDATE的区别
用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的SELECT语句,另外一种就是更新语句,也叫做数据操作语句。言外之意,就是对数据进行修改。在标准的SQL中有3个语句,它们是INSERT、UPDATE以及…

软件调试的艺术笔记:GDB
很久之前,在https://blog.csdn.net/fengbingchun/article/details/41413381中简单整理过gdb中常用的一些命令,不齐全,这里按照《软件调试的艺术》一书中关于gdb的介绍再做次整理。《软件调试的艺术》于2009年由人民邮电出版社出版。 1. 预备…

App Store 审核被拒整理
整理以前和现在遇到的审核被拒第一:2.2 DetailsWe discovered one or more bugs in your app when reviewed on iPhone running iOS 8.1.3 on both Wi-Fi and cellular networks. Specifically, we were not able to complete the In App Purchase. When tapped on …
只服这篇“神文”:基于老子哲学、相对论的超级人工智能模型
作者 | Anonymous authors译者 | TroyChang出品 | AI科技大本营(ID:rgznai100)在此前我们为大家介绍 ICLR 2020 论文投稿情况时,提到了一篇“神作”在论文中作者们提出一个 ASI 概念(Artificial Super Intelligence&am…

Navicat Premium使用教程【比较详细】
Navicat Premium使用教程简介:Navicat Premium是众所周知的数据库操作软件。本文比较详细。1、打开Navicat Premium,点击连接,选择MySQL,创建新连接。输入安装MySQL是的用户名和密码。点击确定。2、admin数据连接已经创建成功。下…
如何用Neo4j和Scikit-Learn做机器学习任务?| 附超详细分步教程
作者 | Mark Needham译者 | Tianyu、Shawnice编辑 | Jane出品 | AI科技大本营(ID:rgznai100)图算法不是一个新兴技术领域,在开源库中已经有很多功能强大的算法实现。近两年,业内的学者与科学家都在积极探索可以弥补深度…

Docker在Ubuntu16.04和Windows10家庭版上安装操作步骤
之前在 https://blog.csdn.net/fengbingchun/article/details/109559500 中对Docker作了简单的介绍,这里介绍下Docker在Ubuntu16.04 x86_64 64位上和Windows10 x86_64 64位家庭版上的安装过程。 在Ubuntu上安装Docker(或Docker引擎),Ubuntu必须是64位的…

iOS 不同机型屏幕适配
// .pch 文件中写 // 判断是iPhone机型 /** 4s 960 * 640* 5/5s 1136 x 640* 6/6s/7/8 4.7英寸 1334 x 750* 6p/6sp/7p/8p 5.5英寸 1920 x 1080* X 5.8英寸 2436 x 1125}*/ #define IS_IPHONE_4s [UIScreen instancesRespondToSelector:selector(currentMode)] ? \ CGSizeEqua…

北京中天荣泰视觉检测 仿真
www.romtek.cnhttp://jobs.zhaopin.com/191485013250433.htm?ssidkeyy&ff01&ss101转载于:https://www.cnblogs.com/pengkunfan/p/4316018.html

Docker客户端常用命令整理
之前在 https://blog.csdn.net/fengbingchun/article/details/109584460 中介绍过在Windows10家庭版和Ubuntu16.04上安装Docker的操作步骤,这里整理下Docker客户端常用命令。 在Windows10家庭版上运行Docker后,通过VMware就不能打开Ubuntu16.04虚拟机了…
深度学习入门笔记,三流程序员如何凭借实力逆袭高薪?你不服不行!
最近经常有朋友提及,想要入门深度学习,该如何学习?关于深度学习,网上的资料很多,不过貌似大部分都不太适合初学者。 我曾经是一名三流程序员,每天的工作内容就是在前人留下的 bug 上写新的bug,我…

Swift编程语言
The Swift Programming Language中文手册1.【精校版】The Swift Programming Language--欢迎使用Swift--关于Swift2.【精校版】The Swift Programming Language-欢迎使用Swift-Swift 初见3.The Swift Programming Language--语言指南--基础部分4.The Swift Programming Languag…

ondblog 修改informix日志模式
-N No Logging 没有日志-U Unbuffered Logging 非缓冲日志-B Buffered Logging 缓冲日志-A Unbuffered Logging, Mode ANSI ANSI模式No Logging 没有日志----“没有日志”模式只向逻辑日志写很少的信息,它只记录执行的DDL语句,这些语句影响到的行并…

iOS RunLoop详解
一、简介 CFRunLoopRef源码RunLoop是一个对象,这个对象在循环中用来处理程序运行过程中出现的各种事件(比如说触摸事件、UI刷新事件、定时器事件、Selector事件),从而保持程序的持续运行;而且在没有事件处理的时候&…

开源库jemalloc简介
jemalloc是通用的malloc(3)实现,它强调避免碎片和可扩展的并发支持。它的源码位于https://github.com/jemalloc/jemalloc,最新稳定版本为5.2.1。 glibc的内存分配算法是基于dlmalloc实现的ptmalloc;tcmalloc是Google开发的内存分配器&#x…
改善深度学习训练的trick总结 | CSDN博文精选
扫码参与CSDN“原力计划”作者 | ZesenChen来源 | CSDN博客精选在深度学习中,同样一个模型用不同的初始化,数据处理,batch size,学习率,优化器都能得到不同性能的参数。我根据自己参与过的比赛中经常用到的一些trick进…

jQuery中的Ajax----03
为什么80%的码农都做不了架构师?>>> $.ajax(0方式是jQuery最底层的Ajax实现。 它的结构为: $.ajax(options) 该方法只有1个参数,但在这个对象里包含了$.ajax()方法所需要的请求设置以及回调函数等信息。参数以key/value的形式存在࿰…

Docker容器中数据两种持久化存储方式:卷和挂载宿主目录
镜像使用的是分层存储,容器也是如此。每一个容器运行时,是以镜像为基础层,在其上创建一个当前容器的存储层,我们可以称这个为容器运行时读写而准备的存储层为容器存储层。容器存储层的生存周期和容器一样,容器消亡时&a…

CFRunLoopRef 的内部逻辑(向 ibireme学习)
据苹果在文档里的说明,RunLoop 内部的逻辑大致如下:/// 用DefaultMode启动 void CFRunLoopRun(void) {CFRunLoopRunSpecific(CFRunLoopGetCurrent(), kCFRunLoopDefaultMode, 1.0e10, false); }/// 用指定的Mode启动,允许设置RunLoop超时时间 int CFRunL…
倒计时 3 天!「2019 嵌入式智能国际大会」全日程大公开!
立即抢购:https://t.csdnimg.cn/otBk还有3天,大伙期待的「2019嵌入式智能国际大会」正式开幕了!2019年12月6日-7日,我们在深圳市人才研修院见!大会以“万物互联泛在智能”为主题,邀请30位海内外顶级专家作为…

Fckeditor PHP/ASP File Upload Vul
目录 1. 漏洞描述 2. 漏洞触发条件 3. 漏洞影响范围 4. 漏洞代码分析 5. 防御方法 6. 攻防思考 1. 漏洞描述 FCKeditor是目前最优秀的可见即可得网页编辑器之一,它采用JavaScript编写。具备功能强大、配置容易、跨浏览器、支持多种编程语言、开源等特点。它非常流行…