您的位置:首页 > 理论基础 > 计算机网络

【学术报告】​阿里巴巴洪佳鹏:生成对抗网络和隐层属性交换的人脸属性迁移

2020-12-22 22:58 2456 查看

不到现场,照样看最干货的学术报告!


嗨,大家好。这里是学术报告专栏,读芯术小编不定期挑选并亲自跑会,为大家奉献科技领域最优秀的学术报告,为同学们记录报告干货,并想方设法搞到一手的PPT和现场视频——足够干货,足够新鲜!话不多说,快快看过来,希望这些优秀的青年学者、专家杰青的学术报告 ,能让您在业余时间的知识阅读更有价值。


2018年8月4月,由北京理工大学大数据创新学习中心与中国科学院人工智能联盟标准组联合主办的“2018深度强化学习:理论与应用”学术研讨会,学界与业界顶级专家济济一堂,共同分享深度强化学习领域的研究成果。




阿里巴巴淘宝技术部图像算法工程师洪佳鹏以生成对抗网络和隐层属性交换的人脸属性迁移为主题做了报告,以下分享内容根据嘉宾口头分享整理。


生成对抗网络和隐层属性交换的人脸属性迁移


洪佳鹏 阿里巴巴淘宝技术部图像算法工程师


我的报告内容主要涉及生成对抗网络和图像翻译,首先简单介绍生成对抗网络。生成对抗网络分为两部分,就是生成器和判别器,二者是存在对抗的。生成体现在生成器从无到有,对抗体现在生成器和判别器的目标。可以从目标函数看出,判别器的任务就是判别真假样本,生成器的任务就是要骗过它,使得生成的样本判定成一个真的样本。生成器生成样本,经过判别器的判别以后反馈给它的信息是生成的还不够好,也会引导继续生成更好的样本。



下面来看一下图像到图像翻译的任务,通常简称为图像翻译,涉及到的概念包括图像域,是具有某种属性的图象集合,比如所有戴眼镜的人可以看成一个图像域,因为都有一套相同的属性,就是眼镜。


同一个属性的不同取值形成的不同图像域构成了属性相对的图像域,比如眼镜这个属性有戴和不戴两种,可以看作一对相对的图像域。相对眼镜来说,和眼镜无关的部分就属于图像的ID,图像翻译就是在不改变图像ID的情况下修改它的属性。人脸属性可以看成图像域,图像ID就是人这张脸和背景,这些和属性无关,所以翻译的时候需要保持不变,翻译的任务就是只需要修改属性。人脸属性包括很多种,生成器可能是接收一张人脸图像,然后指定要修改的属性,比如要改微笑、改刘海。


常见的图像到图像的翻译算法包括哪些呢?按照前面的描述来看,GAN的切入点在于对抗,最主要是体现在判别器,真假样本设计好了,任务基本上就可以做了,最简单的做法就是判断图像是不是落在某个图像域上面,就是图像是否都具有相同的属性。相关的算法也非常多,包括CycleGAN、UNIT、DTN、StarGAN、DNA-GAN、ELEGANT。


这类算法用非配对样本就可以训练。非配对样本的意思是知道这个人戴眼镜的情况,但不知道这个人不戴眼镜是什么样子,只需要一个人戴眼镜和另外一个人不戴眼镜的图。判断图像域是不是对的,就是有属性或者没有属性,图像质量是不是和真实样本匹配。


以CycleGAN为例,有两个互为逆映射的生成器分别负责两个图像域互转,两个判别器分别判别图像是否分别来自两个图像域。这里判别器的任务有两个,一个是判别图像域是不是对的,就是有/没有属性,以及图像质量是不是跟真实样本匹配。UNIT的做法是把生成器拆成编码器和解码器,编码器分别对两个域的图像做编码,可以共享高层,这样使得两个图像域的编码落在同一个空间里面,解码的时候输入给特定的解码器,A图像域解码器生成的是A图像域,B图像域解码器生成的是B图像域,然后判别器判断图像域是否是对的。


StarGAN是CycleGAN的拓展,可以针对多个图像域,也有多个属性,比如眼镜、刘海和微笑各种属性,生成器提供的不只是一张图,可以把想要转过去的属性告诉它,就是可以同时指定多个属性修改,生成器也只修改指定的属性。多属性修改的算法很多都是采用条件判别器的做法,StarGAN则采用的是AcGAN的做法,通过判别器接收一张图,除了判断真假以外,还要把这个图像域的信息预测出来。


判别器还有另外一种做法,就是判断图像翻译结果是不是匹配,典型的工作是pix2pix,这可能是最早的一篇GAN做图像翻译的工作,因为涉及到匹配所以就需要监督样本,既要知道这个人戴眼镜,也要知道这个人不戴眼镜的情况,判别器的输入是两张图,我们期望它完成的任务也有好几个,一个是判断两张图分别是来自于A域和B域,另一个是两张图的质量要和真实样本的质量匹配,还有一个是两张图需要对应起来,判别器的任务是挺重的,因为是有监督的,所以实际上好学一些。


