上图中的图片有什么共同点?回答是这些脸都是虚构的,是由GAN(对抗神经网络)生成的。自从2014年第一次提出之后,做为一种生成式的模型,不到五年的时间,GAN已经衍伸出很多意料之外的应用场景,本文简述其中五个,未来预期GAN会在更多的领域大放异彩。关于GAN的基础知识,可以参考对抗神经网络初探,GAN用在艺术品生成与风格迁移的具体案例分析,可以参考怎么样用深度学习取悦你的女朋友(有代码)。
1)图像编辑
这简直是美图秀秀中的各种滤镜的升级版,给出一张原始的妹子图片,可以生成出金发版,卷发版,微笑版,还能ps出你的双胞胎兄弟长什么样。
不止是对人物进行定向的修改,还能修改图片中的坏境因素,例如上图中左图中是下雨的场景,右图是GAN生成的同样坏境但是没有下雨的照片,俩者人眼看来,就只能看出是否下雨这一个差异来。实现这样黑科技的,是GAN的一个变种,称为conditional GAN, 有了这项技术,就可以根据一个人小时候的照片,生成其长大后,年老后的样子,或者你上传你家狗狗的照片,然后再虚拟的坏境下给狗狗换衣服,然后你再购买你喜欢的狗狗衣服。这项技术也存在着被滥用的风险,比如生成虚拟的果照。关于技术细节,请阅读参考资料【1】与【2】。
2)恶意攻击检测
通过给深度神经网络一些特异生产的训练数据,深度学习生成的模型是可以被黑客攻击,利用甚至控制的。为了对抗这样的逆向攻击(adversarial attacks),可以训练对抗神经网络去生成更多的虚假训练数据作为假想敌,让模型在演习中去识别出这些虚假数据,就如同人类打疫苗,GAN生成的虚假数据让正在做分类的模型更加稳健。
另一个在安全领域的应用的加密传输,在图片中,可以使用额外的像素来加密一段文字,从而你以为你接收的是一副普通的图片,但实际上通过解密,却可以发现其中包含了加密的信息。GAN的变种SSGAN,通过在传统的GAN模型中增加一个判别器,可以识别出这样加密后的图像,也可以用于更高效生成上述的加密信息。参考【3】
3)数据生成
在特定的应用场景下,例如医疗领域,缺少训练数据是应用深度学习的最大障碍。数据增强的传统做法是将原图像拉伸旋转剪切,但这毕竟还是原来的图像,通过使用GAN,能够生成更多类似的数据,如下图所示,右边是真实的图片,而左边是合成的训练数据,中间的是GAN生成后原始图片,之后经过了修饰,使得面部的肌肉和纹理更加真实。这个GAN生成的图片,通过了图灵测试,让眼科医生都无法分辨出。而随着生成出的数据被加入训练集,相同的模型在分类任务上的表现也有所提升,具体参考【4】。
4)注意力预测
人类在看一张图片时,往往只关注特定的部分,而通过GAN模型,可以预测出人类关心的区域在哪里,下图展示的SalGAN预测出的图片中人类观测的热点区域,和真实的区域,以及之前模型的对比。SalGAN的预测不止更准确,而且能够包含很多之前模型没有预测到的区域。对注意力的预测,可以指导广告的投送,例如在电影中做植入广告前,可以先预测一下植入的区域是不是在注意力的热点区。类似的方法还可以反过来用,假设不同类型的人有不同的注意力热点模式,根据一个人关注图片中的那个部分,来对人进行归类。参考【5】
5)三维结构生成
pix2vox是一个基于GAN的开源工具,能够根据手绘的二维图片,生成对应的三维结构,不止有对应的形状,还会生成对应的颜色,有了这样的工具,就能降低3D建模的门槛,从而让3D打印更容易的落地。
总结
标注数据总是少数的,未标注的数据才是待开掘的金矿。GAN可以通过标注数据,生成模拟数据,也可以用在自监督学习中,让模型具备从部分标记的数据中学习的能力。本文只是列出了在图片上使用GAN的五种有趣的场景,在视频,有向图及自然语言处理上,GAN也有诸多应用,结合贝叶斯网络,GAN还可以应用在因果推理,参考文献【7】。
参考文献
【1】https://github.com/hezhangsprinter/ID-CGAN
【2】 https://arxiv.org/pdf/1611.06355.pdf
【3】 https://arxiv.org/ftp/arxiv/papers/1707/1707.01613.pdf
【4】 https://arxiv.org/pdf/1612.07828.pdf
【5】 https://arxiv.org/pdf/1701.01081.pdf
【6】 https://github.com/maxorange/pix2vox
【7】 https://arxiv.org/pdf/1810.07406.pdf