【干货】用反卷积网络合成超逼真人脸:理解深度学习如何思考
1 新智元编译 1
来源:zo7.github.io
作者:Flynn Michael
翻译:刘小芹
AI World 2016世界人工智能大会 ? 业界领袖回溯60年AI历史,全球对话人工智能未来挑战,权威发布2016世界人工智能名人堂及中国人工智能产业发展报告;? 国际大咖“视频”远程参会, Bengio 和李飞飞联袂寄语中国人工智能;? 探秘讯飞超脑及华为诺亚方舟实验室,最强CTO与7大研究院院长交锋;? 滴滴CTO与百度首席架构师坐镇智能驾驶论坛,新智元三大圆桌阵容史无前例;? 中国“大狗”与"X-Dog"震撼亮相,龙泉寺机器僧“贤二”卖萌。
【新智元导读】 本文中介绍 的 深度学习架构能够基于选定的人的身份、情绪和方位,生成真实的脸部图像。你只要给网络提供你希望描绘的东西的原始参数,模型就能完成,但是生成的结果却是十分有趣的。
网络本身看起来能学习3D空间的概念,以及它所描绘的物体结构。并且,由于它生成的是图像而不是数字,所以它也让我们更好地理解了这一网络是如何“思考”的。真正让人惊讶的是,它似乎在根据嘴部张开或者关闭来学习脸部特征,你能看到脸颊的移动、眼球的移动等等。未来,你可以使用这一模型来模拟复杂的表情和变化。
Flynn Michael: 我最受欢迎的关于深度学习的一篇论文是《利用卷积网络合成椅子、桌子和汽车》(Learningto Generate Chairs, Tables, and Cars with Convolutional Networks)。它的概念非常简单――输入想让它合成的东西的参数,它就会照做――出来的结果非常有趣。这个网络看起来是它能自己学习有关3D空间的概念以及它要画的物体的结构,由于它要生成的是图像而不是数字,它能让我们对网络如何“思考”有一个更直观的理解。
合成椅子的视频
不久前我偶然发现了Radboud人脸数据库,于是想知道类似的技术能不能用于人脸的合成和修改。
结果相当的激动人心!
网络架构
我采用了椅子论文中“1s-S-deep”模块的一个版本。在这个网络中,输入有关椅子“风格”的重要编码和方向、相机位置等参数,经过几个全连接层,在交给反卷积网络前得到要画什么的表征,最后画出图像并预测分割掩膜。在合成人脸时,我们所做的事情相似,不过我们完全省略了分割网络(因为我们没有那些的人工标志),我们输入的是人的身份、情绪和方向参数。
图表:用于合成椅子的模型(来源:Dosovitskiy et al.)
这里的反卷积网络和其它语义分割或合成模块类似。它本质上是用于分类网络的典型运算的反转。通常卷积网络包含一些卷积层,跟着是用于减少输入维度的池化层(pooling layer)。对反卷积网络来说,我们要做反向操作――先是对输入进行反池化(a.k.a. unpooling),然后应用卷积运算。
为了说明这点,下图是Noh et al的论文中有关语义分割的反卷积网络的图示:
从本质上来说,当我们反池化时,就在画布网格上打上了一些点,然后利用卷积核当做画笔涂开这些点。
我基本上能够最大化地直接应用论文上的架构,但为了得到更高分辨率的图像,同时不耗尽CPU内存,我得用每层的卷积核数量,并使用 batch normalization,以确保 Leaky ReLU 的激活。该模型在建于Theano和TensorFlow的高层深度学习框架Keras上实现。
变脸
如你所见,这个网络能根据身份和情绪参数流畅、平滑地改变脸的形态。
这种变脸相当逼真,而且也不需要依赖人为的方法例如在每个例子间进行淡化。但真正令我惊奇的是,它似乎能以某种方式“学习”脸的特征――例如,嘴巴张开和闭合时,你会看到颧骨也在移动,同时眉毛也上下变化,等等。
我们也可以把它拆解开来,看看分别改变身份和情绪时,脸会怎样变动。
到目前为止,我放弃了研究“方向”参数对变脸的影响。很不幸,这个网络还没法学会根据方向变脸。这可能是因为数据集中可得的方向参数还不足以让网络形成对3D空间的理解(数据集里只有间隔45°的方向数据),不过它选了简单些的路径,学会了根据不同的方向画脸。
这个网络所做的非常有趣而且可视化,尤其是当它尝试画下它没见过的东西,例如人的后脑勺时。也许存在其它的方法能让这个网络创造出新的、完全不对头的,但仍然是非常有趣的图像。
使用“非法”输入
到目前为止,我们输入给网络的参数多少都算是“合法”的。使用的身份和情绪矢量都使用单位长度(即:身份/情绪的一致性混合的表征),方向也一直用有效的角度来表征。那么,假如我们打破这些规则,向网络里输入一些随机值,会有怎样的结果呢?
结果相当可怕:
由于不知道怎样解码无效的方向数值,以及要同时处理很多的身份和情绪数据,网络开始以离奇的方式把脸伸长、扭曲。
通过随机改变框架参数,我们也制作了这样一个动画:
很恐怖。
用部分训练的网络合成图像
最近,我们也能利用部分训练网络创作更有趣的图像。例如,下面是一些使用AdaGrad的部分训练网络制作的随机图像:
我非常感兴趣的是,不同优化器会画出怎样不同的图像,尤其是在训练的早期阶段。例如,使用随机倾斜度的部分训练网络所合成的图像,更像是一些抽象画,而非人脸。
我想用这些网络做更多测试,看看它们是如何学习合成图像,以及不同优化器的影响(以及为什么会如此),不过我会把这些留到以后的文章中。
本文的代码可以在这里得到:https://github.com/zo7/facegen
豪华嘉宾阵容,共飨 AI 盛宴
7 大院长齐聚新智元智库院长圆桌论坛
2016世界人工智能大会技术论坛特设“新智元智库院长圆桌会议”,重量级研究院院长7剑下天山,带来最前沿的AI研究动态、剖析技术发展趋势。
七位人工智能界“高手”现场过招,思想的激烈碰撞会给目前的人工智能发展带来哪些洞见?七位院长对行业的发展会有哪些前瞻揭秘?10月18日下午,2016 世界人工智能大会技术论坛,答案将逐层揭晓。
新智元智库院长圆桌汇集了中国人工智能产学研三界最豪华院长阵容:美团技术学院院长刘江担任主持人,微软亚洲研究院常务副院长芮勇、360人工智能研究院院长颜水成、北京理工大学计算机学院副院长黄华、联想集团副总裁黄莹、Intel 中国研究院院长宋继强、新华网融媒体未来研究院院长杨溟联袂出席。
2016世界人工智能大会技术论坛议程
扫描二维码购票:
购票链接:http://www.huodongxing.com/go/aiworld2016
也可点击‘阅读原文’直接购票。