大数据文摘出品
编译:张秋玥、蒋宝尚
你能看出上面两张图片,哪张是真的,哪张是假的么?文摘菌是分不出来,太像了!
这种以假乱真的图片生成技术来源于一种左右互博术—生成对抗网络(GAN)。
这一概念由机器学习研究者Ian Goodfellow在2014年提出。之所以叫“生成”是因为该模型的输出为图像一类的信息,而非与输入数据相关的预测值(比如“该图像是否是根热狗”的预测);“对抗网络”则是因为该模型使用两组猫鼠游戏一般相互竞争的神经网络,就像收银员和伪造者斗智斗勇一样:一方试图欺骗另一方认为它拿的真实钞票,而另一方则试图区分钞票的真伪。
其实,最开始的那一批生成对抗网络(GAN)图像很容易就能被发现不是真实照片。
比如2014年的这些图片:
Radford等,2014,无监督代表学习与深度卷积生成对抗网络(也被缩写为DCGAN)
但2017年10月发布的最新GAN生成图像就不那么好区分了:
Karras等,2017,改进质量、稳定性与变化程度的GAN网络(也被缩写为PGAN或ProGAN)
如何识别出GAN生成的图像?应该着重强调面部的问题,因为绝大多数研究者们都是使用人脸图像来进行试验的,并且许多人脸图像中会出现的问题经常也会在其他类型图像中出现。
以下是识别虚假图像的几个要点:
看似画笔涂上的直发
长发很容易出现这种超级直的效果——只有一小把的话看起来其实还挺好的,但一大把直发看起来就像是有人用画刀或者大笔刷涂了一把丙烯酸颜料上去一样。
难以辨认的文字
训练于生成人脸的GAN模型不太能够抓住背景中的复杂结构。此外,GAN模型同时显示训练数据的原始与镜像版本,这意味着他们不太能够抓住文字的特征因为它一般只在单一方向出现。
超现实风格背景
GAN模型生成人脸很可信的一个原因就是,所有的训练数据都被归一化了。这意味着,当涉及到例如眼睛与耳朵的位置与渲染问题时,GAN模型的可变度会很小。另一方面,背景则可以包含任何内容了。对于GAN模型来说,模拟出一个像样的背景实在有些过分了——他们最终一般就复制出一般性的纹理样背景,而非“真实”场景。
不对称性
GAN模型有时很难处理图像中的长距离依赖性。尽管在训练数据中耳环一类的配饰通常都是成对出现,生成图像中通常并非如此。还有这种情况:人眼通常看向同一方向并呈现相同颜色,但生成图像中的眼睛经常是对对眼,还可以是异瞳色呢。高度或大小非常不匹配的耳朵也是一种常见的不对称性。
奇怪的牙齿
GAN模型能够胜任生成一般性的场景,但目前为止它还不太能够搞定半规则重复细节问题,比如牙齿。有时GAN模型会产生错位牙齿,或者以很奇怪的方式拉伸或收缩单个牙齿。这个问题在其他领域也出现过,比如砖类图像的纹理合成问题。
凌乱的头发
这是识别GAN生成图像最快方法之一。通常情况下,GAN会让头发看起来盘曲打结,在肩膀周围随机形成一缕一缕的发束,并在额头上留下厚厚的杂散毛发。发型可以非常多变,还可以拥有许多细节,因此它是最难以用GAN捕捉的特征之一。非毛发类物体有时甚至可以被变成头发状纹理。
安能辨我是雄雌
这个GAN模型是在CelebA数据集的一个子集上训练的,其中包含约一万个名人的20万张人脸图像。在这个数据集中,我没有见到有谁有面部毛发,耳环或者化妆;但GAN模型还是经常分不清不同性别特征。更一般地说,我觉得这是因为GAN模型并不总是学习人类社会所强调的二元论(比如这里的“非男即女”)。
半规则噪声
有些本应当为单色的区域可能会出现具有水平或垂直条带的半规则噪声。在本例中,可能是因为模型在试图模仿布料的质地。旧一点的GAN模型一般噪声模式更明显,我们称之为“棋盘效应”(Checkerboard Artifacts)。
棋盘效应:
https://distill.pub/2016/deconv-checkerboard/
染色问题
一些颜色较浅并且为纯色的区域可能会出现多色调染色问题,比如衣领、脖子与眼白(未在本例出现)。
真实图像的例子
看看这些清晰的背景文字,对称的耳环,大小相同的牙齿以及细节丰富的发型。学习完以上这些小技巧后你可以试试玩一些小游戏,来看你是不是真的能够区分真假图片啦。
游戏:http://nikola.mit.edu/experiment
相关报道:
https://medium.com/@kcimc/how-to-recognize-fake-ai-generated-images-4d1f6f9a2842
【今日机器学习概念】
Have a Great Definition