前面介绍的两种可以看到判别器的输入是图像,隐形特征层面也是可以对抗的,FaderNets是比较有代表性的例子,通过对抗将属性和图像的ID编码分离开来,具体来说判别器要从图像的编码当中预测出图像域的信息,对编码器来说则不能让判别器得逞,要将属性的信息从图像编码中剥离出去。也就是说它需要使得判别器的预测是相反的,这里面就存在一种对抗。Decode解码的时候把已经剥离了图像域信息的图像编码拿过去,再提供一个新的图像域的信息,通过在这里改图像域的信息解码得到翻译结果,完成翻译到特定图像域的目的。


接下来介绍我们在人脸图像编辑任务上的两个工作。人脸图像编辑是图像翻译的一种。DNA-GAN是今年ICLR上的工作,主要特点就是交换隐形编码,编码器分别编码各个属性,然后交换两张图特定属性的编码就可以交换属性,因为是通过跟范例图交换属性,因此可以引入多样性。前面介绍的其他图像翻译方法都很难引入多样性,针对属性的建模就是1和0,也就是有和没有,没办法确定加上什么类型的眼镜或者刘海,而我们这里是可以控制的。


分别编码是怎么做的呢?首先需要指定编码的顺序,要求前面一部分是编码眼镜,后面一部分是编码刘海,还有一部分是编码和两个属性无关的图像ID。考虑第一个属性的时候只用第一个属性的图片,上面带加号的代表有这个属性,减号代表没有这个属性。考虑第一个属性的时候只用第一个属性的图片,考虑第二个属性的时候只用第二个属性的图片,这样就可以和属性编码挂上钩。然后会做一个交叉重组,会有四个结果:两种是和原来的一样,另外两个结果就是换了特定的部分,比如换了第一个属性,然后解码出来四张图,两张是和原图一样的,两张是新的图,就是只换了第一个属性。


这样做的话会存在平凡解,简单来说,编码器可以把整张图编码到属性编码里面,交换属性编码解码得到的两张新图就只是换了一个位置而已,这不是我们要的结果,为了解决这个平凡解的问题我们引入了零化操作,要求没有属性的地方要编码成零,有属性的该是什么就是什么,所以后面重组的时候没有属性就把它换成零,因为零是不可能解码出整张图的,这样就避免了平凡解。


DNA-GAN过渡到ELEGANT中间还有一项工作,我们只是自己做了实验,没有公开出来,因为只是一个中间的形态。我们的做法是在隐层做差,具体的做法是把两张图的隐层编码做一个差,解码器解码出残差图。这跟类比推理有点像,但是不一样,我们是在隐层类比到图像层。解码出来以后加上没有属性的图,然后就会得到一个有这个属性的图。这里不需要建模图像ID,也没有平凡解的问题。


ELEGANT的做法继承自隐层做差。隐层直接做差的话可能不太好学,因为两张得到两张新图所需要的残差图,它们的编码在隐层做差意义下,只差了一个符号,这是有点难学的。ELEGANT则会自己去学习做差的操作,简单的做法就是把两个编码拼起来,要求从前面的编码转化到后面的编码,这也可以看成是一种做差的做法,解码器自己去学做差。这样做也没有平凡解的问题,不需要建模图像ID。



此外,需要指出的是,Batch Normalization训练的时候可以,但是测试没效果,这里交换的时候涉及到两批来自不同图像域的图像来做交换,BN的mean和var是不稳定的,我们最后替代的方案是用 normalization。


具体做法可以去看我们的论文。我们在CelebA数据集上做了一些属性交换的实验,图中展示了加刘海的属性编辑分别采用ELEGANT、UNIT、CycleGAN、StarGAN得到的实验结果,进行了不同算法的对比。


获取完整PPT,请后台回复:学术报告


供稿人:张继


精彩的学术报告背后,是一群优秀的学术人才。都说搞学术的人需要“超凡脱俗”,需要耐得住清贫寂寞,其实……芯君想说:完全不需要这样啊!比如,马上申请2018百度奖学金——是的,百度为每位具有AI才能的“潜力股”学术精英们提供了广阔的平台资源和发展空间,为其提供20万研究资金支持,帮助优秀学子全身心投入科研工作,心无旁骛地进行科学探索。


还等什么,你——未来的学术之星,赶快申请报名吧!



留言 点赞 发个朋友圈

我们一起探讨AI落地的最后一公里


如需转载,请后台留言,遵守转载规范


长按识别二维码可添加关注

读芯君爱你

< 8000 /p>


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: